In [ ]:
. ./nbs_header.ps1
. ./core.ps1
In [ ]:
{ . "$ScriptDir/../apps/builder/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DibParser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── pwsh ────────────────────────────────────────────────────────────────────────
ls ~/.nuget/packages/argu
╭─[ 652.60ms - stdout ]────────────────────────────────────────────────────────╮
│ │
│ Directory: C:\Users\i574n\.nuget\packages\argu │
│ │
│ Mode LastWriteTime Length[ │
│ 32;1m Name │
│ ---- ------------- ------ [ │
│ 32;1m---- │
│ d---- 2023-05-17 3:38 PM 6.1.1 │
│ d---- 2024-03-12 8:22 PM 6.1.4 │
│ d---- 2024-01-29 5:12 PM 6.1.5 │
│ d---- 2024-03-12 8:20 PM 6.2.0 │
│ d---- 2024-02-23 6:50 PM 6.2.1 │
│ d---- 2024-03-12 8:15 PM 6.2.2 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsec.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsecCS.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
/// ## readAllTextAsync
let inline readAllTextAsync path =
path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
/// ## fileExistsContent
let inline fileExistsContent path content = async {
if path |> System.IO.File.Exists |> not
then return false
else
let! existingContent = path |> readAllTextAsync
return content = existingContent
}
/// ## writeAllTextAsync
let inline writeAllTextAsync path contents =
System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
/// ## write...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FParsec
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## escapeCell (test) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let inline escapeCell input =
input
|> SpiralSm.split "\n"
|> Array.map (function
| line when line |> SpiralSm.starts_with "\\#!" || line |>
SpiralSm.starts_with "\\#r" ->
System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
| line -> line
)
|> SpiralSm.concat "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
$"a{nl}\\#!magic{nl}b{nl}"
|> escapeCell
|> _assertEqual (
$"a{nl}#!magic{nl}b{nl}"
)
╭─[ 53.51ms - stdout ]─────────────────────────────────────────────────────────╮
│ a │
│ #!magic │
│ b │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicMarker │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicMarker : Parser<string, unit> = pstring "#!"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic"
|> run magicMarker
|> _assertEqual (
Success ("#!", (), Position ("", 2, 1, 3))
)
╭─[ 52.33ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #! │
│ Item2: <null> │
│ Item3: Position │
│ Index: 2 │
│ Line: 1 │
│ Column: 3 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"##!magic"
|> run magicMarker
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 51.47ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ ##!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicCommand │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicCommand =
magicMarker
>>. manyTill anyChar newline
|>> (System.String.Concat >> SpiralSm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a"
|> run magicCommand
|> _assertEqual (
Success ("magic", (), Position ("", 8, 2, 1))
)
╭─[ 31.97ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: magic │
│ Item2: <null> │
│ Item3: Position │
│ Index: 8 │
│ Line: 2 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
" #!magic
a"
|> run magicCommand
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 33.53ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ #!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## content │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let content =
(newline >>. magicMarker) <|> (eof >>. preturn "")
|> attempt
|> lookAhead
|> manyTill anyChar
|>> (System.String.Concat >> SpiralSm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run content
|> _assertEqual (
Success ("#!magic
a", (), Position ("", 14, 7, 1))
)
╭─[ 33.65ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #!magic │
│ │
│ │
│ a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Block =
{
magic : string
content : string
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let block =
pipe2
magicCommand
content
(fun magic content ->
{
magic = magic
content = content
})
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run block
|> _assertEqual (
Success (
{ magic = "magic"; content = "a" },
(),
Position ("", 14, 7, 1)
)
)
╭─[ 43.07ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: Block │
│ magic: magic │
│ content: a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## blocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let blocks =
skipMany newline
>>. sepEndBy block (skipMany1 newline)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic1
a
\#!magic2
b
"
|> escapeCell
|> run blocks
|> _assertEqual (
Success (
[[
{ magic = "magic1"; content = "a" }
{ magic = "magic2"; content = "b" }
]],
(),
Position ("", 26, 9, 1)
)
)
╭─[ 48.11ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: FSharpList<Block> │
│ - magic: magic1 │
│ content: a │
│ - magic: magic2 │
│ content: b │
│ Item2: <null> │
│ Item3: Position │
│ Index: 26 │
│ Line: 9 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Output │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Output =
| Fs
| Md
| Spi
| Spir
let inline kernelOutputs magic =
match magic with
| "fsharp" -> [[ Fs ]]
| "markdown" -> [[ Md ]]
| "spiral" -> [[ Spi; Spir ]]
| _ -> [[]]
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlock │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlock output (block : Block) =
match output, block with
| output, { magic = "markdown"; content = content } ->
let markdownComment =
match output with
| Spi | Spir -> "// // "
| Fs -> "/// "
| _ -> ""
content
|> SpiralSm.split "\n"
|> Array.map (SpiralSm.trim_end [[||]])
|> Array.filter (SpiralSm.ends_with " (test)" >> not)
|> Array.map (function
| "" -> markdownComment |> SpiralSm.trim
| line -> System.Text.RegularExpressions.Regex.Replace (line,
"^\\s*", $"$&{markdownComment}")
)
|> SpiralSm.concat "\n"
| Fs, { magic = "fsharp"; content = content } ->
let trimmedContent = content |> SpiralSm.trim
if trimmedContent |> SpiralSm.starts_with "//// test" || trimmedContent
|> SpiralSm.starts_with "//// ignore"
then ""
else
content
|> SpiralSm.split "\n"
|> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with
"#r" >> not)
|> SpiralSm.concat "\n"
| (Spi | Spir), { magic = "spiral"; content = content } ->
let trimmedContent = content |> SpiralSm.trim
if trimmedContent |> SpiralSm.starts_with "// // test" || trimmedContent
|> SpiralSm.starts_with "// // ignore"
then ""
else content
| _ -> ""
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
c
\#!markdown
c
\#!fsharp
let a = 1"
|> escapeCell
|> run block
|> function
| Success (block, _, _) -> formatBlock Fs block
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
///
/// c"
╭─[ 58.48ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ /// │
│ /// c │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlocks output blocks =
blocks
|> List.map (formatBlock output)
|> List.filter ((<>) "")
|> SpiralSm.concat "\n\n"
|> fun s -> s + "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
\#!markdown
c
\#!fsharp
let a = 1
\#!markdown
d (test)
\#!fsharp
//// test
let a = 2
\#!markdown
e
\#!fsharp
let a = 3"
|> escapeCell
|> run blocks
|> function
| Success (blocks, _, _) -> formatBlocks Fs blocks
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
/// c
let a = 1
/// e
let a = 3
"
╭─[ 60.18ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ │
│ /// c │
│ │
│ let a = 1 │
│ │
│ /// e │
│ │
│ let a = 3 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parse │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parse output input =
match run blocks input with
| Success (blocks, _, _) ->
let blocks =
blocks
|> List.filter (fun block ->
block.magic |> kernelOutputs |> List.contains output ||
block.magic = "markdown"
)
match blocks with
| { magic = "markdown"; content = content } :: _
when output = Fs
&& content |> SpiralSm.starts_with "# "
&& content |> SpiralSm.ends_with ")"
->
let inline indentBlock (block : Block) =
{ block with
content =
block.content
|> SpiralSm.split "\n"
|> Array.fold
(fun (lines, isMultiline) line ->
let trimmedLine = line |> SpiralSm.trim
if trimmedLine = ""
then "" :: lines, isMultiline
else
let inline singleQuoteLine () =
trimmedLine |> Seq.sumBy ((=) '"' >>
System.Convert.ToInt32) = 1
&& trimmedLine |> SpiralSm.contains
@"'""'" |> not
&& trimmedLine |> SpiralSm.ends_with "{"
|> not
&& trimmedLine |> SpiralSm.ends_with
"{|" |> not
&& trimmedLine |> SpiralSm.starts_with
"}" |> not
&& trimmedLine |> SpiralSm.starts_with
"|}" |> not
match isMultiline, trimmedLine |>
SpiralSm.split_string [[| $"{q}{q}{q}" |]] with
| false, [[| _; _ |]] ->
$" {line}" :: lines, true
| true, [[| _; _ |]] ->
line :: lines, false
| false, _ when singleQuoteLine () ->
$" {line}" :: lines, true
| false, _ when line |> SpiralSm.starts_with
"#" && block.magic = "fsharp" ->
line :: lines, false
| false, _ ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () && line |>
SpiralSm.starts_with " " ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () ->
line :: lines, false
| true, _ ->
line :: lines, true
)
([[]], false)
|> fst
|> List.rev
|> SpiralSm.concat "\n"
}
let moduleName, namespaceName =
System.Text.RegularExpressions.Regex.Match (content, @"# (.*)
\((.*)\)$")
|> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value
let moduleBlock =
{
magic = "fsharp"
content =
$"#if !INTERACTIVE
namespace {namespaceName}
#endif
module {moduleName} ="
}
blocks
|> List.indexed
|> List.fold
(fun blocks (index, block) ->
match index with
| 0 -> blocks
| 1 -> indentBlock block :: moduleBlock :: blocks
| _ -> indentBlock block :: blocks
)
[[]]
|> List.rev
| _ -> blocks
|> Result.Ok
| Failure (errorMsg, _, _) -> Result.Error errorMsg
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example1 =
$"""#!meta
{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}
\#!markdown
# TestModule (TestNamespace)
\#!fsharp
\#!import file.dib
\#!fsharp
\#r "nuget:Expecto"
\#!markdown
## ParserLibrary
\#!fsharp
open System
\#!markdown
## x (test)
\#!fsharp
//// ignore
let x = 1
\#!spiral
// // test
inl x = 0i32
\#!spiral
inl x = 0i32
\#!markdown
### TextInput
\#!fsharp
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
\#!fsharp
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}"""
|> escapeCell
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Fs
|> Result.toOption
|> Option.get
|> (formatBlocks Fs)
|> _assertEqual $"""#if !INTERACTIVE
namespace TestNamespace
#endif
module TestModule =
/// ## ParserLibrary
open System
/// ### TextInput
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}
"""
╭─[ 172.03ms - stdout ]────────────────────────────────────────────────────────╮
│ #if !INTERACTIVE │
│ namespace TestNamespace │
│ #endif │
│ │
│ module TestModule = │
│ │
│ /// ## ParserLibrary │
│ │
│ open System │
│ │
│ /// ### TextInput │
│ │
│ let str1 = "abc │
│ def" │
│ │
│ let str2 = │
│ "abc\ │
│ def" │
│ │
│ let str3 = │
│ $"1{ │
│ 1 │
│ }1" │
│ │
│ let str4 = │
│ $"1{({| │
│ a = 1 │
│ |}).a}1" │
│ │
│ let str5 = │
│ "abc \ │
│ def" │
│ │
│ let x = │
│ match '"' with │
│ | '"' -> true │
│ | _ -> false │
│ │
│ let long1 = """a""" │
│ │
│ let long2 = │
│ """ │
│ a │
│ """ │
│ │
│ type Position = │
│ { │
│ #if INTERACTIVE │
│ line : string │
│ #else │
│ line : int │
│ #endif │
│ column : int │
│ } │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Md
|> Result.toOption
|> Option.get
|> (formatBlocks Md)
|> _assertEqual "# TestModule (TestNamespace)
## ParserLibrary
### TextInput
"
╭─[ 158.50ms - stdout ]────────────────────────────────────────────────────────╮
│ # TestModule (TestNamespace) │
│ │
│ ## ParserLibrary │
│ │
│ ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Spi
|> Result.toOption
|> Option.get
|> (formatBlocks Spi)
|> _assertEqual "// // # TestModule (TestNamespace)
// // ## ParserLibrary
inl x = 0i32
// // ### TextInput
"
╭─[ 164.24ms - stdout ]────────────────────────────────────────────────────────╮
│ // // # TestModule (TestNamespace) │
│ │
│ // // ## ParserLibrary │
│ │
│ inl x = 0i32 │
│ │
│ // // ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parseDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseDibCode output file = async {
let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"
trace Debug (fun () -> "parseDibCode") getLocals
let! input = file |> FileSystem.readAllTextAsync
match parse output input with
| Result.Ok blocks -> return blocks |> formatBlocks output
| Result.Error msg -> return failwith msg
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeDibCode output path = async {
let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"
trace Debug (fun () -> "writeDibCode") getLocals
let! result = parseDibCode output path
let outputPath = path |> SpiralSm.replace ".dib" $".{output |> string |>
SpiralSm.to_lower}"
do! result |> FileSystem.writeAllTextAsync outputPath
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
File of file : string * Output
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| File _ -> nameof File
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 107.28ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> │
│ │
│ FILE: │
│ │
│ <file> <fs|md|spi|spir> │
│ File │
│ │
│ OPTIONS: │
│ │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let files =
argsMap.[[nameof Arguments.File]]
|> List.map (function
| Arguments.File (path, output) -> path, output
)
files
|> List.map (fun (path, output) -> path |> writeDibCode output)
|> Async.Parallel
|> Async.Ignore
|> Async.runWithTimeout 30000
|> function
| Some () -> 0
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 159.91ms - return value ]──────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 170.26ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Builder.dib │
│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Builder.dib │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Builder (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
SpiralSm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
/// ## readAllTextAsync
let inline readAllTextAsync path =
path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
/// ## fileExistsContent
let inline fileExistsContent path content = async {
if path |> System.IO.File.Exists |> not
then return false
else
let! existingContent = path |> readAllTextAsync
return content = existingContent
}
/// ## writeAllTextAsync
let inline writeAllTextAsync path contents =
System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
/// ## write...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open SpiralFileSystem.Operators
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildProject │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildProject runtime outputDir path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let fileDir = fullPath |> System.IO.Path.GetDirectoryName
let extension = fullPath |> System.IO.Path.GetExtension
let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"
trace Debug (fun () -> "buildProject") getLocals
match extension with
| ".fsproj" -> ()
| _ -> failwith "Invalid project file"
let runtimes =
runtime
|> Option.map List.singleton
|> Option.defaultValue [[ "linux-x64"; "win-x64" ]]
let outputDir = outputDir |> Option.defaultValue "dist"
return!
runtimes
|> List.map (fun runtime -> async {
let! exitCode, _result =
Runtime.executeWithOptionsAsync
{
Command = $@"dotnet publish ""{path}"" --configuration
Release --output ""{outputDir}"" --runtime {runtime}"
CancellationToken = None
OnLine = None
WorkingDirectory = Some fileDir
}
return exitCode
})
|> Async.Sequential
|> Async.map Array.sum
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistCodeProject │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistCodeProject packages modules name code = async {
let getLocals () = $"packages: {packages} / modules: {modules} / name:
{name} / code.Length: {code |> String.length} / {getLocals ()}"
trace Debug (fun () -> "persistCodeProject") getLocals
let repositoryRoot = SpiralFileSystem.get_source_directory () |>
SpiralFileSystem.find_parent ".paket" false
let targetDir = repositoryRoot </> "target/polyglot/builder" </> name
System.IO.Directory.CreateDirectory targetDir |> ignore
let filePath = targetDir </> $"{name}.fs" |> System.IO.Path.GetFullPath
do! code |> FileSystem.writeAllTextExists filePath
let modulesCode =
modules
|> List.map (fun path -> $"""<Compile Include="{repositoryRoot </>
path}" />""")
|> SpiralSm.concat "\n "
let fsprojPath = targetDir </> $"{name}.fsproj"
let fsprojCode = $"""<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<LangVersion>preview</LangVersion>
<RollForward>Major</RollForward>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<PublishAot>false</PublishAot>
<PublishTrimmed>false</PublishTrimmed>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<Version>0.0.1-alpha.1</Version>
<OutputType>Exe</OutputType>
</PropertyGroup>
<ItemGroup>
{modulesCode}
<Compile Include="{filePath}" />
</ItemGroup>
<Import Project="{repositoryRoot}/.paket/Paket.Restore.targets" />
</Project>
"""
do! fsprojCode |> FileSystem.writeAllTextExists fsprojPath
let paketReferencesPath = targetDir </> "paket.references"
let paketReferencesCode =
"FSharp.Core" :: packages
|> SpiralSm.concat "\n"
do! paketReferencesCode |> FileSystem.writeAllTextExists paketReferencesPath
return fsprojPath
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildCode runtime packages modules outputDir name code = async {
let! fsprojPath = code |> persistCodeProject packages modules name
return! fsprojPath |> buildProject runtime outputDir
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"1 + 1 |> ignore"
|> buildCode None [[]] [[]] None "test1"
|> Async.runWithTimeout 180000
|> _assertEqual (Some 0)
╭─[ 23.16s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] persistCodeProject / packages: [] / modules: [] / name: │
│ test1 / code.Length: 15 │
│ 00:00:00 #2 [Debug] buildProject / fullPath: │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj │
│ 00:00:00 #3 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test1\test1.fsproj" │
│ --configuration Release --output "dist" --runtime linux-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test1" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:01 #5 [Verbose] > Determining projects to restore... │
│ 00:00:01 #6 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj (in 444 ms). │
│ 00:00:02 #7 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:04 #8 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fs(1,16): warning │
│ FS0988: Main module of program is empty: nothing will happen when it is run │
│ [C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:05 #9 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\bin\Release\net9.0\linux- │
│ x64\test1.dll │
│ 00:00:06 #10 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\dist\ │
│ 00:00:06 #11 [Debug] executeAsync / exitCode: 0 / output.Length: 910 │
│ 00:00:06 #12 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test1\test1.fsproj" │
│ --configuration Release --output "dist" --runtime win-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test1" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:07 #13 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:07 #14 [Verbose] > Determining projects to restore... │
│ 00:00:08 #15 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj (in 365 ms). │
│ 00:00:08 #16 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:12 #17 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fs(1,16): warning │
│ FS0988: Main module of program is empty: nothing will happen when it is run │
│ [C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj] │
│ 00:00:13 #18 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\bin\Release\net9.0\win-x6 │
│ 4\test1.dll │
│ 00:00:22 #19 [Verbose] > test1 -> │
│ C:\home\git\polyglot\target\polyglot\builder\test1\dist\ │
│ 00:00:22 #20 [Debug] executeAsync / exitCode: 0 / output.Length: 908 │
│ FSharpOption<Int32> │
│ Value: 0 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"1 + a |> ignore"
|> buildCode None [[]] [[]] None "test2"
|> Async.runWithTimeout 180000
|> _assertEqual (Some 2)
╭─[ 7.31s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:23 #21 [Debug] persistCodeProject / packages: [] / modules: [] / name: │
│ test2 / code.Length: 15 │
│ 00:00:23 #22 [Debug] buildProject / fullPath: │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj │
│ 00:00:23 #23 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test2\test2.fsproj" │
│ --configuration Release --output "dist" --runtime linux-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test2" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:23 #24 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:23 #25 [Verbose] > Determining projects to restore... │
│ 00:00:24 #26 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj (in 358 ms). │
│ 00:00:24 #27 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:26 #28 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fs(1,5): error │
│ FS0039: The value or constructor 'a' is not defined. [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:26 #29 [Debug] executeAsync / exitCode: 1 / output.Length: 715 │
│ 00:00:26 #30 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\test2\test2.fsproj" │
│ --configuration Release --output "dist" --runtime win-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\test2" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:26 #31 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:27 #32 [Verbose] > Determining projects to restore... │
│ 00:00:28 #33 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj (in 370 ms). │
│ 00:00:28 #34 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:29 #35 [Verbose] > │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fs(1,5): error │
│ FS0039: The value or constructor 'a' is not defined. [ │
│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj] │
│ 00:00:29 #36 [Debug] executeAsync / exitCode: 1 / output.Length: 715 │
│ FSharpOption<Int32> │
│ Value: 2 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## readFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline readFile path = async {
let! code = path |> FileSystem.readAllTextAsync
let code = System.Text.RegularExpressions.Regex.Replace (
code,
@"( *)(let\s+main\s+.*?\s*=)",
fun m -> m.Groups.[[1]].Value + "[[<EntryPoint>]]\n" +
m.Groups.[[1]].Value + m.Groups.[[2]].Value
)
let codeTrim = code |> SpiralSm.trim_end [[||]]
return
if codeTrim |> SpiralSm.ends_with "\n()"
then codeTrim |> SpiralSm.slice 0 ((codeTrim |> String.length) - 3)
else code
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildFile runtime packages modules path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let dir = fullPath |> System.IO.Path.GetDirectoryName
let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
let! code = fullPath |> readFile
return! code |> buildCode runtime packages modules (dir </> "dist" |> Some)
name
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistFile packages modules path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension
let! code = fullPath |> readFile
return! code |> persistCodeProject packages modules name
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce>]]
Path of path : string
| [[<Argu.ArguAttributes.Unique>]] Packages of packages : string list
| [[<Argu.ArguAttributes.Unique>]] Modules of modules : string list
| [[<Argu.ArguAttributes.Unique>]] Runtime of runtime : string
| [[<Argu.ArguAttributes.Unique>]] Persist_Only
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| Path _ -> nameof Path
| Packages _ -> nameof Packages
| Modules _ -> nameof Modules
| Runtime _ -> nameof Runtime
| Persist_Only -> nameof Persist_Only
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 124.02ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] [--packages [<packages>...]] │
│ [--modules [<modules>...]] [--runtime <runtime>] │
│ [--persist-only] <path> │
│ │
│ PATH: │
│ │
│ <path> Path │
│ │
│ OPTIONS: │
│ │
│ --packages [<packages>...] │
│ Packages │
│ --modules [<modules>...] │
│ Modules │
│ --runtime <runtime> Runtime │
│ --persist-only Persist_Only │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let path =
match argsMap.[[nameof Arguments.Path]] with
| [[ Arguments.Path path ]] -> Some path
| _ -> None
|> Option.get
let packages =
match argsMap |> Map.tryFind (nameof Arguments.Packages) with
| Some [[ Arguments.Packages packages ]] -> packages
| _ -> [[]]
let modules =
match argsMap |> Map.tryFind (nameof Arguments.Modules) with
| Some [[ Arguments.Modules modules ]] -> modules
| _ -> [[]]
let runtime =
match argsMap |> Map.tryFind (nameof Arguments.Runtime) with
| Some [[ Arguments.Runtime runtime ]] -> Some runtime
| _ -> None
let persistOnly = argsMap |> Map.containsKey (nameof Arguments.Persist_Only)
if persistOnly
then path |> persistFile packages modules |> Async.map (fun _ -> 0)
else path |> buildFile runtime packages modules
|> Async.runWithTimeout (60000 * 60)
|> function
| Some exitCode -> exitCode
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 24.97s - return value ]────────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 24.98s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:32 #37 [Debug] persistCodeProject / packages: [Argu; │
│ FSharp.Control.AsyncSeq; System.CommandLine; ... ] / modules: [ │
│ lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / │
│ name: Builder / code.Length: 7153 │
│ 00:00:32 #38 [Debug] buildProject / fullPath: │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj │
│ 00:00:32 #39 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\Builder\Builder.fsproj" │
│ --configuration Release --output "C:\home\git\polyglot\apps\builder\dist" │
│ --runtime linux-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\Builder" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:32 #40 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:33 #41 [Verbose] > Determining projects to restore... │
│ 00:00:33 #42 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj (in 394 │
│ ms). │
│ 00:00:33 #43 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj] │
│ 00:00:40 #44 [Verbose] > Builder -> │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\bin\Release\net9.0\linu │
│ x-x64\Builder.dll │
│ 00:00:41 #45 [Verbose] > Builder -> │
│ C:\home\git\polyglot\apps\builder\dist\ │
│ 00:00:41 #46 [Debug] executeAsync / exitCode: 0 / output.Length: 692 │
│ 00:00:41 #47 [Debug] executeAsync / options: { Command = │
│ "dotnet publish │
│ "C:\home\git\polyglot\target/polyglot/builder\Builder\Builder.fsproj" │
│ --configuration Release --output "C:\home\git\polyglot\apps\builder\dist" │
│ --runtime win-x64" │
│ WorkingDirectory = Some │
│ "C:\home\git\polyglot\target\polyglot\builder\Builder" │
│ CancellationToken = None │
│ OnLine = None } │
│ 00:00:42 #48 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f │
│ for .NET │
│ 00:00:42 #49 [Verbose] > Determining projects to restore... │
│ 00:00:43 #50 [Verbose] > Restored │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj (in 367 │
│ ms). │
│ 00:00:43 #51 [Verbose] > │
│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │
│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │
│ ce.targets(313,5): message NETSDK1057: You are using a preview version of │
│ .NET. See: https://aka.ms/dotnet-support-policy [ │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj] │
│ 00:00:49 #52 [Verbose] > Builder -> │
│ C:\home\git\polyglot\target\polyglot\builder\Builder\bin\Release\net9.0\win- │
│ x64\Builder.dll │
│ 00:00:56 #53 [Verbose] > Builder -> │
│ C:\home\git\polyglot\apps\builder\dist\ │
│ 00:00:56 #54 [Debug] executeAsync / exitCode: 0 / output.Length: 690 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Builder.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 328615 bytes to Builder.dib.html
In [ ]:
{ . "$ScriptDir/../apps/parser/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DibParser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── pwsh ────────────────────────────────────────────────────────────────────────
ls ~/.nuget/packages/argu
╭─[ 615.07ms - stdout ]────────────────────────────────────────────────────────╮
│ │
│ Directory: C:\Users\i574n\.nuget\packages\argu │
│ │
│ Mode LastWriteTime Length[ │
│ 32;1m Name │
│ ---- ------------- ------ [ │
│ 32;1m---- │
│ d---- 2023-05-17 3:38 PM 6.1.1 │
│ d---- 2024-03-12 8:22 PM 6.1.4 │
│ d---- 2024-01-29 5:12 PM 6.1.5 │
│ d---- 2024-03-12 8:20 PM 6.2.0 │
│ d---- 2024-02-23 6:50 PM 6.2.1 │
│ d---- 2024-03-12 8:15 PM 6.2.2 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsec.dll"
#r
@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP
arsecCS.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
/// ## readAllTextAsync
let inline readAllTextAsync path =
path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
/// ## fileExistsContent
let inline fileExistsContent path content = async {
if path |> System.IO.File.Exists |> not
then return false
else
let! existingContent = path |> readAllTextAsync
return content = existingContent
}
/// ## writeAllTextAsync
let inline writeAllTextAsync path contents =
System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
/// ## write...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open FParsec
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## escapeCell (test) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let inline escapeCell input =
input
|> SpiralSm.split "\n"
|> Array.map (function
| line when line |> SpiralSm.starts_with "\\#!" || line |>
SpiralSm.starts_with "\\#r" ->
System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")
| line -> line
)
|> SpiralSm.concat "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
$"a{nl}\\#!magic{nl}b{nl}"
|> escapeCell
|> _assertEqual (
$"a{nl}#!magic{nl}b{nl}"
)
╭─[ 50.96ms - stdout ]─────────────────────────────────────────────────────────╮
│ a │
│ #!magic │
│ b │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicMarker │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicMarker : Parser<string, unit> = pstring "#!"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic"
|> run magicMarker
|> _assertEqual (
Success ("#!", (), Position ("", 2, 1, 3))
)
╭─[ 47.07ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #! │
│ Item2: <null> │
│ Item3: Position │
│ Index: 2 │
│ Line: 1 │
│ Column: 3 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"##!magic"
|> run magicMarker
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 47.85ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ ##!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## magicCommand │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let magicCommand =
magicMarker
>>. manyTill anyChar newline
|>> (System.String.Concat >> SpiralSm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a"
|> run magicCommand
|> _assertEqual (
Success ("magic", (), Position ("", 8, 2, 1))
)
╭─[ 35.30ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: magic │
│ Item2: <null> │
│ Item3: Position │
│ Index: 8 │
│ Line: 2 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
" #!magic
a"
|> run magicCommand
|> _assertEqual (
Failure (
$"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",
ParserError (
Position ("", 0, 1, 1),
(),
ErrorMessageList (ExpectedString "#!")
),
()
)
)
╭─[ 32.60ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: Error in Ln: 1 Col: 1 │
│ #!magic │
│ ^ │
│ Expecting: '#!' │
│ │
│ Item2: ParserError │
│ Position: Position │
│ Index: 0 │
│ Line: 1 │
│ Column: 1 │
│ StreamName: │
│ UserState: <null> │
│ Messages: ErrorMessageList │
│ Head: ExpectedString │
│ String: #! │
│ Type: ExpectedString │
│ Tail: <null> │
│ Item3: <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## content │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let content =
(newline >>. magicMarker) <|> (eof >>. preturn "")
|> attempt
|> lookAhead
|> manyTill anyChar
|>> (System.String.Concat >> SpiralSm.trim)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run content
|> _assertEqual (
Success ("#!magic
a", (), Position ("", 14, 7, 1))
)
╭─[ 32.33ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: #!magic │
│ │
│ │
│ a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Block =
{
magic : string
content : string
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## block │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let block =
pipe2
magicCommand
content
(fun magic content ->
{
magic = magic
content = content
})
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic
a
"
|> run block
|> _assertEqual (
Success (
{ magic = "magic"; content = "a" },
(),
Position ("", 14, 7, 1)
)
)
╭─[ 43.00ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: Block │
│ magic: magic │
│ content: a │
│ Item2: <null> │
│ Item3: Position │
│ Index: 14 │
│ Line: 7 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## blocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let blocks =
skipMany newline
>>. sepEndBy block (skipMany1 newline)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!magic1
a
\#!magic2
b
"
|> escapeCell
|> run blocks
|> _assertEqual (
Success (
[[
{ magic = "magic1"; content = "a" }
{ magic = "magic2"; content = "b" }
]],
(),
Position ("", 26, 9, 1)
)
)
╭─[ 51.30ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item1: FSharpList<Block> │
│ - magic: magic1 │
│ content: a │
│ - magic: magic2 │
│ content: b │
│ Item2: <null> │
│ Item3: Position │
│ Index: 26 │
│ Line: 9 │
│ Column: 1 │
│ StreamName: │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Output │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Output =
| Fs
| Md
| Spi
| Spir
let inline kernelOutputs magic =
match magic with
| "fsharp" -> [[ Fs ]]
| "markdown" -> [[ Md ]]
| "spiral" -> [[ Spi; Spir ]]
| _ -> [[]]
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlock │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlock output (block : Block) =
match output, block with
| output, { magic = "markdown"; content = content } ->
let markdownComment =
match output with
| Spi | Spir -> "// // "
| Fs -> "/// "
| _ -> ""
content
|> SpiralSm.split "\n"
|> Array.map (SpiralSm.trim_end [[||]])
|> Array.filter (SpiralSm.ends_with " (test)" >> not)
|> Array.map (function
| "" -> markdownComment |> SpiralSm.trim
| line -> System.Text.RegularExpressions.Regex.Replace (line,
"^\\s*", $"$&{markdownComment}")
)
|> SpiralSm.concat "\n"
| Fs, { magic = "fsharp"; content = content } ->
let trimmedContent = content |> SpiralSm.trim
if trimmedContent |> SpiralSm.starts_with "//// test" || trimmedContent
|> SpiralSm.starts_with "//// ignore"
then ""
else
content
|> SpiralSm.split "\n"
|> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with
"#r" >> not)
|> SpiralSm.concat "\n"
| (Spi | Spir), { magic = "spiral"; content = content } ->
let trimmedContent = content |> SpiralSm.trim
if trimmedContent |> SpiralSm.starts_with "// // test" || trimmedContent
|> SpiralSm.starts_with "// // ignore"
then ""
else content
| _ -> ""
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
c
\#!markdown
c
\#!fsharp
let a = 1"
|> escapeCell
|> run block
|> function
| Success (block, _, _) -> formatBlock Fs block
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
///
/// c"
╭─[ 62.24ms - stdout ]─────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ /// │
│ /// c │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## formatBlocks │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline formatBlocks output blocks =
blocks
|> List.map (formatBlock output)
|> List.filter ((<>) "")
|> SpiralSm.concat "\n\n"
|> fun s -> s + "\n"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"#!markdown
a
b
\#!markdown
c
\#!fsharp
let a = 1
\#!markdown
d (test)
\#!fsharp
//// test
let a = 2
\#!markdown
e
\#!fsharp
let a = 3"
|> escapeCell
|> run blocks
|> function
| Success (blocks, _, _) -> formatBlocks Fs blocks
| Failure (msg, _, _) -> failwith msg
|> _assertEqual "/// a
///
/// b
/// c
let a = 1
/// e
let a = 3
"
╭─[ 141.95ms - stdout ]────────────────────────────────────────────────────────╮
│ /// a │
│ /// │
│ /// b │
│ │
│ /// c │
│ │
│ let a = 1 │
│ │
│ /// e │
│ │
│ let a = 3 │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parse │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parse output input =
match run blocks input with
| Success (blocks, _, _) ->
let blocks =
blocks
|> List.filter (fun block ->
block.magic |> kernelOutputs |> List.contains output ||
block.magic = "markdown"
)
match blocks with
| { magic = "markdown"; content = content } :: _
when output = Fs
&& content |> SpiralSm.starts_with "# "
&& content |> SpiralSm.ends_with ")"
->
let inline indentBlock (block : Block) =
{ block with
content =
block.content
|> SpiralSm.split "\n"
|> Array.fold
(fun (lines, isMultiline) line ->
let trimmedLine = line |> SpiralSm.trim
if trimmedLine = ""
then "" :: lines, isMultiline
else
let inline singleQuoteLine () =
trimmedLine |> Seq.sumBy ((=) '"' >>
System.Convert.ToInt32) = 1
&& trimmedLine |> SpiralSm.contains
@"'""'" |> not
&& trimmedLine |> SpiralSm.ends_with "{"
|> not
&& trimmedLine |> SpiralSm.ends_with
"{|" |> not
&& trimmedLine |> SpiralSm.starts_with
"}" |> not
&& trimmedLine |> SpiralSm.starts_with
"|}" |> not
match isMultiline, trimmedLine |>
SpiralSm.split_string [[| $"{q}{q}{q}" |]] with
| false, [[| _; _ |]] ->
$" {line}" :: lines, true
| true, [[| _; _ |]] ->
line :: lines, false
| false, _ when singleQuoteLine () ->
$" {line}" :: lines, true
| false, _ when line |> SpiralSm.starts_with
"#" && block.magic = "fsharp" ->
line :: lines, false
| false, _ ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () && line |>
SpiralSm.starts_with " " ->
$" {line}" :: lines, false
| true, _ when singleQuoteLine () ->
line :: lines, false
| true, _ ->
line :: lines, true
)
([[]], false)
|> fst
|> List.rev
|> SpiralSm.concat "\n"
}
let moduleName, namespaceName =
System.Text.RegularExpressions.Regex.Match (content, @"# (.*)
\((.*)\)$")
|> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value
let moduleBlock =
{
magic = "fsharp"
content =
$"#if !INTERACTIVE
namespace {namespaceName}
#endif
module {moduleName} ="
}
blocks
|> List.indexed
|> List.fold
(fun blocks (index, block) ->
match index with
| 0 -> blocks
| 1 -> indentBlock block :: moduleBlock :: blocks
| _ -> indentBlock block :: blocks
)
[[]]
|> List.rev
| _ -> blocks
|> Result.Ok
| Failure (errorMsg, _, _) -> Result.Error errorMsg
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example1 =
$"""#!meta
{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":
"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}
\#!markdown
# TestModule (TestNamespace)
\#!fsharp
\#!import file.dib
\#!fsharp
\#r "nuget:Expecto"
\#!markdown
## ParserLibrary
\#!fsharp
open System
\#!markdown
## x (test)
\#!fsharp
//// ignore
let x = 1
\#!spiral
// // test
inl x = 0i32
\#!spiral
inl x = 0i32
\#!markdown
### TextInput
\#!fsharp
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
\#!fsharp
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}"""
|> escapeCell
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Fs
|> Result.toOption
|> Option.get
|> (formatBlocks Fs)
|> _assertEqual $"""#if !INTERACTIVE
namespace TestNamespace
#endif
module TestModule =
/// ## ParserLibrary
open System
/// ### TextInput
let str1 = "abc
def"
let str2 =
"abc\
def"
let str3 =
$"1{{
1
}}1"
let str4 =
$"1{{({{|
a = 1
|}}).a}}1"
let str5 =
"abc \
def"
let x =
match '"' with
| '"' -> true
| _ -> false
let long1 = {q}{q}{q}a{q}{q}{q}
let long2 =
{q}{q}{q}
a
{q}{q}{q}
type Position =
{{
#if INTERACTIVE
line : string
#else
line : int
#endif
column : int
}}
"""
╭─[ 183.26ms - stdout ]────────────────────────────────────────────────────────╮
│ #if !INTERACTIVE │
│ namespace TestNamespace │
│ #endif │
│ │
│ module TestModule = │
│ │
│ /// ## ParserLibrary │
│ │
│ open System │
│ │
│ /// ### TextInput │
│ │
│ let str1 = "abc │
│ def" │
│ │
│ let str2 = │
│ "abc\ │
│ def" │
│ │
│ let str3 = │
│ $"1{ │
│ 1 │
│ }1" │
│ │
│ let str4 = │
│ $"1{({| │
│ a = 1 │
│ |}).a}1" │
│ │
│ let str5 = │
│ "abc \ │
│ def" │
│ │
│ let x = │
│ match '"' with │
│ | '"' -> true │
│ | _ -> false │
│ │
│ let long1 = """a""" │
│ │
│ let long2 = │
│ """ │
│ a │
│ """ │
│ │
│ type Position = │
│ { │
│ #if INTERACTIVE │
│ line : string │
│ #else │
│ line : int │
│ #endif │
│ column : int │
│ } │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Md
|> Result.toOption
|> Option.get
|> (formatBlocks Md)
|> _assertEqual "# TestModule (TestNamespace)
## ParserLibrary
### TextInput
"
╭─[ 200.50ms - stdout ]────────────────────────────────────────────────────────╮
│ # TestModule (TestNamespace) │
│ │
│ ## ParserLibrary │
│ │
│ ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
example1
|> parse Spi
|> Result.toOption
|> Option.get
|> (formatBlocks Spi)
|> _assertEqual "// // # TestModule (TestNamespace)
// // ## ParserLibrary
inl x = 0i32
// // ### TextInput
"
╭─[ 193.09ms - stdout ]────────────────────────────────────────────────────────╮
│ // // # TestModule (TestNamespace) │
│ │
│ // // ## ParserLibrary │
│ │
│ inl x = 0i32 │
│ │
│ // // ### TextInput │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## parseDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parseDibCode output file = async {
let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"
trace Debug (fun () -> "parseDibCode") getLocals
let! input = file |> FileSystem.readAllTextAsync
match parse output input with
| Result.Ok blocks -> return blocks |> formatBlocks output
| Result.Error msg -> return failwith msg
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## writeDibCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline writeDibCode output path = async {
let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"
trace Debug (fun () -> "writeDibCode") getLocals
let! result = parseDibCode output path
let outputPath = path |> SpiralSm.replace ".dib" $".{output |> string |>
SpiralSm.to_lower}"
do! result |> FileSystem.writeAllTextAsync outputPath
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]
File of file : string * Output
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| File _ -> nameof File
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 132.72ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> │
│ │
│ FILE: │
│ │
│ <file> <fs|md|spi|spir> │
│ File │
│ │
│ OPTIONS: │
│ │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let files =
argsMap.[[nameof Arguments.File]]
|> List.map (function
| Arguments.File (path, output) -> path, output
)
files
|> List.map (fun (path, output) -> path |> writeDibCode output)
|> Async.Parallel
|> Async.Ignore
|> Async.runWithTimeout 30000
|> function
| Some () -> 0
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 167.53ms - return value ]──────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 181.12ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DibParser.dib │
│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DibParser.dib │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook DibParser.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 369668 bytes to DibParser.dib.html
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: DibParser / code.Length: 9170
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DibParser"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] > Determining projects to restore...
00:00:01 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj (in 373 ms).
00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj]
00:00:08 #8 [Verbose] > DibParser -> C:\home\git\polyglot\target\polyglot\builder\DibParser\bin\Release\net9.0\linux-x64\DibParser.dll
00:00:09 #9 [Verbose] > DibParser -> C:\home\git\polyglot\apps\parser\dist\
00:00:09 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 707
00:00:09 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DibParser"
CancellationToken = None
OnLine = None }
00:00:09 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:10 #13 [Verbose] > Determining projects to restore...
00:00:11 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj (in 387 ms).
00:00:11 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj]
00:00:17 #16 [Verbose] > DibParser -> C:\home\git\polyglot\target\polyglot\builder\DibParser\bin\Release\net9.0\win-x64\DibParser.dll
00:00:25 #17 [Verbose] > DibParser -> C:\home\git\polyglot\apps\parser\dist\
00:00:25 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 705
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # JsonParser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import Parser.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Parser =
open Common
/// ### TextInput
type Position =
{
line : int
column : int
}
let initialPos = { line = 0; column = 0 }
let inline incrCol (pos : Position) =
{ pos with column = pos.column + 1 }
let inline incrLine pos =
{ line = pos.line + 1; column = 0 }
type InputState =
{
lines : string[[]]
position : Position
}
let inline fromStr str =
{
lines =
if str |> String.IsNullOrEmpty
then [[||]]
else str |> SpiralSm.split_string [[| "\r\n"; "\n" |]]
position = initialPos
}
...
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open Parser
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## JsonParser │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
(*
// --------------------------------
JSON spec from http://www.json.org/
// --------------------------------
The JSON spec is available at [[json.org]](http://www.json.org/). I'll paraphase
it here:
* A `value` can be a `string` or a `number` or a `bool` or `null` or an `object`
or an `array`.
* These structures can be nested.
* A `string` is a sequence of zero or more Unicode characters, wrapped in double
quotes, using backslash escapes.
* A `number` is very much like a C or Java number, except that the octal and
hexadecimal formats are not used.
* A `boolean` is the literal `true` or `false`
* A `null` is the literal `null`
* An `object` is an unordered set of name/value pairs.
* An object begins with { (left brace) and ends with } (right brace).
* Each name is followed by : (colon) and the name/value pairs are separated by
, (comma).
* An `array` is an ordered collection of values.
* An array begins with [[ (left bracket) and ends with ]] (right bracket).
* Values are separated by , (comma).
* Whitespace can be inserted between any pair of tokens.
*)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let inline parserEqual (expected : ParseResult<'a>) (actual : ParseResult<'a *
Input>) =
match actual, expected with
| Success (_actual, _), Success _expected ->
printResult actual
_actual |> _assertEqual _expected
| Failure (l1, e1, p1), Failure (l2, e2, p2) when l1 = l2 && e1 = e2 && p1 =
p2 ->
printResult actual
| _ ->
printfn $"Actual: {actual}"
printfn $"Expected: {expected}"
failwith "Parse failed"
actual
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### JValue │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type JValue =
| JString of string
| JNumber of float
| JBool of bool
| JNull
| JObject of Map<string, JValue>
| JArray of JValue list
── fsharp ──────────────────────────────────────────────────────────────────────
let jValue, jValueRef = createParserForwardedToRef<JValue> ()
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jNull │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jNull =
pstring "null"
>>% JNull
<?> "null"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jValue "null"
|> parserEqual (Success JNull)
╭─[ 244.74ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNull, { lines = [ │
│ |"null"|]<br/> position = { line = 0<br/> │
│ column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNull, { lines = [|"null"|]<br/> │
│ position = { line = 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead> │
│ <tr></tr></thead><tbody><tr><td>IsJString</td><td><d... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 254.50ms - stdout ]────────────────────────────────────────────────────────╮
│ JNull │
│ JValue │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: True │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNull "nulp"
|> parserEqual (
Failure (
"null",
"Unexpected 'p'",
{ currentLine = "nulp"; line = 0; column = 3 }
)
)
╭─[ 48.11ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("null", "Unexpected │
│ 'p'", { currentLine = "nulp"<br/> │
│ line = 0<br/> column = 3 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>null</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected │
│ 'p'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "nulp"<br/> line = 0<br/> column = 3 │
│ }</code></span></summary><div><table><thead><tr></tr></thead... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 53.71ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:3 Error parsing null │
│ nulp │
│ ^Unexpected 'p' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jBool │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jBool =
let jtrue =
pstring "true"
>>% JBool true
let jfalse =
pstring "false"
>>% JBool false
jtrue <|> jfalse
<?> "bool"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jBool "true"
|> parserEqual (Success (JBool true))
╭─[ 49.11ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JBool true, { lines = [ │
│ |"true"|]<br/> position = { line = 0<br/> │
│ column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JBool true, { lines = [|"true"|]<br/> │
│ position = { line = 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JBool │
│ true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr.. │
│ . │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 70.05ms - stdout ]─────────────────────────────────────────────────────────╮
│ JBool true │
│ JBool │
│ Item: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jBool "false"
|> parserEqual (Success (JBool false))
╭─[ 36.89ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JBool false, { lines = [ │
│ |"false"|]<br/> position = { line = 0<br/> │
│ column = 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JBool false, { lines = [ │
│ |"false"|]<br/> position = { line = 0<br/> column = │
│ 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JBool │
│ false</code></span></summary><div><table><thead><tr></tr></thead><tb... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 43.66ms - stdout ]─────────────────────────────────────────────────────────╮
│ JBool false │
│ JBool │
│ Item: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jBool "truX"
|> parserEqual (
Failure (
"bool",
"Unexpected 't'",
{ currentLine = "truX"; line = 0; column = 0 }
)
)
╭─[ 29.98ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("bool", "Unexpected │
│ 't'", { currentLine = "truX"<br/> │
│ line = 0<br/> column = 0 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>bool</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected │
│ 't'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "truX"<br/> line = 0<br/> column = 0 │
│ }</code></span></summary><div><table><thead><tr></tr></thead... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 35.68ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing bool │
│ truX │
│ ^Unexpected 't' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jUnescapedChar │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jUnescapedChar =
satisfy (fun ch -> ch <> '\\' && ch <> '\"') "char"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jUnescapedChar "a"
|> parserEqual (Success 'a')
╭─[ 67.90ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('a', { lines = [ │
│ |"a"|]<br/> position = { line = 0<br/> │
│ column = 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(a, { lines = [|"a"|]<br/> position = │
│ { line = 0<br/> column = 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"a"|]<br/... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 74.41ms - stdout ]─────────────────────────────────────────────────────────╮
│ 'a' │
│ a │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jUnescapedChar "\\"
|> parserEqual (
Failure (
"char",
"Unexpected '\\'",
{ currentLine = "\\"; line = 0; column = 0 }
)
)
╭─[ 34.58ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("char", "Unexpected │
│ '\'", { currentLine = "\"<br/> │
│ line = 0<br/> column = 0 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>char</pre></div></td></tr><tr><td>Item2</td><td>< │
│ div class="dni-plaintext"><pre>Unexpected │
│ '\'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "\"<br/> line = 0<br/> column = 0 │
│ }</code></span></summary><div><table><thead><tr></tr></thead><tbod... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 39.73ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing char │
│ \ │
│ ^Unexpected '\' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jEscapedChar │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jEscapedChar =
[[
("\\\"",'\"')
("\\\\",'\\')
("\\/",'/')
("\\b",'\b')
("\\f",'\f')
("\\n",'\n')
("\\r",'\r')
("\\t",'\t')
]]
|> List.map (fun (toMatch, result) ->
pstring toMatch >>% result
)
|> choice
<?> "escaped char"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar "\\\\"
|> parserEqual (Success '\\')
╭─[ 40.10ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\\', { lines = [ │
│ |"\\"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(\, { lines = [|"\\"|]<br/> position │
│ = { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"\\"... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 47.48ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\\' │
│ \ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar "\\t"
|> parserEqual (Success '\t')
╭─[ 34.53ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\009', { lines = [ │
│ |"\t"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>( , { lines = [|"\t"|]<br/> position = │
│ { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre> │
│ </pre></div></td></tr><tr><td>Item2</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = [ │
│ |"\t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 41.77ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\009' │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar @"\\"
|> parserEqual (Success '\\')
╭─[ 36.23ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\\', { lines = [ │
│ |"\\"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(\, { lines = [|"\\"|]<br/> position │
│ = { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"\\"... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 42.52ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\\' │
│ \ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar @"\n"
|> parserEqual (Success '\n')
╭─[ 38.21ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('\010', { lines = [ │
│ |"<br/>"|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(<br/>, { lines = [|"<br/>"|]<br/> │
│ position = { line = 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre> │
│ </pre></div></td></tr><tr><td>Item2</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = │
│ ... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 44.12ms - stdout ]─────────────────────────────────────────────────────────╮
│ '\010' │
│ │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jEscapedChar "a"
|> parserEqual (
Failure (
"escaped char",
"Unexpected 'a'",
{ currentLine = "a"; line = 0; column = 0 }
)
)
╭─[ 25.96ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("escaped char", │
│ "Unexpected 'a'", { currentLine = "a"<br/> │
│ line = 0<br/> column = 0 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>escaped │
│ char</pre></div></td></tr><tr><td>Item2</td><td><div │
│ class="dni-plaintext"><pre>Unexpected │
│ 'a'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "a"<br/> line = 0<br/> column = 0 │
│ }</code></span></summary><div><tab... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 32.19ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:0 Error parsing escaped char │
│ a │
│ ^Unexpected 'a' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jUnicodeChar │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jUnicodeChar =
let backslash = pchar '\\'
let uChar = pchar 'u'
let hexdigit = anyOf ([[ '0' .. '9' ]] @ [[ 'A' .. 'F' ]] @ [[ 'a' .. 'f'
]])
let fourHexDigits = hexdigit .>>. hexdigit .>>. hexdigit .>>. hexdigit
let inline convertToChar (((h1, h2), h3), h4) =
let str = $"%c{h1}%c{h2}%c{h3}%c{h4}"
Int32.Parse (str, Globalization.NumberStyles.HexNumber) |> char
backslash >>. uChar >>. fourHexDigits
|>> convertToChar
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jUnicodeChar "\\u263A"
|> parserEqual (Success '☺')
╭─[ 47.88ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success ('☺', { lines = [ │
│ |"\u263A"|]<br/> position = { line = 0<br/> │
│ column = 6 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(☺, { lines = [|"\u263A"|]<br/> │
│ position = { line = 0<br/> column = 6 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>☺</pre></div></td></tr><tr><td>Item2</td><td><det │
│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │
│ = [|"\u2... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 55.26ms - stdout ]─────────────────────────────────────────────────────────╮
│ '☺' │
│ ☺ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jString │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let quotedString =
let quote = pchar '\"' <?> "quote"
let jchar = jUnescapedChar <|> jEscapedChar <|> jUnicodeChar
quote >>. manyChars jchar .>> quote
── fsharp ──────────────────────────────────────────────────────────────────────
let jString =
quotedString
|>> JString
<?> "quoted string"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
jString
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"\""
|> parserEqual (Success (JString ""))
╭─[ 56.51ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "", { lines = [ │
│ |""""|]<br/> position = { line = │
│ 0<br/> column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "", { lines = [ │
│ |""""|]<br/> position = { line = 0<br/> │
│ column = 2 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString ""</code></span></summary>... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 63.15ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "" │
│ JString │
│ Item: │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"a\""
|> parserEqual (Success (JString "a"))
╭─[ 37.50ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "a", { lines = [ │
│ |""a""|]<br/> position = { line = │
│ 0<br/> column = 3 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "a", { lines = [ │
│ |""a""|]<br/> position = { line = 0<br/> │
│ column = 3 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString "a"</code></span></s... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 44.08ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "a" │
│ JString │
│ Item: a │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"ab\""
|> parserEqual (Success (JString "ab"))
╭─[ 34.98ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "ab", { lines = [ │
│ |""ab""|]<br/> position = { line │
│ = 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "ab", { lines = [ │
│ |""ab""|]<br/> position = { line = 0<br/> │
│ column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString "ab"</code></s... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 41.69ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab" │
│ JString │
│ Item: ab │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"ab\\tde\""
|> parserEqual (Success (JString "ab\tde"))
╭─[ 40.54ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "ab de", { lines = [ │
│ |""ab\tde""|]<br/> position = │
│ { line = 0<br/> column = 8 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "ab de", { lines = [ │
│ |""ab\tde""|]<br/> position = { line = 0<br/> │
│ column = 8 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JString &quo... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 46.85ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab de" │
│ JString │
│ Item: ab de │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jString "\"ab\\u263Ade\""
|> parserEqual (Success (JString "ab☺de"))
╭─[ 34.98ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JString "ab☺de", { lines = [ │
│ |""ab\u263Ade""|]<br/> │
│ position = { line = 0<br/> column = │
│ 12 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JString "ab☺de", { lines = [ │
│ |""ab\u263Ade""|]<br/> position = { line = 0<br/> │
│ column = 12 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JS... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 42.68ms - stdout ]─────────────────────────────────────────────────────────╮
│ JString "ab☺de" │
│ JString │
│ Item: ab☺de │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jNumber │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jNumber =
let optSign = opt (pchar '-')
let zero = pstring "0"
let digitOneNine =
satisfy (fun ch -> Char.IsDigit ch && ch <> '0') "1-9"
let digit =
satisfy Char.IsDigit "digit"
let point = pchar '.'
let e = pchar 'e' <|> pchar 'E'
let optPlusMinus = opt (pchar '-' <|> pchar '+')
let nonZeroInt =
digitOneNine .>>. manyChars digit
|>> fun (first, rest) -> string first + rest
let intPart = zero <|> nonZeroInt
let fractionPart = point >>. manyChars1 digit
let exponentPart = e >>. optPlusMinus .>>. manyChars1 digit
let inline (|>?) opt f =
match opt with
| None -> ""
| Some x -> f x
let inline convertToJNumber (((optSign, intPart), fractionPart), expPart) =
let signStr =
optSign
|>? string
let fractionPartStr =
fractionPart
|>? (fun digits -> "." + digits)
let expPartStr =
expPart
|>? fun (optSign, digits) ->
let sign = optSign |>? string
"e" + sign + digits
(signStr + intPart + fractionPartStr + expPartStr)
|> float
|> JNumber
optSign .>>. intPart .>>. opt fractionPart .>>. opt exponentPart
|>> convertToJNumber
<?> "number"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
jString
jNumber
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "123"
|> parserEqual (Success (JNumber 123.0))
╭─[ 60.48ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 0<br/> │
│ column = 3 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 0<br/> column = 3 │
│ } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.0</code></span></summary><div><table><thead><tr></tr></the... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 67.08ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.0 │
│ JNumber │
│ Item: 123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "-123"
|> parserEqual (Success (JNumber -123.0))
╭─[ 37.38ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = │
│ 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = 0<br/> column = │
│ 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ -123.0</code></span></summary><div><table><thead><tr></t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 44.45ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0 │
│ JNumber │
│ Item: -123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "123.4"
|> parserEqual (Success (JNumber 123.4))
╭─[ 34.69ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = │
│ 0<br/> column = 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = 0<br/> column = │
│ 5 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.4</code></span></summary><div><table><thead><tr></tr><... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 40.99ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.4 │
│ JNumber │
│ Item: 123.4 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "-123."
|> parserEqual (Success (JNumber -123.0))
╭─[ 38.04ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [ │
│ |"-123."|]<br/> position = { line = │
│ 0<br/> column = 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [ │
│ |"-123."|]<br/> position = { line = 0<br/> column = │
│ 4 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ -123.0</code></span></summary><div><table><thead><tr><... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 45.25ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0 │
│ JNumber │
│ Item: -123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber "00.1"
|> parserEqual (Success (JNumber 0.0))
╭─[ 36.22ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 0.0, { lines = [ │
│ |"00.1"|]<br/> position = { line = 0<br/> │
│ column = 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 0.0, { lines = [ │
│ |"00.1"|]<br/> position = { line = 0<br/> column = │
│ 1 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbod... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 43.09ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 0.0 │
│ JNumber │
│ Item: 0 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let jNumber_ = jNumber .>> spaces1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123"
|> parserEqual (Success (JNumber 123.0))
╭─[ 52.80ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [ │
│ |"123"|]<br/> position = { line = 1<br/> column = 0 │
│ } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.0</code></span></summary><div><table><thead><tr></tr></the... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 59.92ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.0 │
│ JNumber │
│ Item: 123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "-123"
|> parserEqual (Success (JNumber -123.0))
╭─[ 35.01ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [ │
│ |"-123"|]<br/> position = { line = 1<br/> column = │
│ 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ -123.0</code></span></summary><div><table><thead><tr></t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 41.90ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber -123.0 │
│ JNumber │
│ Item: -123 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "-123."
|> parserEqual (
Failure (
"number andThen many1 whitespace",
"Unexpected '.'",
{ currentLine = "-123."; line = 0; column = 4 }
)
)
╭─[ 27.96ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure<br/> ("number andThen many1 │
│ whitespace", "Unexpected '.'", { currentLine = │
│ "-123."<br/> │
│ line = 0<br/> │
│ column = 4 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1 │
│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div │
│ class="dni-plaintext"><pre>Unexpected │
│ '.'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 34.22ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:4 Error parsing number andThen many1 whitespace │
│ -123. │
│ ^Unexpected '.' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123.4"
|> parserEqual (Success (JNumber 123.4))
╭─[ 36.12ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [ │
│ |"123.4"|]<br/> position = { line = 1<br/> column = │
│ 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 123.4</code></span></summary><div><table><thead><tr></tr><... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 43.43ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 123.4 │
│ JNumber │
│ Item: 123.4 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "00.4"
|> parserEqual (
Failure (
"number andThen many1 whitespace",
"Unexpected '0'",
{ currentLine = "00.4"; line = 0; column = 1 }
)
)
╭─[ 29.54ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure<br/> ("number andThen many1 │
│ whitespace", "Unexpected '0'", { currentLine = │
│ "00.4"<br/> │
│ line = 0<br/> │
│ column = 1 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1 │
│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div │
│ class="dni-plaintext"><pre>Unexpected │
│ '0'</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "0... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 35.67ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:1 Error parsing number andThen many1 whitespace │
│ 00.4 │
│ ^Unexpected '0' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123e4"
|> parserEqual (Success (JNumber 1230000.0))
╭─[ 37.31ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 1230000.0, { lines = [ │
│ |"123e4"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 1230000.0, { lines = [ │
│ |"123e4"|]<br/> position = { line = 1<br/> column = │
│ 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 1230000.0</code></span></summary><div><tab... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 44.77ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 1230000.0 │
│ JNumber │
│ Item: 1230000 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123.4e5"
|> parserEqual (Success (JNumber 12340000.0))
╭─[ 36.56ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 12340000.0, { lines = [ │
│ |"123.4e5"|]<br/> position = { line │
│ = 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 12340000.0, { lines = [ │
│ |"123.4e5"|]<br/> position = { line = 1<br/> column │
│ = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber 12340000.0</code></span></summary>... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 42.71ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 12340000.0 │
│ JNumber │
│ Item: 12340000 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jNumber_ "123.4e-5"
|> parserEqual (Success (JNumber 0.001234))
╭─[ 40.01ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JNumber 0.001234, { lines = [ │
│ |"123.4e-5"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JNumber 0.001234, { lines = [ │
│ |"123.4e-5"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>JNumber │
│ 0.001234</code></span></summary><div><ta... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 47.92ms - stdout ]─────────────────────────────────────────────────────────╮
│ JNumber 0.001234 │
│ JNumber │
│ Item: 0.001234 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jArray │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jArray =
let left = pchar '[[' .>> spaces
let right = pchar ']]' .>> spaces
let comma = pchar ',' .>> spaces
let value = jValue .>> spaces
let values = sepBy value comma
between left values right
|>> JArray
<?> "array"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
jValueRef <|
choice
[[
jNull
jBool
jString
jNumber
jArray
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jArray "[[ 1, 2 ]]"
|> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]]))
╭─[ 99.16ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success (JArray [JNumber 1.0; JNumber 2.0], { │
│ lines = [|"[ 1, 2 ]"|]<br/> │
│ position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JArray [JNumber 1.0; JNumber 2.0], { lines = [ │
│ |"[ 1, 2 ]"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><details class="dni-treeview"><summary><span class="d... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 105.71ms - stdout ]────────────────────────────────────────────────────────╮
│ JArray [JNumber 1.0; JNumber 2.0] │
│ JArray │
│ Item: FSharpList<JValue> │
│ - Item: 1 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 2 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jArray "[[ 1, 2, ]]"
|> parserEqual (
Failure (
"array",
"Unexpected ','",
{ currentLine = "[[ 1, 2, ]]"; line = 0; column = 6 }
)
)
╭─[ 33.16ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("array", "Unexpected │
│ ','", { currentLine = "[ 1, 2, ]"<br/> │
│ line = 0<br/> column = 6 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>array</pre></div></td></tr><tr><td>Item2</td><td> │
│ <div class="dni-plaintext"><pre>Unexpected │
│ ','</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "[ 1, 2, ]"<br/> line = 0<br/> column = 6 │
│ }</code></span></summary><div><table><thead><t... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 38.70ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:6 Error parsing array │
│ [ 1, 2, ] │
│ ^Unexpected ',' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jObject │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let jObject =
let left = spaces >>. pchar '{' .>> spaces
let right = pchar '}' .>> spaces
let colon = pchar ':' .>> spaces
let comma = pchar ',' .>> spaces
let key = quotedString .>> spaces
let value = jValue .>> spaces
let keyValue = (key .>> colon) .>>. value
let keyValues = sepBy keyValue comma
between left keyValues right
|>> Map.ofList
|>> JObject
<?> "object"
── fsharp ──────────────────────────────────────────────────────────────────────
jValueRef <|
choice
[[
jNull
jBool
jString
jNumber
jArray
jObject
]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jObject """{ "a":1, "b" : 2 }"""
|> parserEqual (
Success (
JObject (
Map.ofList [[
"a", JNumber 1.0
"b", JNumber 2.0
]]
)
)
)
╭─[ 189.92ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject (map [("a", │
│ JNumber 1.0); ("b", JNumber 2.0)]),<br/> { lines = [|"{ │
│ "a":1, "b" : 2 }"|]<br/> position = { line = │
│ 1<br/> column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject (map [("a", JNumber 1.0); │
│ ("b", JNumber 2.0)]), { lines = [|"{ "a":1, │
│ "b" : 2 }"|]<br/> position = { line = 1<br/> │
│ column = 0 } │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbod... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 199.05ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: a │
│ Value: JNumber │
│ Item: 1 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: b │
│ Value: JNumber │
│ Item: 2 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run jObject """{ "a":1, "b" : 2, }"""
|> parserEqual (
Failure (
"object",
"Unexpected ','",
{ currentLine = """{ "a":1, "b" : 2, }"""; line = 0; column = 18 }
)
)
╭─[ 41.00ms - return value ]───────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Failure ("object", "Unexpected │
│ ','", { currentLine = "{ "a":1, "b" : │
│ 2, }"<br/> line = 0<br/> │
│ column = 18 │
│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
│ >Item1</td><td><div │
│ class="dni-plaintext"><pre>object</pre></div></td></tr><tr><td>Item2</td><td │
│ ><div class="dni-plaintext"><pre>Unexpected │
│ ','</pre></div></td></tr><tr><td>Item3</td><td><details │
│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ │
│ currentLine = "{ "a":1, "b" : 2, }"<br/> │
│ lin... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 47.83ms - stdout ]─────────────────────────────────────────────────────────╮
│ Line:0 Col:18 Error parsing object │
│ { "a":1, "b" : 2, } │
│ ^Unexpected ',' │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### jValue │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example1 = """{
"name" : "Scott",
"isMale" : true,
"bday" : {"year":2001, "month":12, "day":25 },
"favouriteColors" : [["blue", "green"]],
"emptyArray" : [[]],
"emptyObject" : {}
}"""
run jValue example1
|> parserEqual (
Success (
JObject (
Map.ofList [[
"name", JString "Scott"
"isMale", JBool true
"bday", JObject (
Map.ofList [[
"year", JNumber 2001.0
"month", JNumber 12.0
"day", JNumber 25.0
]]
)
"favouriteColors", JArray [[ JString "blue"; JString "green" ]]
"emptyArray", JArray [[]]
"emptyObject", JObject Map.empty
]]
)
)
)
╭─[ 159.64ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject<br/> (map<br/> │
│ [("bday",<br/> JObject<br/> (map<br/> │
│ [("day", JNumber 25.0); ("month", JNumber 12.0);<br/> │
│ ("year", JNumber 2001.0)])); ("emptyArray", JArray [ │
│ ]);<br/> ("emptyObject", JObject (map []));<br/> │
│ ("favouriteColors", │
│ ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │
│ d>Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject<br/> (map<br/> [ │
│ ("bday",<br/> JObject<br/> (map<br/> [ │
│ (... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 166.25ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject │
│ (map │
│ [("bday", │
│ JObject │
│ (map │
│ [("day", JNumber 25.0); ("month", JNumber 12.0); │
│ ("year", JNumber 2001.0)])); ("emptyArray", JArray []); │
│ ("emptyObject", JObject (map [])); │
│ ("favouriteColors", JArray [JString "blue"; JString "green"]); │
│ ("isMale", JBool true); ("name", JString "Scott")]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: bday │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: day │
│ Value: JNumber 25.0 │
│ - Key: month │
│ Value: JNumber 12.0 │
│ - Key: year │
│ Value: JNumber 2001.0 │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: emptyArray │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: emptyObject │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: favouriteColors │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: blue │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: green │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: isMale │
│ Value: JBool │
│ Item: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: name │
│ Value: JString │
│ Item: Scott │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example2 = """{"widget": {
"debug": "on",
"window": {
"title": "Sample Konfabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}}"""
run jValue example2
|> parserEqual (
Success (
JObject (
Map.ofList [[
"widget", JObject (
Map.ofList [[
"debug", JString "on"
"window", JObject (
Map.ofList [[
"title", JString "Sample Konfabulator Widget"
"name", JString "main_window"
"width", JNumber 500.0
"height", JNumber 500.0
]]
)
"image", JObject (
Map.ofList [[
"src", JString "Images/Sun.png"
"name", JString "sun1"
"hOffset", JNumber 250.0
"vOffset", JNumber 250.0
"alignment", JString "center"
]]
)
"text", JObject (
Map.ofList [[
"data", JString "Click Here"
"size", JNumber 36.0
"style", JString "bold"
"name", JString "text1"
"hOffset", JNumber 250.0
"vOffset", JNumber 100.0
"alignment", JString "center"
"onMouseUp", JString "sun1.opacity =
(sun1.opacity / 100) * 90;"
]]
)
]]
)
]]
)
)
)
╭─[ 342.87ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject<br/> (map<br/> │
│ [("widget",<br/> JObject<br/> (map<br/> │
│ [("debug", JString "on");<br/> │
│ ("image",<br/> JObject<br/> │
│ (map<br/> [("alignment", JString │
│ "center");<br/> │
│ ("hOffset"...</code></span></summary><div><table><thead><tr></tr>< │
│ /thead><tbody><tr><td>Item</td><td><details │
│ class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject<br/> (map<br/> [ │
│ ("widget",<br/> JObject<br/> (map<br/> ... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 350.13ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject │
│ (map │
│ [("widget", │
│ JObject │
│ (map │
│ [("debug", JString "on"); │
│ ("image", │
│ JObject │
│ (map │
│ [("alignment", JString "center"); ("hOffset", JNumber │
│ 250.0); │
│ ("name", JString "sun1"); ("src", JString │
│ "Images/Sun.png"); │
│ ("vOffset", JNumber 250.0)])); │
│ ("text", │
│ JObject │
│ (map │
│ [("alignment", JString "center"); │
│ ("data", JString "Click Here"); ("hOffset", JNumber │
│ 250.0); │
│ ("name", JString "text1"); │
│ ("onMouseUp", │
│ JString "sun1.opacity = (sun1.opacity / 100) * 90;"); │
│ ("size", JNumber 36.0); ("style", JString "bold"); │
│ ("vOffset", JNumber 100.0)])); │
│ ("window", │
│ JObject │
│ (map │
│ [("height", JNumber 500.0); ("name", JString │
│ "main_window"); │
│ ("title", JString "Sample Konfabulator Widget"); │
│ ("width", JNumber 500.0)]))]))]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: widget │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: debug │
│ Value: JString "on" │
│ - Key: image │
│ Value: JObject │
│ (map │
│ [("alignment", JString "center"); ("hOffset", JNumber 250.0); │
│ ("name", JString "sun1"); ("src", JString "Images/Sun.png"); │
│ ("vOffset", JNumber 250.0)]) │
│ - Key: text │
│ Value: JObject │
│ (map │
│ [("alignment", JString "center"); ("data", JString "Click Here"); │
│ ("hOffset", JNumber 250.0); ("name", JString "text1"); │
│ ("onMouseUp", JString "sun1.opacity = (sun1.opacity / 100) * 90;"); │
│ ("size", JNumber 36.0); ("style", JString "bold"); │
│ ("vOffset", JNumber 100.0)]) │
│ - Key: window │
│ Value: JObject │
│ (map │
│ [("height", JNumber 500.0); ("name", JString "main_window"); │
│ ("title", JString "Sample Konfabulator Widget"); ("width", JNumber │
│ 500.0)]) │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let example3 = """{
"string": "Hello, \"World\"!",
"escapedString": "This string contains \\/\\\\\\b\\f\\n\\r\\t\\\"\\'",
"number": 42,
"scientificNumber": 3.14e-10,
"boolean": true,
"nullValue": null,
"array": [[1, 2, 3, 4, 5]],
"unicodeString1": "프리마",
"unicodeString2": "\u0048\u0065\u006C\u006C\u006F,
\u0022\u0057\u006F\u0072\u006C\u0064\u0022!",
"specialCharacters": "!@#$%^&*()",
"emptyArray": [[]],
"emptyObject": {},
"nestedArrays": [[[[1, 2, 3]], [[4, 5, 6]]]],
"object": {
"nestedString": "Nested Value",
"nestedNumber": 3.14,
"nestedBoolean": false,
"nestedNull": null,
"nestedArray": [["a", "b", "c"]],
"nestedObject": {
"nestedProperty": "Nested Object Value"
}
},
"nestedObjects": [[
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30}
]]
}"""
run jValue example3
|> parserEqual (
Success (
JObject (
Map.ofList [[
"string", JString @"Hello, ""World""!"
"escapedString", JString @"This string contains
\/\\\b\f\n\r\t\""\'"
"number", JNumber 42.0
"scientificNumber", JNumber 3.14e-10
"boolean", JBool true
"nullValue", JNull
"array", JArray [[
JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber
5.0
]]
"unicodeString1", JString "프리마"
"unicodeString2", JString @"Hello, ""World""!"
"specialCharacters", JString "!@#$%^&*()"
"emptyArray", JArray [[]]
"emptyObject", JObject Map.empty
"nestedArrays", JArray [[
JArray [[ JNumber 1.0; JNumber 2.0; JNumber 3.0 ]]
JArray [[ JNumber 4.0; JNumber 5.0; JNumber 6.0 ]]
]]
"object", JObject (
Map.ofList [[
"nestedString", JString "Nested Value"
"nestedNumber", JNumber 3.14
"nestedBoolean", JBool false
"nestedNull", JNull
"nestedArray", JArray [[JString "a"; JString "b";
JString "c"]]
"nestedObject", JObject (
Map.ofList [[
"nestedProperty", JString "Nested Object Value"
]]
)
]]
)
"nestedObjects", JArray [[
JObject (Map.ofList [[ "name", JString "Alice"; "age", JNumber
25.0 ]])
JObject (Map.ofList [[ "name", JString "Bob"; "age", JNumber
30.0 ]])
]]
]]
)
)
)
╭─[ 453.97ms - return value ]──────────────────────────────────────────────────╮
│ <details open="open" class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>Success<br/> (JObject<br/> (map<br/> │
│ [("array",<br/> JArray<br/> [JNumber 1.0; │
│ JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 5.0]);<br/> │
│ ("boolean", JBool true); ("emptyArray", JArray []);<br/> │
│ ("emptyObject", JObject (map []));<br/> │
│ ("escapedString", JString "This │
│ s...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< │
│ td>Item</td><td><details class="dni-treeview"><summary><span │
│ class="dni-code-hint"><code>(JObject<br/> (map<br/> [ │
│ ("array",<br/> JArray [JNumber 1.0; JNumber 2.0; JNumber │
│ 3.0; JNumber 4.0; J... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 462.87ms - stdout ]────────────────────────────────────────────────────────╮
│ JObject │
│ (map │
│ [("array", │
│ JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber │
│ 5.0]); │
│ ("boolean", JBool true); ("emptyArray", JArray []); │
│ ("emptyObject", JObject (map [])); │
│ ("escapedString", JString "This string contains \/\\\b\f\n\r\t\"\'"); │
│ ("nestedArrays", │
│ JArray │
│ [JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0]; │
│ JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]); │
│ ("nestedObjects", │
│ JArray │
│ [JObject (map [("age", JNumber 25.0); ("name", JString "Alice")]); │
│ JObject (map [("age", JNumber 30.0); ("name", JString "Bob")])]); │
│ ("nullValue", JNull); ("number", JNumber 42.0); ...]) │
│ JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: array │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: 1 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 2 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 3 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 4 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Item: 5 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: boolean │
│ Value: JBool │
│ Item: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: True │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: emptyArray │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: emptyObject │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: escapedString │
│ Value: JString │
│ Item: This string contains \/\\\b\f\n\r\t\"\' │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: nestedArrays │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: [ JNumber 1.0, JNumber 2.0, JNumber 3.0 ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Item: [ JNumber 4.0, JNumber 5.0, JNumber 6.0 ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: nestedObjects │
│ Value: JArray │
│ Item: FSharpList<JValue> │
│ - Item: [ [age, JNumber 25.0], [name, JString "Alice"] ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Item: [ [age, JNumber 30.0], [name, JString "Bob"] ] │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: True │
│ - Key: nullValue │
│ Value: JValue │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: True │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: number │
│ Value: JNumber │
│ Item: 42 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: object │
│ Value: JObject │
│ Item: FSharpMap<String,JValue> │
│ - Key: nestedArray │
│ Value: JArray [JString "a"; JString "b"; JString "c"] │
│ - Key: nestedBoolean │
│ Value: JBool false │
│ - Key: nestedNull │
│ Value: JNull │
│ - Key: nestedNumber │
│ Value: JNumber 3.14 │
│ - Key: nestedObject │
│ Value: JObject (map [("nestedProperty", JString "Nested │
│ Object Value")]) │
│ - Key: nestedString │
│ Value: JString "Nested Value" │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ - Key: scientificNumber │
│ Value: JNumber │
│ Item: 3.14E-10 │
│ IsJString: False │
│ IsJNumber: True │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: specialCharacters │
│ Value: JString │
│ Item: !@#$%^&*() │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: string │
│ Value: JString │
│ Item: Hello, "World"! │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: unicodeString1 │
│ Value: JString │
│ Item: 프리마 │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ - Key: unicodeString2 │
│ Value: JString │
│ Item: Hello, "World"! │
│ IsJString: True │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: False │
│ IsJArray: False │
│ IsJString: False │
│ IsJNumber: False │
│ IsJBool: False │
│ IsJNull: False │
│ IsJObject: True │
│ IsJArray: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook JsonParser.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 545759 bytes to JsonParser.dib.html
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Parser (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### TextInput │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Position =
{
line : int
column : int
}
── fsharp ──────────────────────────────────────────────────────────────────────
let initialPos = { line = 0; column = 0 }
── fsharp ──────────────────────────────────────────────────────────────────────
let inline incrCol (pos : Position) =
{ pos with column = pos.column + 1 }
── fsharp ──────────────────────────────────────────────────────────────────────
let inline incrLine pos =
{ line = pos.line + 1; column = 0 }
── fsharp ──────────────────────────────────────────────────────────────────────
type InputState =
{
lines : string[[]]
position : Position
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline fromStr str =
{
lines =
if str |> String.IsNullOrEmpty
then [[||]]
else str |> SpiralSm.split_string [[| "\r\n"; "\n" |]]
position = initialPos
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
fromStr "" |> _assertEqual {
lines = [[||]]
position = { line = 0; column = 0 }
}
╭─[ 50.61ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
fromStr "Hello \n World" |> _assertEqual {
lines = [[| "Hello "; " World" |]]
position = { line = 0; column = 0 }
}
╭─[ 18.52ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ Hello , World ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline currentLine inputState =
let linePos = inputState.position.line
if linePos < inputState.lines.Length
then inputState.lines.[[linePos]]
else "end of file"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline nextChar input =
let linePos = input.position.line
let colPos = input.position.column
if linePos >= input.lines.Length
then input, None
else
let currentLine = currentLine input
if colPos < currentLine.Length then
let char = currentLine.[[colPos]]
let newPos = incrCol input.position
let newState = { input with position = newPos }
newState, Some char
else
let char = '\n'
let newPos = incrLine input.position
let newState = { input with position = newPos }
newState, Some char
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let newInput, charOpt = fromStr "Hello World" |> nextChar
newInput |> _assertEqual {
lines = [[| "Hello World" |]]
position = { line = 0; column = 1 }
}
charOpt |> _assertEqual (Some 'H')
╭─[ 40.78ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ Hello World ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ FSharpOption<Char> │
│ Value: H │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let newInput, charOpt = fromStr "Hello\n\nWorld" |> nextChar
newInput |> _assertEqual {
lines = [[| "Hello"; ""; "World" |]]
position = { line = 0; column = 1 }
}
charOpt |> _assertEqual (Some 'H')
╭─[ 31.48ms - stdout ]─────────────────────────────────────────────────────────╮
│ InputState │
│ lines: [ Hello, , World ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ FSharpOption<Char> │
│ Value: H │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ### Parser │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type Input = InputState
type ParserLabel = string
type ParserError = string
type ParserPosition =
{
currentLine : string
line : int
column : int
}
type ParseResult<'a> =
| Success of 'a
| Failure of ParserLabel * ParserError * ParserPosition
type Parser<'a> =
{
label : ParserLabel
parseFn : Input -> ParseResult<'a * Input>
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline printResult result =
match result with
| Success (value, input) ->
printfn $"%A{value}"
| Failure (label, error, parserPos) ->
let errorLine = parserPos.currentLine
let colPos = parserPos.column
let linePos = parserPos.line
let failureCaret = $"{' ' |> string |> String.replicate colPos}^{error}"
printfn $"Line:%i{linePos} Col:%i{colPos} Error parsing
%s{label}\n%s{errorLine}\n%s{failureCaret}"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline runOnInput parser input =
parser.parseFn input
── fsharp ──────────────────────────────────────────────────────────────────────
let inline run parser inputStr =
runOnInput parser (fromStr inputStr)
── fsharp ──────────────────────────────────────────────────────────────────────
let inline parserPositionFromInputState (inputState : Input) =
{
currentLine = currentLine inputState
line = inputState.position.line
column = inputState.position.column
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getLabel parser =
parser.label
── fsharp ──────────────────────────────────────────────────────────────────────
let inline setLabel parser newLabel =
{
label = newLabel
parseFn = fun input ->
match parser.parseFn input with
| Success s -> Success s
| Failure (oldLabel, err, pos) -> Failure (newLabel, err, pos)
}
── fsharp ──────────────────────────────────────────────────────────────────────
let (<?>) = setLabel
── fsharp ──────────────────────────────────────────────────────────────────────
let inline satisfy predicate label =
{
label = label
parseFn = fun input ->
let remainingInput, charOpt = nextChar input
match charOpt with
| None ->
let err = "No more input"
let pos = parserPositionFromInputState input
Failure (label, err, pos)
| Some first ->
if predicate first
then Success (first, remainingInput)
else
let err = $"Unexpected '%c{first}'"
let pos = parserPositionFromInputState input
Failure (label, err, pos)
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
runOnInput parser input |> _assertEqual (
Success (
'H',
{
lines = [[| "Hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 37.37ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - H │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "World"
let parser = satisfy (fun c -> c = 'H') "H"
runOnInput parser input |> _assertEqual (
Failure (
"H",
"Unexpected 'W'",
{
currentLine = "World"
line = 0
column = 0
}
)
)
╭─[ 77.18ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: H │
│ Item2: Unexpected 'W' │
│ Item3: ParserPosition │
│ currentLine: World │
│ line: 0 │
│ column: 0 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline bindP f p =
{
label = "unknown"
parseFn = fun input ->
match runOnInput p input with
| Failure (label, err, pos) -> Failure (label, err, pos)
| Success (value1, remainingInput) -> runOnInput (f value1)
remainingInput
}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>=) p f = bindP f p
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
runOnInput parser2 input |> _assertEqual (
Success (
'e',
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 47.93ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - e │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "World"
let parser = satisfy (fun c -> c = 'W') "W"
let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"
runOnInput parser2 input |> _assertEqual (
Failure (
"e",
"Unexpected 'o'",
{
currentLine = "World"
line = 0
column = 1
}
)
)
╭─[ 39.46ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: e │
│ Item2: Unexpected 'o' │
│ Item3: ParserPosition │
│ currentLine: World │
│ line: 0 │
│ column: 1 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline returnP x =
{
label = $"%A{x}"
parseFn = fun input -> Success (x, input)
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = returnP "Hello"
runOnInput parser input |> _assertEqual (
Success (
"Hello",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 0 }
}
)
)
╭─[ 32.12ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline mapP f =
bindP (f >> returnP)
── fsharp ──────────────────────────────────────────────────────────────────────
let (<!>) = mapP
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (|>>) x f = f <!> x
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = parser |>> string
runOnInput parser2 input |> _assertEqual (
Success (
"H",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 34.02ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - H │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline applyP fP xP =
fP >>=
fun f ->
xP >>=
fun x ->
returnP (f x)
── fsharp ──────────────────────────────────────────────────────────────────────
let (<*>) = applyP
── fsharp ──────────────────────────────────────────────────────────────────────
let inline lift2 f xP yP =
returnP f <*> xP <*> yP
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = lift2 (fun c1 c2 -> string c1 + string c2) parser parser2
runOnInput parser3 input |> _assertEqual (
Success (
"He",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 58.56ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - He │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline andThen p1 p2 =
p1 >>=
fun p1Result ->
p2 >>=
fun p2Result ->
returnP (p1Result, p2Result)
<?> $"{getLabel p1} andThen {getLabel p2}"
── fsharp ──────────────────────────────────────────────────────────────────────
let (.>>.) = andThen
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = parser .>>. parser2
runOnInput parser3 input |> _assertEqual (
Success (
('H', 'e'),
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 54.89ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - ( H, e ) │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline orElse p1 p2 =
{
label = $"{getLabel p1} orElse {getLabel p2}"
parseFn = fun input ->
match runOnInput p1 input with
| Success _ as result -> result
| Failure _ -> runOnInput p2 input
}
── fsharp ──────────────────────────────────────────────────────────────────────
let (<|>) = orElse
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'h') "h"
let parser3 = parser <|> parser2
runOnInput parser3 input |> _assertEqual (
Success (
'h',
{
lines = [[| "hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 36.24ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - h │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline choice listOfParsers =
listOfParsers |> List.reduce (<|>)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'h') "h"
let parser3 = choice [[ parser; parser2 ]]
runOnInput parser3 input |> _assertEqual (
Success (
'h',
{
lines = [[| "hello" |]]
position = { line = 0; column = 1 }
}
)
)
╭─[ 44.41ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - h │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 1 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let rec sequence parserList =
match parserList with
| [[]] -> returnP [[]]
| head :: tail -> (lift2 cons) head (sequence tail)
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = satisfy (fun c -> c = 'e') "e"
let parser3 = sequence [[ parser; parser2 ]]
runOnInput parser3 input |> _assertEqual (
Success (
[[ 'H'; 'e' ]],
{
lines = [[| "Hello" |]]
position = { line = 0; column = 2 }
}
)
)
╭─[ 70.52ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ H, e ] │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 2 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let rec parseZeroOrMore parser input =
match runOnInput parser input with
| Failure (_, _, _) ->
[[]], input
| Success (firstValue, inputAfterFirstParse) ->
let subsequentValues, remainingInput = parseZeroOrMore parser
inputAfterFirstParse
firstValue :: subsequentValues, remainingInput
── fsharp ──────────────────────────────────────────────────────────────────────
let inline many parser =
{
label = $"many {getLabel parser}"
parseFn = fun input -> Success (parseZeroOrMore parser input)
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = many parser
runOnInput parser2 input |> _assertEqual (
Success (
[[]],
{
lines = [[| "hello" |]]
position = { line = 0; column = 0 }
}
)
)
╭─[ 32.50ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ ] │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline many1 p =
p >>=
fun head ->
many p >>=
fun tail ->
returnP (head :: tail)
<?> $"many1 {getLabel p}"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = many1 parser
runOnInput parser2 input |> _assertEqual (
Failure (
"many1 H",
"Unexpected 'h'",
{
currentLine = "hello"
line = 0
column = 0
}
)
)
╭─[ 47.14ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: many1 H │
│ Item2: Unexpected 'h' │
│ Item3: ParserPosition │
│ currentLine: hello │
│ line: 0 │
│ column: 0 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline opt p =
let some = p |>> Some
let none = returnP None
(some <|> none)
<?> $"opt {getLabel p}"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "hello"
let parser = satisfy (fun c -> c = 'H') "H"
let parser2 = opt parser
runOnInput parser2 input |> _assertEqual (
Success (
None,
{
lines = [[| "hello" |]]
position = { line = 0; column = 0 }
}
)
)
╭─[ 45.79ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - <null> │
│ - InputState │
│ lines: [ hello ] │
│ position: Position │
│ line: 0 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (.>>) p1 p2 =
p1 .>>. p2
|> mapP fst
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>.) p1 p2 =
p1 .>>. p2
|> mapP snd
── fsharp ──────────────────────────────────────────────────────────────────────
let inline between p1 p2 p3 =
p1 >>. p2 .>> p3
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "[[Hello]]"
let parser =
between
(satisfy (fun c -> c = '[[') "[[")
(many (satisfy (fun c -> [[ 'a' .. 'z' ]] @ [[ 'A' .. 'Z' ]] |>
List.contains c) "letter"))
(satisfy (fun c -> c = ']]') "]]")
runOnInput parser input |> _assertEqual (
Success (
[[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
{
lines = [[| "[[Hello]]" |]]
position = { line = 0; column = 7 }
}
)
)
╭─[ 151.33ms - stdout ]────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ H, e, l, l, o ] │
│ - InputState │
│ lines: [ [Hello] ] │
│ position: Position │
│ line: 0 │
│ column: 7 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sepBy1 p sep =
let sepThenP = sep >>. p
p .>>. many sepThenP
|>> fun (p, pList) -> p :: pList
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sepBy p sep =
sepBy1 p sep <|> returnP [[]]
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello,World"
let parser = sepBy (many (satisfy (fun c -> c <> ',') "not comma")) (satisfy
(fun c -> c = ',') "comma")
runOnInput parser input |> _assertEqual (
Success (
[[ [[ 'H'; 'e'; 'l'; 'l'; 'o' ]]; [[ 'W'; 'o'; 'r'; 'l'; 'd'; '\n' ]]
]],
{
lines = [[| "Hello,World" |]]
position = { line = 1; column = 0 }
}
)
)
╭─[ 85.20ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - FSharpList<FSharpList<Char>> │
│ [ H, e, l, l, o ] │
│ [ W, o, r, l, d, │
│ ] │
│ - InputState │
│ lines: [ Hello,World ] │
│ position: Position │
│ line: 1 │
│ column: 0 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline pchar charToMatch =
satisfy ((=) charToMatch) $"%c{charToMatch}"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline anyOf listOfChars =
listOfChars
|> List.map pchar
|> choice
<?> $"anyOf %A{listOfChars}"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = anyOf [[ 'H'; 'e'; 'l'; 'o' ]] |> many
runOnInput parser input |> _assertEqual (
Success (
[[ 'H'; 'e'; 'l'; 'l'; 'o' ]],
{
lines = [[| "Hello" |]]
position = { line = 0; column = 5 }
}
)
)
╭─[ 38.45ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - [ H, e, l, l, o ] │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 5 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline charListToStr charList =
charList |> List.toArray |> String
── fsharp ──────────────────────────────────────────────────────────────────────
let inline manyChars cp =
many cp
|>> charListToStr
── fsharp ──────────────────────────────────────────────────────────────────────
let inline manyChars1 cp =
many1 cp
|>> charListToStr
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = manyChars1 (anyOf [[ 'H'; 'e'; 'l'; 'o' ]])
runOnInput parser input |> _assertEqual (
Success (
"Hello",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 5 }
}
)
)
╭─[ 66.63ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 5 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline pstring str =
str
|> List.ofSeq
|> List.map pchar
|> sequence
|> mapP charListToStr
<?> str
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = pstring "Hello"
runOnInput parser input |> _assertEqual (
Success (
"Hello",
{
lines = [[| "Hello" |]]
position = { line = 0; column = 5 }
}
)
)
╭─[ 48.09ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 5 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let whitespaceChar =
satisfy Char.IsWhiteSpace "whitespace"
── fsharp ──────────────────────────────────────────────────────────────────────
let spaces = many whitespaceChar
── fsharp ──────────────────────────────────────────────────────────────────────
let spaces1 = many1 whitespaceChar
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr " Hello"
let parser = spaces1 .>>. pstring "Hello"
runOnInput parser input |> _assertEqual (
Success (
([[ ' '; ' ' ]], "Hello"),
{
lines = [[| " Hello" |]]
position = { line = 0; column = 7 }
}
)
)
╭─[ 58.99ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - - [ , ] │
│ - Hello │
│ - InputState │
│ lines: [ Hello ] │
│ position: Position │
│ line: 0 │
│ column: 7 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let digitChar =
satisfy Char.IsDigit "digit"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let input = fromStr "Hello"
let parser = digitChar
runOnInput parser input |> _assertEqual (
Failure (
"digit",
"Unexpected 'H'",
{
currentLine = "Hello"
line = 0
column = 0
}
)
)
╭─[ 24.31ms - stdout ]─────────────────────────────────────────────────────────╮
│ Failure │
│ Item1: digit │
│ Item2: Unexpected 'H' │
│ Item3: ParserPosition │
│ currentLine: Hello │
│ line: 0 │
│ column: 0 │
│ IsSuccess: False │
│ IsFailure: True │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let pint =
let inline resultToInt (sign, digits) =
let i = int digits
match sign with
| Some ch -> -i
| None -> i
let digits = manyChars1 digitChar
opt (pchar '-') .>>. digits
|> mapP resultToInt
<?> "integer"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run pint "-123"
|> _assertEqual (
Success (
-123,
{
lines = [[| "-123" |]]
position = { line = 0; column = 4 }
}
)
)
╭─[ 35.46ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - -123 │
│ - InputState │
│ lines: [ -123 ] │
│ position: Position │
│ line: 0 │
│ column: 4 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let pfloat =
let inline resultToFloat (((sign, digits1), point), digits2) =
let fl = float $"{digits1}.{digits2}"
match sign with
| Some ch -> -fl
| None -> fl
let digits = manyChars1 digitChar
opt (pchar '-') .>>. digits .>>. pchar '.' .>>. digits
|> mapP resultToFloat
<?> "float"
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
run pfloat "-123.45"
|> _assertEqual (
Success (
-123.45,
{
lines = [[| "-123.45" |]]
position = { line = 0; column = 7 }
}
)
)
╭─[ 35.62ms - stdout ]─────────────────────────────────────────────────────────╮
│ Success │
│ Item: - -123.45 │
│ - InputState │
│ lines: [ -123.45 ] │
│ position: Position │
│ line: 0 │
│ column: 7 │
│ - IsSuccess: True │
│ IsFailure: False │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline createParserForwardedToRef<'a> () =
let mutable parserRef : Parser<'a> =
{
label = "unknown"
parseFn = fun _ -> failwith "unfixed forwarded parser"
}
let wrapperParser =
{ parserRef with
parseFn = fun input -> runOnInput parserRef input
}
wrapperParser, (fun v -> parserRef <- v)
── fsharp ──────────────────────────────────────────────────────────────────────
let inline (>>%) p x =
p
|>> fun _ -> x
[NbConvertApp] Converting notebook Parser.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 415579 bytes to Parser.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Parser.dib
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: JsonParser.dib
00:00:00 #3 [Debug] parseDibCode / output: Fs / file: JsonParser.dib
00:00:00 #3 [Debug] parseDibCode / output: Fs / file: Parser.dib
In [ ]:
{ . "$ScriptDir/../apps/spiral/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Supervisor (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
#r
@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
rp.Json.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Threading.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Threading =
open Common
/// ## newDisposableToken
let inline newDisposableToken (mergeToken:
System.Threading.CancellationToken option) =
let cts = new System.Threading.CancellationTokenSource ()
let cts =
match mergeToken with
| None -> cts
| Some mergeToken ->
System.Threading.CancellationTokenSource.CreateLinkedTokenSource
[[| cts.Token; mergeToken |]]
let disposable = new_disposable cts.Cancel
cts.Token, disposable
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
SpiralSm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
/// ## readAllTextAsync
let inline readAllTextAsync path =
path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
/// ## fileExistsContent
let inline fileExistsContent path content = async {
if path |> System.IO.File.Exists |> not
then return false
else
let! existingContent = path |> readAllTextAsync
return content = existingContent
}
/// ## writeAllTextAsync
let inline writeAllTextAsync path contents =
System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
/// ## write...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open SpiralFileSystem.Operators
open Microsoft.AspNetCore.SignalR.Client
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## sendJson │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sendJson (port : int) (json : string) = async {
let! portOpen = Networking.testPortOpen port
if portOpen then
try
let connection =
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()
do! connection.StartAsync () |> Async.AwaitTask
let! result = connection.InvokeAsync<string>("ClientToServerMsg",
json) |> Async.AwaitTask
do! connection.StopAsync () |> Async.AwaitTask
trace Debug (fun () -> $"sendJson / port: {port} / json: {json} /
result.Length: {result |> Option.ofObj |> Option.map String.length}") getLocals
return Some result
with ex ->
trace Critical (fun () -> $"sendJson / port: {port} / json: {json} /
ex: {ex |> SpiralSm.format_exception}") getLocals
return None
else
trace Debug (fun () -> "sendJson / error: port not open") getLocals
return None
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## sendObj │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline sendObj port obj =
obj
|> System.Text.Json.JsonSerializer.Serialize
|> sendJson port
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## awaitCompiler │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
type VSCPos = {| line : int; character : int |}
type VSCRange = VSCPos * VSCPos
type RString = VSCRange * string
type TracedError = {| trace : string list; message : string |}
type ClientErrorsRes =
| FatalError of string
| TracedError of TracedError
| PackageErrors of {| uri : string; errors : RString list |}
| TokenizerErrors of {| uri : string; errors : RString list |}
| ParserErrors of {| uri : string; errors : RString list |}
| TypeErrors of {| uri : string; errors : RString list |}
── fsharp ──────────────────────────────────────────────────────────────────────
let inline awaitCompiler port cancellationToken = async {
let ct, disposable = cancellationToken |> Threading.newDisposableToken
let! ct = ct |> Async.mergeCancellationTokenWithDefaultAsync
let compiler = MailboxProcessor.Start (fun inbox -> async {
let! availablePort = Networking.getAvailablePort (Some 60) port
if availablePort <> port then
inbox.Post (port, false)
else
let repositoryRoot = SpiralFileSystem.get_source_directory () |>
SpiralFileSystem.find_parent ".paket" false
let compilerPath =
repositoryRoot </> "deps/The-Spiral-Language/The Spiral Language
2/artifacts/bin/The Spiral Language 2/release"
|> System.IO.Path.GetFullPath
let dllPath = compilerPath </> "Spiral.dll"
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = $@"dotnet ""{dllPath}"" --port {availablePort}
--default-int i32 --default-float f64"
CancellationToken = Some ct
WorkingDirectory = None
OnLine = Some <| fun { Line = line } -> async {
if line |> SpiralSm.contains $"Server bound to:
http://localhost:{availablePort}" then
do! Networking.waitForPortAccess (Some 500) true
availablePort |> Async.Ignore
let rec loop retry = async {
let getLocals () = $"port: {availablePort} /
retry: {retry} / {getLocals ()}"
try
let pingObj = {| Ping = true |}
let! pingResult = pingObj |> sendObj
availablePort
trace Verbose (fun () -> $"awaitCompiler
/ Ping / result: {pingResult}") getLocals
with ex ->
trace Verbose (fun () -> $"awaitCompiler
/ Ping / ex: {ex |> SpiralSm.format_exception}") getLocals
do! Async.Sleep 10
do! loop (retry + 1)
}
do! loop 0
inbox.Post (availablePort, true)
}
}
trace Debug (fun () -> $"awaitCompiler / exitCode: {exitCode} /
result: {result}") getLocals
disposable.Dispose ()
}, ct)
let! serverPort, managed = compiler.Receive ()
let connection =
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{serverPort}").Build ()
do! connection.StartAsync () |> Async.AwaitTask
let event = Event<_> ()
let disposable' = connection.On<string> ("ServerToClientMsg", event.Trigger)
let stream =
FSharp.Control.AsyncSeq.unfoldAsync
(fun () -> async {
let! msg = event.Publish |> Async.AwaitEvent
return Some (msg |>
FSharp.Json.Json.deserialize<ClientErrorsRes>, ())
})
()
let disposable' =
new_disposable (fun () ->
async {
disposable'.Dispose ()
do! connection.StopAsync () |> Async.AwaitTask
disposable.Dispose ()
if managed
then do! Networking.waitForPortAccess (Some 2000) false
serverPort |> Async.Ignore
}
|> Async.RunSynchronously
)
return
serverPort,
stream,
ct,
disposable'
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getFileUri │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFileUri (path : string) =
let path =
if Runtime.isWindows () |> not
then path
else $"{path.[[0]] |> System.Char.ToLower}{path.[[1..]]}" |>
SpiralSm.replace "\\" "/"
$"file:///{path |> SpiralSm.trim_start [[| '/' |]]}"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFilePathFromUri uri =
match System.Uri.TryCreate (uri, System.UriKind.Absolute) with
| true, uri -> uri.AbsolutePath |> System.IO.Path.GetFullPath
| _ -> failwith "invalid uri"
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getCompilerPort () =
13805
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## serialize_obj │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let serializeObj obj =
obj
|> FSharp.Json.Json.serialize
|> SpiralSm.replace "\\\\" "\\"
|> SpiralSm.replace "\\r\\n" "\n"
|> SpiralSm.replace "\\n" "\n"
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildFile │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildFile timeout port cancellationToken path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let fileDir = fullPath |> System.IO.Path.GetDirectoryName
let fileName = fullPath |> System.IO.Path.GetFileNameWithoutExtension
let! code = fullPath |> FileSystem.readAllTextAsync
let eventFilter = function
| FileSystem.FileSystemChange.Changed (path, _) when path =
$"{fileName}.fsx" -> true
| _ -> false
let stream, disposable = fileDir |> FileSystem.watchDirectory eventFilter
use _ = disposable
let token, disposable = Threading.newDisposableToken cancellationToken
use _ = disposable
let! serverPort, errors, ct, disposable = awaitCompiler port (Some token)
use _ = disposable
let fsxContentSeq =
stream
|> FSharp.Control.AsyncSeq.choose (function
| _, (FileSystem.FileSystemChange.Changed (path, Some content) as
event)
when event |> eventFilter
->
Some content
| _ -> None
)
|> FSharp.Control.AsyncSeq.map (fun content ->
Some (content |> SpiralSm.replace "\r\n" "\n"), None
)
let inline printErrorData (data : {| uri : string; errors : RString list |})
=
let fileName = data.uri |> System.IO.Path.GetFileName
let errors =
data.errors
|> List.map snd
|> SpiralSm.concat "\n"
$"{fileName}:\n{errors}"
let errorsSeq =
errors
|> FSharp.Control.AsyncSeq.choose (fun error ->
match error with
| FatalError message ->
Some (message, error)
| TracedError data ->
Some (data.message, error)
| PackageErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| TokenizerErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| ParserErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| TypeErrors data when data.errors |> List.isEmpty |> not ->
Some (data |> printErrorData, error)
| _ -> None
)
|> FSharp.Control.AsyncSeq.map (fun (message, error) ->
None, Some (message, error)
)
let timerSeq =
1000
|> FSharp.Control.AsyncSeq.intervalMs
|> FSharp.Control.AsyncSeq.map (fun _ -> None, None)
let outputSeq =
[[ fsxContentSeq; errorsSeq; timerSeq ]]
|> FSharp.Control.AsyncSeq.mergeAll
let! outputChild =
((None, [[]], 0), outputSeq)
||> FSharp.Control.AsyncSeq.scan (
fun (fsxContentResult, errors, typeErrorCount) (fsxContent, error)
->
match fsxContent, error with
| Some fsxContent, None -> Some fsxContent, errors,
typeErrorCount
| None, Some (_, FatalError "File main has a type error
somewhere in its path.") ->
fsxContentResult, errors, typeErrorCount + 1
| None, Some error -> fsxContentResult, error :: errors,
typeErrorCount
| None, None when typeErrorCount >= 1 ->
fsxContentResult, errors, typeErrorCount + 1
| _ -> fsxContentResult, errors, typeErrorCount
)
|> FSharp.Control.AsyncSeq.takeWhileInclusive (fun (fsxContent, errors,
typeErrorCount) ->
trace Debug (fun () -> $"buildFile / takeWhileInclusive /
fsxContent: {fsxContent |> Option.defaultValue System.String.Empty |>
SpiralSm.ellipsis 750} / errors: {errors |> serializeObj} / typeErrorCount:
{typeErrorCount}") getLocals
#if INTERACTIVE
let errorWait = 2
#else
let errorWait = 10
#endif
match fsxContent, errors with
| None, [[]] when typeErrorCount > errorWait -> false
| None, [[]] -> true
| _ -> false
)
|> FSharp.Control.AsyncSeq.tryLast
|> Async.withCancellationToken ct
|> Async.catch
|> Async.runWithTimeoutAsync timeout
|> Async.StartChild
let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText =
code |} |}
let! _fileOpenResult = fileOpenObj |> sendObj serverPort
do! Async.Sleep 60
let buildFileObj = {| BuildFile = {| uri = fullPath |> getFileUri; backend =
"Fsharp" |} |}
let! _buildFileResult = buildFileObj |> sendObj serverPort
return!
outputChild
|> Async.map (function
| Some (Ok (Some (message, errors, _))) ->
message, errors |> List.distinct |> List.rev
| Some (Error ex) ->
trace Critical (fun () -> $"buildFile / error: {ex |>
serializeObj}") getLocals
None, [[]]
| _ -> None, [[]]
)
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## persistCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline persistCode code = async {
let tempDir = SpiralFileSystem.create_temp_directory ()
let mainPath = tempDir </> "main.spi"
do! code |> FileSystem.writeAllTextAsync mainPath
let repositoryRoot = SpiralFileSystem.get_source_directory () |>
SpiralFileSystem.find_parent ".paket" false
let spiprojPath = tempDir </> "package.spiproj"
let spiprojCode =
$"""packageDir: {repositoryRoot </> "lib"}
packages:
|core-
spiral-
modules:
main
"""
do! spiprojCode |> FileSystem.writeAllTextAsync spiprojPath
let disposable = new_disposable (fun () ->
()
// tempDir |> FileSystem.deleteDirectoryAsync |> Async.Ignore |>
Async.RunSynchronously
)
return mainPath, disposable
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## buildCode │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline buildCode timeout cancellationToken code = async {
let! mainPath, disposable = persistCode code
use _ = disposable
let port = getCompilerPort ()
return! mainPath |> buildFile timeout port cancellationToken
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let buildCode timeout cancellationToken code = buildCode timeout
cancellationToken code
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl app () =
console.write_line "text"
1i32
inl main () =
app
|> dyn
|> ignore
"""
|> buildCode 15000 None
|> Async.runWithTimeout 15000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
Some """let rec closure0 () () : int32 =
let v0 : string = "text"
System.Console.WriteLine v0
1
let v0 : (unit -> int32) = closure0()
()
""",
[[]]
)
)
╭─[ 7.66s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:00 #2 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:01 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:01 #4 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:01 #5 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:02 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:02 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:02 #10 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:02 #11 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:02 #12 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:02 #13 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl app () =\n console.write_line │
│ \u0022text\u0022\n 1i32\n\ninl main () =\n app\n |\u003E dyn\n │
│ |\u003E │
│ ignore\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/2024 │
│ 0404-1241-0849-4926-4a96b299898d/main.spi"}} / result.Length: │
│ 00:00:02 #14 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-0849-4926-4a96b299898d/main.spi"}} / │
│ result.Length: │
│ 00:00:03 #15 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:03 #16 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-0849-4926-4a96b │
│ 299898d\main.spi │
│ 00:00:04 #17 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:05 #18 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec │
│ closure0 () () : int32 = │
│ let v0 : string = "text" │
│ System.Console.WriteLine v0 │
│ 1 │
│ let v0 : (unit -> int32) = closure0() │
│ () │
│ / errors: [] / typeErrorCount: 0 │
│ 00:00:07 #19 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:07 #20 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - FSharpOption<String> │
│ Value: let rec closure0 () () : int32 = │
│ let v0 : string = "text" │
│ System.Console.WriteLine v0 │
│ 1 │
│ let v0 : (unit -> int32) = closure0() │
│ () │
│ │
│ - [ ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> _assertEqual None
╭─[ 12.17s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:07 #21 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:07 #22 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:07 #23 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:07 #24 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:08 #25 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:08 #26 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:08 #27 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:08 #28 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:08 #29 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:08 #30 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:08 #31 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:08 #32 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:08 #33 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"","uri":"file:///c:/Users/i574n/AppData/Local/Temp/! │
│ dotnet-repl/20240404-1241-1613-1351-16efbf34c6c9/main.spi"}} / │
│ result.Length: │
│ 00:00:08 #34 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-1613-1351-16efbf34c6c9/main.spi"}} / │
│ result.Length: │
│ 00:00:08 #35 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-1613-1351-16efb │
│ f34c6c9\main.spi │
│ 00:00:09 #36 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:10 #37 [Verbose] > Cannot find `main` in file main. │
│ 00:00:10 #38 [Verbose] > Build skipped for │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-1613-1351-16efb │
│ f34c6c9\main.spi │
│ 00:00:10 #39 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:11 #40 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:12 #41 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:13 #42 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:14 #43 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:15 #44 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:16 #45 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:17 #46 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:19 #47 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:19 #48 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ 00:00:19 #49 [Debug] runWithTimeoutChildAsync / timeout: 10000 │
│ <null> │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"inl app () =
0i32
inl a = 1
inl main () =
app
|> dyn
|> ignore
"
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "main.spi:
Global inl/let statements should all return functions known at parse time." ]]
)
)
╭─[ 3.66s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:19 #50 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:19 #51 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:20 #52 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:20 #53 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:20 #54 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:20 #55 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:20 #56 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:20 #57 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:20 #58 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:20 #59 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:20 #60 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:20 #61 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:20 #62 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl app () =\n 0i32\n\ninl a = 1\n\ninl main () │
│ =\n app\n |\u003E dyn\n |\u003E │
│ ignore\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/2024 │
│ 0404-1241-2838-3816-3dec9ff88189/main.spi"}} / result.Length: │
│ 00:00:20 #63 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-2838-3816-3dec9ff88189/main.spi"}} / │
│ result.Length: │
│ 00:00:21 #64 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-2838-3816-3dec9 │
│ ff88189\main.spi │
│ 00:00:21 #65 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "main.spi: │
│ Global inl/let statements should all return functions known at parse time.", │
│ { │
│ "ParserErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 0, │
│ "line": 3 │
│ }, │
│ { │
│ "character": 9, │
│ "line": 3 │
│ } │
│ ], │
│ "Global inl/let statements should all return functions known at │
│ parse time." │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-2838-3 │
│ 816-3dec9ff88189\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:21 #66 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:23 #67 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:23 #68 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Global inl/let statements should all return functions known at parse time. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () =
1i32 / 0i32
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "An attempt to divide by zero has been detected at compile time." ]]
)
)
╭─[ 5.04s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:23 #69 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:23 #70 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:23 #71 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:23 #72 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:24 #73 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:24 #74 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:24 #75 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:24 #76 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:24 #77 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:24 #78 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:24 #79 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:24 #80 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:24 #81 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () =\n 1i32 / │
│ 0i32\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/202404 │
│ 04-1241-3212-1222-1ca431de31d1/main.spi"}} / result.Length: │
│ 00:00:24 #82 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-3212-1222-1ca431de31d1/main.spi"}} / │
│ result.Length: │
│ 00:00:24 #83 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3212-1222-1ca43 │
│ 1de31d1\main.spi │
│ 00:00:25 #84 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:26 #85 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [ │
│ [ │
│ "An attempt to divide by zero has been detected at compile time.", │
│ { │
│ "TracedError": { │
│ "message": "An attempt to divide by zero has been detected at │
│ compile time.", │
│ "trace": [ │
│ "Error trace on line: 1, column: 10 in module: │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3212-1222-1ca43 │
│ 1de31d1\main.spi. │
│ inl main () = │
│ ^ │
│ ", │
│ "Error trace on line: 2, column: 5 in module: │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3212-1222-1ca43 │
│ 1de31d1\main.spi. │
│ 1i32 / 0i32 │
│ ^ │
│ " │
│ ] │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:26 #86 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:28 #87 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:28 #88 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ An attempt to divide by zero has been detected at compile time. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () =
1 + ""
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[
"main.spi:
Constraint satisfaction error.
Got: string
Fails to satisfy: number"
]]
)
)
╭─[ 4.67s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:28 #89 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:28 #90 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:28 #91 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:28 #92 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:29 #93 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:29 #94 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:29 #95 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:29 #96 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:29 #97 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:29 #98 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:29 #99 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:29 #100 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:29 #101 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () =\n 1 \u002B │
│ \u0022\u0022\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-rep │
│ l/20240404-1241-3721-2134-2c933b0a2122/main.spi"}} / result.Length: │
│ 00:00:29 #102 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-3721-2134-2c933b0a2122/main.spi"}} / │
│ result.Length: │
│ 00:00:29 #103 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3721-2134-2c933 │
│ b0a2122\main.spi │
│ 00:00:30 #104 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:31 #105 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 1 │
│ 00:00:31 #106 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [ │
│ [ │
│ "main.spi: │
│ Constraint satisfaction error. │
│ Got: string │
│ Fails to satisfy: number", │
│ { │
│ "TypeErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 8, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 10, │
│ "line": 1 │
│ } │
│ ], │
│ "Constraint satisfaction error. │
│ Got: string │
│ Fails to satisfy: number" │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3721-2 │
│ 134-2c933b0a2122\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 1 │
│ 00:00:31 #107 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:33 #108 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:33 #109 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Constraint satisfaction error. │
│ Got: string │
│ Fails to satisfy: number ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () =
x + y
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[
"main.spi:
Unbound variable: x.
Unbound variable: y."
]]
)
)
╭─[ 4.74s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:33 #110 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:33 #111 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:33 #112 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:33 #113 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:33 #114 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:34 #115 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:34 #116 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:34 #117 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:34 #118 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:34 #119 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:34 #120 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:34 #121 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:34 #122 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () =\n x \u002B │
│ y\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │
│ 1241-4194-9445-9475e6227c17/main.spi"}} / result.Length: │
│ 00:00:34 #123 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-4194-9445-9475e6227c17/main.spi"}} / │
│ result.Length: │
│ 00:00:34 #124 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4194-9445-9475e │
│ 6227c17\main.spi │
│ 00:00:35 #125 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:35 #126 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 1 │
│ 00:00:35 #127 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [ │
│ [ │
│ "main.spi: │
│ Unbound variable: x. │
│ Unbound variable: y.", │
│ { │
│ "TypeErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 4, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 5, │
│ "line": 1 │
│ } │
│ ], │
│ "Unbound variable: x." │
│ ], │
│ [ │
│ [ │
│ { │
│ "character": 8, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 9, │
│ "line": 1 │
│ } │
│ ], │
│ "Unbound variable: y." │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4194-9 │
│ 445-9475e6227c17\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 1 │
│ 00:00:35 #128 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:37 #129 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:37 #130 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Unbound variable: x. │
│ Unbound variable: y. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""union a =
| B
| c
inl main () =
()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "main.spi:
Expected: uppercase variable" ]]
)
)
╭─[ 3.67s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:38 #131 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:38 #132 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:38 #133 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:38 #134 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:38 #135 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:38 #136 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:38 #137 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:39 #138 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:39 #139 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:39 #140 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:39 #141 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:39 #142 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:39 #143 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"union a =\n | B\n | c\n\ninl main () =\n │
│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │
│ -1241-4674-7432-7536ec0609cb/main.spi"}} / result.Length: │
│ 00:00:39 #144 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-4674-7432-7536ec0609cb/main.spi"}} / │
│ result.Length: │
│ 00:00:39 #145 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4674-7432-7536e │
│ c0609cb\main.spi │
│ 00:00:39 #146 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [ │
│ [ │
│ "main.spi: │
│ Expected: uppercase variable", │
│ { │
│ "ParserErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 6, │
│ "line": 2 │
│ }, │
│ { │
│ "character": 7, │
│ "line": 2 │
│ } │
│ ], │
│ "Expected: uppercase variable" │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4674-7 │
│ 432-7536ec0609cb\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:39 #147 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:41 #148 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:41 #149 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Expected: uppercase variable ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
/// abc
inl main () =
()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "main.spi:
Expected: whitespace" ]]
)
)
╭─[ 3.50s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:41 #150 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:41 #151 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:42 #152 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:42 #153 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:42 #154 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:42 #155 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:42 #156 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:42 #157 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:42 #158 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:42 #159 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:42 #160 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:42 #161 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:42 #162 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\n/// abc\ninl main () =\n │
│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │
│ -1241-5046-4619-49323e169b62/main.spi"}} / result.Length: │
│ 00:00:42 #163 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-5046-4619-49323e169b62/main.spi"}} / │
│ result.Length: │
│ 00:00:43 #164 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [ │
│ [ │
│ "main.spi: │
│ Expected: whitespace", │
│ { │
│ "TokenizerErrors": { │
│ "errors": [ │
│ [ │
│ [ │
│ { │
│ "character": 2, │
│ "line": 1 │
│ }, │
│ { │
│ "character": 3, │
│ "line": 1 │
│ } │
│ ], │
│ "Expected: whitespace" │
│ ] │
│ ], │
│ "uri": │
│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5046-4 │
│ 619-49323e169b62\main.spi" │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:43 #165 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:45 #166 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:45 #167 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ main.spi: │
│ Expected: whitespace ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl main () =
real
inl real_unbox forall a. (obj : a) : a =
typecase obj with
| _ => obj
real_unbox ()
()
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "Cannot apply a forall with a term." ]]
)
)
╭─[ 4.98s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:45 #168 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:45 #169 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:45 #170 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:45 #171 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:46 #172 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:46 #173 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:46 #174 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:46 #175 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:46 #176 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:46 #177 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:46 #178 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:46 #179 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:46 #180 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl main () =\n real\n inl real_unbox │
│ forall a. (obj : a) : a =\n typecase obj with\n | _ │
│ =\u003E obj\n real_unbox ()\n │
│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │
│ -1241-5402-0291-001a2cfb580d/main.spi"}} / result.Length: │
│ 00:00:46 #181 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-5402-0291-001a2cfb580d/main.spi"}} / │
│ result.Length: │
│ 00:00:46 #182 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │
│ cfb580d\main.spi │
│ 00:00:47 #183 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:48 #184 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [ │
│ [ │
│ "Cannot apply a forall with a term.", │
│ { │
│ "TracedError": { │
│ "message": "Cannot apply a forall with a term.", │
│ "trace": [ │
│ "Error trace on line: 2, column: 10 in module: │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │
│ cfb580d\main.spi. │
│ inl main () = │
│ ^ │
│ ", │
│ "Error trace on line: 4, column: 9 in module: │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │
│ cfb580d\main.spi. │
│ inl real_unbox forall a. (obj : a) : a = │
│ ^ │
│ ", │
│ "Error trace on line: 7, column: 9 in module: │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │
│ cfb580d\main.spi. │
│ real_unbox () │
│ ^ │
│ " │
│ ] │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:48 #185 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:50 #186 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:50 #187 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ Cannot apply a forall with a term. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl main () =
real
inl real_unbox forall a. (obj : a) : a =
typecase obj with
| _ => obj
real_unbox `i32 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
None,
[[ "The main function should not have a forall." ]]
)
)
╭─[ 4.72s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:50 #188 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:50 #189 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:50 #190 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:50 #191 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:51 #192 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:51 #193 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:51 #194 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:51 #195 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:51 #196 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:51 #197 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:51 #198 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:51 #199 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:51 #200 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl main () =\n real\n inl real_unbox │
│ forall a. (obj : a) : a =\n typecase obj with\n | _ │
│ =\u003E obj\n real_unbox \u0060i32 │
│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │
│ 1241-5908-0829-04040aaf91ef/main.spi"}} / result.Length: │
│ 00:00:51 #201 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1241-5908-0829-04040aaf91ef/main.spi"}} / │
│ result.Length: │
│ 00:00:51 #202 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5908-0829-04040 │
│ aaf91ef\main.spi │
│ 00:00:52 #203 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:52 #204 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [ │
│ [ │
│ "The main function should not have a forall.", │
│ { │
│ "TracedError": { │
│ "message": "The main function should not have a forall.", │
│ "trace": [] │
│ } │
│ } │
│ ] │
│ ] / typeErrorCount: 0 │
│ 00:00:52 #205 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:55 #206 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:00:55 #207 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - <null> │
│ - [ The main function should not have a forall. ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl init_series start end inc =
inl total : f64 = conv ((end - start) / inc) + 1
listm.init total (conv >> (*) inc >> (+) start) : list f64
type integration = (f64 -> f64) -> f64 -> f64 -> f64
inl integral dt : integration =
fun f a b =>
init_series (a + dt / 2) (b - dt / 2) dt
|> listm.map (f >> (*) dt)
|> listm.fold (+) 0
inl main () =
integral 0.1 (fun x => x ** 2) 0 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
Some "0.3325000000000001\n",
[[]]
)
)
╭─[ 5.10s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:55 #208 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:55 #209 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:00:55 #210 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:00:55 #211 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:55 #212 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:56 #213 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:56 #214 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:56 #215 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:56 #216 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:56 #217 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:56 #218 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:56 #219 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:56 #220 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : │
│ f64 = conv ((end - start) / inc) \u002B 1\n listm.init total (conv │
│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype │
│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl │
│ integral dt : integration =\n fun f a b =\u003E\n init_series (a │
│ \u002B dt / 2) (b - dt / 2) dt\n |\u003E listm.map (f \u003E\u003E │
│ (*) dt)\n |\u003E listm.fold (\u002B) 0\n\ninl main () =\n │
│ integral 0.1 (fun x =\u003E x ** 2) 0 │
│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │
│ 1242-0384-8460-8b2856dbe6b9/main.spi"}} / result.Length: │
│ 00:00:56 #221 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1242-0384-8460-8b2856dbe6b9/main.spi"}} / │
│ result.Length: │
│ 00:00:56 #222 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1242-0384-8460-8b285 │
│ 6dbe6b9\main.spi │
│ 00:00:57 #223 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:00:58 #224 [Debug] buildFile / takeWhileInclusive / fsxContent: │
│ 0.3325000000000001 │
│ / errors: [] / typeErrorCount: 0 │
│ 00:00:58 #225 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:01:00 #226 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:01:00 #227 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - FSharpOption<String> │
│ Value: 0.3325000000000001 │
│ │
│ - [ ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""
inl init_series start end inc =
inl total : f64 = conv ((end - start) / inc) + 1
listm.init total (conv >> (*) inc >> (+) start) : list f64
type integration = (f64 -> f64) -> f64 -> f64 -> f64
inl integral dt : integration =
fun f a b =>
init_series (a + dt / 2) (b - dt / 2) dt
|> listm.map (f >> (*) dt)
|> listm.fold (+) 0
inl main () =
integral 0.01 (fun x => x ** 2) 0 1
"""
|> buildCode 10000 None
|> Async.runWithTimeout 10000
|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)
|> _assertEqual (
Some (
Some "0.33332500000000004\n",
[[]]
)
)
// |> _assertEqual None
// |> fun x -> printfn $"{x.ToDisplayString ()}"
╭─[ 5.02s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:01:00 #228 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:01:00 #229 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:buildCode@3-910> } │
│ 00:01:00 #230 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:01:00 #231 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:01:00 #232 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:01:01 #233 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:01:01 #234 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:01:01 #235 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:01:01 #236 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:01:01 #237 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:01:01 #238 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:01:01 #239 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:01:01 #240 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : │
│ f64 = conv ((end - start) / inc) \u002B 1\n listm.init total (conv │
│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype │
│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl │
│ integral dt : integration =\n fun f a b =\u003E\n init_series (a │
│ \u002B dt / 2) (b - dt / 2) dt\n |\u003E listm.map (f \u003E\u003E │
│ (*) dt)\n |\u003E listm.fold (\u002B) 0\n\ninl main () =\n │
│ integral 0.01 (fun x =\u003E x ** 2) 0 │
│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │
│ 1242-0899-9998-982c42c5def4/main.spi"}} / result.Length: │
│ 00:01:01 #241 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │
│ /Temp/!dotnet-repl/20240404-1242-0899-9998-982c42c5def4/main.spi"}} / │
│ result.Length: │
│ 00:01:01 #242 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1242-0899-9998-982c4 │
│ 2c5def4\main.spi │
│ 00:01:02 #243 [Debug] buildFile / takeWhileInclusive / fsxContent: / │
│ errors: [] / typeErrorCount: 0 │
│ 00:01:03 #244 [Debug] buildFile / takeWhileInclusive / fsxContent: │
│ 0.33332500000000004 │
│ / errors: [] / typeErrorCount: 0 │
│ 00:01:03 #245 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:01:05 #246 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ 00:01:05 #247 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>> │
│ Value: - FSharpOption<String> │
│ Value: 0.33332500000000004 │
│ │
│ - [ ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getFileTokenRange │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getFileTokenRange port cancellationToken path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let! code = fullPath |> FileSystem.readAllTextAsync
let lines = code |> SpiralSm.split "\n"
let token, disposable = Threading.newDisposableToken cancellationToken
use _ = disposable
let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token)
use _ = disposable
let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText =
code |} |}
let! _fileOpenResult = fileOpenObj |> sendObj serverPort
let fileTokenRangeObj =
{|
FileTokenRange =
{|
uri = fullPath |> getFileUri
range =
[[|
{| line = 0; character = 0 |}
{| line = lines.Length - 1; character =
lines.[[lines.Length - 1]].Length |}
|]]
|}
|}
let! fileTokenRangeResult =
fileTokenRangeObj
|> sendObj serverPort
|> Async.withCancellationToken ct
return fileTokenRangeResult |> Option.map FSharp.Json.Json.deserialize<int
array>
}
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## getCodeTokenRange │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let inline getCodeTokenRange cancellationToken code = async {
let! mainPath, disposable = persistCode code
use _ = disposable
let port = getCompilerPort ()
return! mainPath |> getFileTokenRange port cancellationToken
}
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () = ()"""
|> getCodeTokenRange None
|> Async.runWithTimeout 10000
|> Option.flatten
|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1;
8; 0; 0; 2; 1; 4; 0; 0;
2; 1; 8; 0; 0; 1; 1; 8; 0 |]])
╭─[ 6.91s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:01:14 #248 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:01:14 #249 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:it@4-239> } │
│ 00:01:15 #250 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:01:15 #251 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:01:15 #252 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:01:15 #253 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:01:15 #254 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:01:15 #255 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:01:15 #256 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:01:15 #257 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:01:15 #258 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () = │
│ ()","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404-1 │
│ 242-2343-4356-4eb707a19d95/main.spi"}} / result.Length: │
│ 00:01:16 #259 [Debug] sendJson / port: 13805 / json: │
│ {"FileTokenRange":{"range":[ │
│ {"character":0,"line":0},{"character":16,"line":0}],"uri":"file:///c:/Users/ │
│ i574n/AppData/Local/Temp/!dotnet-repl/20240404-1242-2343-4356-4eb707a19d95/m │
│ ain.spi"}} / result.Length: Some(213) │
│ 00:01:18 #260 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ FSharpOption<Int32[]> │
│ Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0, │
│ 0, 2, 1, 4, 0, 0, 2, 1, 8, 0, 0, 1, 1, 8, 0 ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
"""inl main () = 1i32"""
|> getCodeTokenRange None
|> Async.runWithTimeout 10000
|> Option.flatten
|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1;
8; 0; 0; 2; 1; 4; 0; 0;
2; 1; 3; 0; 0; 1; 3; 12; 0 |]])
╭─[ 7.06s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:01:22 #261 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:01:22 #262 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:it@4-610> } │
│ 00:01:22 #263 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral │
│ 00:01:22 #264 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:01:22 #265 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:01:22 #266 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:01:22 #267 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:01:23 #268 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:01:23 #269 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:01:23 #270 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:01:23 #271 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"inl main () = │
│ 1i32","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │
│ -1242-3060-6006-65d5ec4e7126/main.spi"}} / result.Length: │
│ 00:01:23 #272 [Debug] sendJson / port: 13805 / json: │
│ {"FileTokenRange":{"range":[ │
│ {"character":0,"line":0},{"character":18,"line":0}],"uri":"file:///c:/Users/ │
│ i574n/AppData/Local/Temp/!dotnet-repl/20240404-1242-3060-6006-65d5ec4e7126/m │
│ ain.spi"}} / result.Length: Some(214) │
│ 00:01:25 #273 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ FSharpOption<Int32[]> │
│ Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0, │
│ 0, 2, 1, 4, 0, 0, 2, 1, 3, 0, 0, 1, 3, 12, 0 ] │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| Build_File of string * string
| File_Token_Range of string * string
| Execute_Command of string
| [[<Argu.ArguAttributes.Unique>]] Timeout of int
| [[<Argu.ArguAttributes.Unique>]] Port of int
| [[<Argu.ArguAttributes.Unique>]] Parallel
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| Build_File _ -> nameof Build_File
| File_Token_Range _ -> nameof File_Token_Range
| Execute_Command _ -> nameof Execute_Command
| Timeout _ -> nameof Timeout
| Port _ -> nameof Port
| Parallel -> nameof Parallel
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 127.50ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] [--build-file <string> <string>] │
│ [--file-token-range <string> <string>] │
│ [--execute-command <string>] [--timeout <int>] [--port │
│ <int>] │
│ [--parallel] │
│ │
│ OPTIONS: │
│ │
│ --build-file <string> <string> │
│ Build_File │
│ --file-token-range <string> <string> │
│ File_Token_Range │
│ --execute-command <string> │
│ Execute_Command │
│ --timeout <int> Timeout │
│ --port <int> Port │
│ --parallel Parallel │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let buildFileActions =
argsMap
|> Map.tryFind (nameof Arguments.Build_File)
|> Option.defaultValue [[]]
|> List.choose (function
| Arguments.Build_File (inputPath, outputPath) -> Some (inputPath,
outputPath)
| _ -> None
)
let fileTokenRangeActions =
argsMap
|> Map.tryFind (nameof Arguments.File_Token_Range)
|> Option.defaultValue [[]]
|> List.choose (function
| Arguments.File_Token_Range (inputPath, outputPath) -> Some
(inputPath, outputPath)
| _ -> None
)
let executeCommandActions =
argsMap
|> Map.tryFind (nameof Arguments.Execute_Command)
|> Option.defaultValue [[]]
|> List.choose (function
| Arguments.Execute_Command command -> Some command
| _ -> None
)
let timeout =
match argsMap |> Map.tryFind (nameof Arguments.Timeout) with
| Some [[ Arguments.Timeout timeout ]] -> timeout
| _ -> 60000 * 60
let port =
match argsMap |> Map.tryFind (nameof Arguments.Port) with
| Some [[ Arguments.Port port ]] -> Some port
| _ -> None
let isParallel = argsMap |> Map.containsKey (nameof Arguments.Parallel)
async {
let port = port |> Option.defaultWith getCompilerPort
let localToken, disposable = Threading.newDisposableToken None
let! serverPort, _errors, compilerToken, disposable = awaitCompiler port
(Some localToken)
use _ = disposable
let buildFileAsync =
buildFileActions
|> List.map (fun (inputPath, outputPath) -> async {
let! outputCode, errors = inputPath |> buildFile timeout
serverPort None
errors
|> List.map snd
|> List.iter (fun error ->
trace Critical (fun () -> $"main / error: {error |>
serializeObj}") getLocals
)
match outputCode with
| Some outputCode ->
do! outputCode |> FileSystem.writeAllTextAsync outputPath
return 0
| None ->
return 1
})
let fileTokenRangeAsync =
fileTokenRangeActions
|> List.map (fun (inputPath, outputPath) -> async {
let! tokenRange = inputPath |> getFileTokenRange serverPort None
match tokenRange with
| Some tokenRange ->
do! tokenRange |> FSharp.Json.Json.serialize |>
FileSystem.writeAllTextAsync outputPath
return 0
| None ->
return 1
})
let executeCommandAsync =
executeCommandActions
|> List.map (fun command -> async {
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = command
CancellationToken = Some compilerToken
WorkingDirectory = None
OnLine = None
}
trace Debug (fun () -> $"main / executeCommand / exitCode:
{exitCode}") getLocals
return exitCode
})
return!
[[| buildFileAsync; fileTokenRangeAsync; executeCommandAsync |]]
|> Seq.collect id
|> fun x ->
if isParallel
then Async.Parallel (x, float System.Environment.ProcessorCount
* 0.75 |> ceil |> int)
else Async.Sequential x
|> Async.map Array.sum
}
|> Async.runWithTimeout timeout
|> Option.defaultValue 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 67.72ms - return value ]───────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook Supervisor.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 453426 bytes to Supervisor.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Supervisor.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Supervisor.dib
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: Supervisor / code.Length: 19825
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime linux-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\Supervisor"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:00 #5 [Verbose] > Determining projects to restore...
00:00:01 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj (in 429 ms).
00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj]
00:00:15 #8 [Verbose] > Supervisor -> C:\home\git\polyglot\target\polyglot\builder\Supervisor\bin\Release\net9.0\linux-x64\Supervisor.dll
00:00:17 #9 [Verbose] > Supervisor -> C:\home\git\polyglot\apps\spiral\dist\
00:00:17 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 715
00:00:17 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime win-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\Supervisor"
CancellationToken = None
OnLine = None }
00:00:17 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:18 #13 [Verbose] > Determining projects to restore...
00:00:19 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj (in 544 ms).
00:00:19 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj]
00:00:36 #16 [Verbose] > Supervisor -> C:\home\git\polyglot\target\polyglot\builder\Supervisor\bin\Release\net9.0\win-x64\Supervisor.dll
00:00:46 #17 [Verbose] > Supervisor -> C:\home\git\polyglot\apps\spiral\dist\
00:00:46 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 713
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # Eval (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com
mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli
ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0
/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"
#r
@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/
7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"
#r
@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
rp.Json.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Threading.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
#!import ../../apps/builder/Builder.fs
#!import ../../apps/spiral/Supervisor.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Threading =
open Common
/// ## newDisposableToken
let inline newDisposableToken (mergeToken:
System.Threading.CancellationToken option) =
let cts = new System.Threading.CancellationTokenSource ()
let cts =
match mergeToken with
| None -> cts
| Some mergeToken ->
System.Threading.CancellationTokenSource.CreateLinkedTokenSource
[[| cts.Token; mergeToken |]]
let disposable = new_disposable cts.Cancel
cts.Token, disposable
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
SpiralSm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
/// ## readAllTextAsync
let inline readAllTextAsync path =
path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
/// ## fileExistsContent
let inline fileExistsContent path content = async {
if path |> System.IO.File.Exists |> not
then return false
else
let! existingContent = path |> readAllTextAsync
return content = existingContent
}
/// ## writeAllTextAsync
let inline writeAllTextAsync path contents =
System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
/// ## write...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Builder =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
/// ## buildProject
let inline buildProject runtime outputDir path = async {
let fullPath = path |> System.IO.Path.GetFullPath
let fileDir = fullPath |> System.IO.Path.GetDirectoryName
let extension = fullPath |> System.IO.Path.GetExtension
let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"
trace Debug (fun () -> "buildProject") getLocals
match extension with
| ".fsproj" -> ()
| _ -> failwith "Invalid project file"
let runtimes =
runtime
|> Option.map List.singleton
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Supervisor =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
open Microsoft.AspNetCore.SignalR.Client
/// ## sendJson
let inline sendJson (port : int) (json : string) = async {
let! portOpen = Networking.testPortOpen port
if portOpen then
try
let connection =
HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()
do! connection.StartAsync () |> Async.AwaitTask
let! result =
connection.InvokeAsync<string>("ClientToServerMsg", json) |> Async.AwaitTask
do! connection.StopAsync () |> Async.AwaitTask
trace Debug (fun () -...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open Common
open SpiralFileSystem.Operators
── fsharp ──────────────────────────────────────────────────────────────────────
open System
open System.Collections.Generic
open System.IO
open System.Text
open System.Threading
── fsharp ──────────────────────────────────────────────────────────────────────
let inline mapErrors (severity, errors, lastTopLevelIndex) allCode =
let allCodeLineLength =
allCode |> SpiralSm.split "\n" |> Array.length
errors
|> List.map (fun (_, error) ->
match error with
| Supervisor.FatalError message ->
(
severity, message, 0, ("", (0, 0), (0, 0))
)
|> List.singleton
| Supervisor.TracedError data ->
data.trace
|> List.truncate 5
|> List.append [[ data.message ]]
|> List.map (fun message ->
(
severity, message, 0, ("", (0, 0), (0, 0))
)
)
| Supervisor.PackageErrors data
| Supervisor.TokenizerErrors data
| Supervisor.ParserErrors data
| Supervisor.TypeErrors data ->
data.errors
|> List.filter (fun ((rangeStart, _), _) ->
trace Debug (fun () -> $"Eval.mapErrors / rangeStart.line:
{rangeStart.line} / lastTopLevelIndex: {lastTopLevelIndex} / allCodeLineLength:
{allCodeLineLength} / filtered: {rangeStart.line > allCodeLineLength}")
getLocals
rangeStart.line > allCodeLineLength
)
|> List.map (fun ((rangeStart, rangeEnd), message) ->
(
severity,
message,
0,
(
(data.uri |> System.IO.Path.GetFileName),
(
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeStart.line - allCodeLineLength - 2
| _ -> rangeStart.line - allCodeLineLength),
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeStart.character - 4
| _ -> rangeStart.character)
),
(
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeEnd.line - allCodeLineLength - 2
| _ -> rangeEnd.line - allCodeLineLength),
(match lastTopLevelIndex with
| Some i when rangeStart.line >= i +
allCodeLineLength + 3 ->
rangeEnd.character - 4
| _ -> rangeEnd.character)
)
)
)
)
)
|> List.collect id
|> List.toArray
── fsharp ──────────────────────────────────────────────────────────────────────
let repositoryRoot = SpiralFileSystem.get_source_directory () |>
SpiralFileSystem.find_parent ".paket" false
let targetDir = repositoryRoot </> "target/polyglot/spiral_eval"
let maxTermCountPath = targetDir </> "max_term_count.txt"
let mutable allCode = ""
── fsharp ──────────────────────────────────────────────────────────────────────
let logFile filePath (text : string) =
if traceLevel = TraceLevel.Verbose then
let logDir = targetDir </> "log_kernel"
Directory.CreateDirectory logDir |> ignore
let dateTimeStr = DateTime.Now |> SpiralDateTime.format_iso8601
let logFile = logDir </> filePath
File.AppendAllText (logFile, $"{dateTimeStr} Eval /
{text}{Environment.NewLine}") |> ignore
── fsharp ──────────────────────────────────────────────────────────────────────
let log (text : string) =
try
text |> logFile "log.txt"
with ex ->
trace Debug (fun () -> $"SpiralScriptHelpers.log / ex: {ex |>
SpiralSm.format_exception}") getLocals
let dateTimeStr = DateTime.Now |> SpiralDateTime.format_iso8601
text |> logFile $"log_{dateTimeStr}_{Random().Next()}.txt"
── fsharp ──────────────────────────────────────────────────────────────────────
let assemblyName = Reflection.Assembly.GetEntryAssembly().GetName().Name
let inline startTokenRangeWatcher () =
if [[ "dotnet-repl" ]] |> List.contains assemblyName |> not then
let tmpSpiralDir = repositoryRoot </> "target/polyglot/spiral_eval"
let tmpCodeDir = tmpSpiralDir </> "code"
let tmpTokensDir = tmpSpiralDir </> "tokens"
[[ tmpSpiralDir; tmpCodeDir; tmpTokensDir ]]
|> List.iter (fun dir -> if Directory.Exists dir |> not then
Directory.CreateDirectory dir |> ignore)
let stream, disposable = FileSystem.watchDirectory (fun _ -> false)
tmpCodeDir
try
let port = Supervisor.getCompilerPort () + 2
let existingFilesChild =
tmpCodeDir
|> System.IO.Directory.GetFiles
|> Array.map (fun codePath -> async {
try
let tokensPath = tmpTokensDir </> (codePath |>
System.IO.Path.GetFileName)
if File.Exists tokensPath |> not then
let! tokens = codePath |>
Supervisor.getFileTokenRange port None
match tokens with
| Some tokens ->
do!
tokens
|> FSharp.Json.Json.serialize
|> FileSystem.writeAllTextAsync tokensPath
| None ->
log $"Eval.watchDirectory / GetFiles / tokens:
None / {getLocals ()}"
with ex ->
log $"Eval.watchDirectory / GetFiles / ex: {ex |>
SpiralSm.format_exception} / {getLocals ()}"
})
|> Async.Sequential
|> Async.Ignore
let streamAsyncChild =
stream
|> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event)
-> async {
try
let getLocals () = $"ticks: {ticks} / event: {event} /
{getLocals ()}"
match event with
| FileSystem.FileSystemChange.Changed (path, _) ->
let codePath = tmpCodeDir </> path
do!
codePath
|> FileSystem.waitForFileAccess (Some (
System.IO.FileAccess.Read,
System.IO.FileShare.Read
))
|> Async.runWithTimeoutAsync 1000
|> Async.Ignore
let! tokens = codePath |>
Supervisor.getFileTokenRange port None
match tokens with
| Some tokens ->
do!
tokens
|> FSharp.Json.Json.serialize
|> FileSystem.writeAllTextAsync
(tmpTokensDir </> path)
| None ->
log $"Eval.watchDirectory / iterAsyncParallel /
tokens: None / {getLocals ()}"
| _ -> ()
with ex ->
log $"Eval.watchDirectory / iterAsyncParallel / ex: {ex
|> SpiralSm.format_exception} / {getLocals ()}"
})
async {
do! Async.Sleep 3000
existingFilesChild |> Async.StartImmediate
streamAsyncChild |> Async.Start
}
|> Async.Start
with ex ->
log $"Eval / ex: {ex |> SpiralSm.format_exception}"
disposable
else new_disposable (fun () -> ())
── fsharp ──────────────────────────────────────────────────────────────────────
let inline eval
(fsi_eval:
string
-> System.Threading.CancellationToken
-> Choice<'a,Exception> * (TraceLevel * string * int * (string * (int *
int) * (int * int))) array)
(cancellationToken: Option<System.Threading.CancellationToken>)
(code: string)
=
log $"Eval / code: %A{code}"
let rawCellCode =
if code |> SpiralSm.trim <> "// // trace"
then code |> SpiralSm.replace "\r\n" "\n"
else
if traceLevel = Info
then traceLevel <- Verbose
else traceLevel <- Info
traceDump <- traceLevel = Verbose
"inl main () = ()"
let lines = rawCellCode |> SpiralSm.split "\n"
if lines |> Array.exists (fun line -> line |> SpiralSm.starts_with "#r " &&
line |> SpiralSm.ends_with "\"") then
let cancellationToken = defaultArg cancellationToken
System.Threading.CancellationToken.None
let ch, errors = fsi_eval code cancellationToken
match ch with
| Choice1Of2 v -> Ok(v), errors
| Choice2Of2 ex -> Error(ex), errors
else
try
let lastBlock =
lines
|> Array.tryFindBack (fun line ->
line |> String.length > 0
&& line.[[0]] <> ' '
)
let hasMain =
lastBlock
|> Option.exists (fun line ->
line |> SpiralSm.starts_with "inl main "
|| line |> SpiralSm.starts_with "let main "
)
let cellCode, lastTopLevelIndex =
if hasMain
then rawCellCode, None
else
let lastTopLevelIndex, _ =
(lines |> Array.indexed, (None, false))
||> Array.foldBack (fun (i, line) (lastTopLevelIndex,
finished) ->
trace Debug (fun () -> $"i: {i} / line: '{line}' /
lastTopLevelIndex: {lastTopLevelIndex} / finished: {finished}") getLocals
match line with
| _ when finished -> lastTopLevelIndex, true
| "" -> lastTopLevelIndex, false
| line when
line |> SpiralSm.starts_with " "
|| line |> SpiralSm.starts_with "// " ->
lastTopLevelIndex, false
| line when
line |> SpiralSm.starts_with "open "
|| line |> SpiralSm.starts_with "prototype "
|| line |> SpiralSm.starts_with "instance "
|| line |> SpiralSm.starts_with "type "
|| line |> SpiralSm.starts_with "union "
|| line |> SpiralSm.starts_with "nominal " ->
lastTopLevelIndex, true
| line when
line |> SpiralSm.starts_with "inl "
|| line |> SpiralSm.starts_with "let " ->
let m =
System.Text.RegularExpressions.Regex.Match (
line,
@"^(inl|let) +([[~\(\w]][[\w\d']]*(?:|
*[[~\w]][[\w\d']]*\)|, *[[~\w]][[\w\d']]*)) +[[:=]]"
)
trace Debug (fun () -> $"m: '{m}' /
m.Groups.Count: {m.Groups.Count}") getLocals
if m.Groups.Count = 3
then Some i, false
else lastTopLevelIndex, true
| _ -> Some i, false
)
let code =
match lastTopLevelIndex with
| Some lastTopLevelIndex ->
lines
|> Array.mapi (fun i line ->
match i with
| i when i < lastTopLevelIndex -> line
| i when i = lastTopLevelIndex -> $"\nlet main
() =\n {line}"
| _ when line |> SpiralSm.trim = "" -> ""
| _ -> $" {line}"
)
|> SpiralSm.concat "\n"
| None -> $"{rawCellCode}\n\ninl main () = ()\n"
code, lastTopLevelIndex
let newAllCode = $"{allCode}\n\n{cellCode}"
let rustArgs =
lines
|> Array.tryPick (fun line ->
if line |> SpiralSm.starts_with "// // rust="
then line |> SpiralSm.split "=" |> Array.tryItem 1
else None
)
let timeout =
lines
|> Array.tryPick (fun line ->
if line |> SpiralSm.starts_with "// // timeout="
then line |> SpiralSm.split "=" |> Array.tryItem 1 |>
Option.map int
else None
)
|> Option.defaultValue (60000 * 60)
let printCode =
lines
|> Array.tryPick (fun line ->
if line |> SpiralSm.starts_with "// // print_code="
then line |> SpiralSm.split "=" |> Array.tryItem 1 |>
Option.map ((=) "true")
else None
)
|> Option.defaultValue true
let maxTermCount =
lines
|> Array.tryPick (fun line ->
if line |> SpiralSm.starts_with "// // max_term_count="
then line |> SpiralSm.split "=" |> Array.tryItem 1 |>
Option.map int
else None
)
async {
try
let! mainPath, disposable = newAllCode |>
Supervisor.persistCode
use _ = disposable
match maxTermCount with
| Some maxTermCount ->
do! maxTermCount |> string |>
FileSystem.writeAllTextAsync maxTermCountPath
| None -> ()
let port = Supervisor.getCompilerPort ()
let! codeChoice =
mainPath
|> Supervisor.buildFile timeout port cancellationToken
|> Async.catch
|> Async.runWithTimeoutAsync timeout
match maxTermCount with
| Some _ -> do! FileSystem.deleteFileAsync maxTermCountPath
|> Async.Ignore
| None -> ()
let code =
match codeChoice with
| Some (Ok code) -> Some code
| Some (Error ex) ->
log $"Eval / errors: {ex |>
SpiralSm.format_exception}"
None
| _ -> None
match code with
| Some (Some code, spiralErrors) ->
let spiralErrors =
mapErrors (Warning, spiralErrors, lastTopLevelIndex)
allCode
let inline _trace (fn : unit -> string) =
if traceLevel = Info
then fn () |> System.Console.WriteLine
else trace Info (fun () ->
$"SpiralScriptHelpers.Eval / {fn ()}") getLocals
if printCode
then _trace (fun () -> if rustArgs |> Option.isSome then
$"\n.fsx:\n{code}" else code)
let! rustResult =
if rustArgs |> Option.isNone || lastTopLevelIndex =
None
then None |> Async.init
else
async {
// let hash = $"repl_{code |>
Crypto.hashText}"
let hash = $"spiral_eval"
let! fsprojPath = code |>
Builder.persistCodeProject [["Fable.Core"]] [[]] hash
let projectDir = fsprojPath |>
Path.GetDirectoryName
let outDir = projectDir </> $"target/{hash}"
let libLinkTargetPath = projectDir </>
"target/fable-library-rust"
let libLinkPath = outDir </>
$"fable_modules/fable-library-rust"
if Directory.Exists libLinkTargetPath |> not
then libLinkTargetPath |>
Directory.CreateDirectory |> ignore
libLinkPath |> Path.GetDirectoryName |>
Directory.CreateDirectory |> ignore
let libLinkPathInfo = DirectoryInfo
libLinkPath
if libLinkPathInfo.Exists &&
libLinkPathInfo.LinkTarget = null then
Directory.Delete (libLinkPath, true)
if libLinkPath |> Directory.Exists |> not
then
Directory.CreateSymbolicLink
(libLinkPath, libLinkTargetPath)
|> ignore
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = $@"dotnet fable
{fsprojPath} --optimize --lang rs --extension .rs --outDir {outDir}"
CancellationToken =
cancellationToken
WorkingDirectory = None
OnLine = None
}
if exitCode <> 0
then return Some (Error result)
else
let rsPath = outDir </> $"{hash}.rs"
let! rsCode = rsPath |>
FileSystem.readAllTextAsync
let mainCode = "pub fn main() ->
Result<(), String> { Ok(()) }"
let cached = rsCode |> SpiralSm.contains
mainCode
let rsCode =
if cached
then rsCode
else rsCode |> SpiralSm.replace
"),);" "));"
if printCode
then _trace (fun () ->
$"\n.rs:\n{rsCode}")
if not cached
then do!
$"{rsCode}\n\n{mainCode}\n"
|> FileSystem.writeAllTextAsync
rsPath
let cargoTomlPath = outDir </>
$"Cargo.toml"
let cargoTomlContent = $"""[[package]]
name = "{hash}"
version = "0.0.1"
edition = "2021"
[[workspace]]
[[dependencies]]
fable_library_rust = {{ path = "fable_modules/fable-library-rust", optional =
true, default-features = false }}
clap = {{}}
num-complex = {{}}
pyo3 = "~0.21.0-beta.0"
[[features]]
default = [["fable_library_rust/default",
"fable_library_rust/static_do_bindings"]]
[[[[bin]]]]
name = "{hash}"
path = "{hash}.rs"
"""
do! cargoTomlContent |>
FileSystem.writeAllTextExists cargoTomlPath
let! exitCode, result =
Runtime.executeWithOptionsAsync
{
Command = $@"cargo run
--release --manifest-path {cargoTomlPath}"
CancellationToken =
cancellationToken
WorkingDirectory = None
OnLine = None
}
if exitCode = 0 then
try
let result =
result
|> SpiralSm.split "\n"
|> Array.skipWhile (fun line
->
line |>
SpiralSm.contains @"[[optimized]] target" |> not
)
|> Array.skip 2
|> SpiralSm.concat "\n"
return Some (Ok result)
with ex ->
return $"ex:
{ex}\nresult:\n{result}" |> Error |> Some
else
return Some (Error result)
}
let cancellationToken = defaultArg cancellationToken
System.Threading.CancellationToken.None
let fsxResult =
if rustArgs |> Option.isSome
then None
else
try
let ch, errors = fsi_eval code
cancellationToken
let errors =
errors
|> Array.map (fun (e1, e2, e3, _) ->
(e1, e2, e3, ("", (0, 0), (0, 0)))
)
Some (ch, errors)
with ex ->
trace Critical (fun () ->
$"SpiralScriptHelpers.Eval / ex: {ex |> SpiralSm.format_exception}") getLocals
None
match fsxResult, rustResult with
| Some (ch, errors), None ->
let errors = errors |> Array.append spiralErrors
match ch with
| Choice1Of2 v ->
allCode <- newAllCode
return Ok(v), errors
| Choice2Of2 ex -> return Error ex, errors
| _, Some result ->
let result, errors =
match result with
| Ok result -> result, [[||]]
| Error error ->
"",
[[|
(
TraceLevel.Critical, error, 0, ("",
(0, 0), (0, 0))
)
|]]
let header = if printCode then ".rs output:\n" else
""
let ch, errors2 = fsi_eval
$"\"\"\"{header}{result}\n\"\"\"" cancellationToken
let errors =
errors
|> Array.append spiralErrors
|> Array.append errors2
match ch with
| Choice1Of2 v ->
allCode <- newAllCode
return Ok(v), errors
| Choice2Of2 ex ->
return Error ex, errors
| _ ->
let ch, errors = fsi_eval "()" cancellationToken
match ch with
| Choice1Of2 v ->
allCode <- newAllCode
return Ok(v), errors
| Choice2Of2 ex ->
return Error ex, errors
| Some (None, errors) when errors |> List.isEmpty |> not ->
return errors.[[0]] |> fst |> Exception |> Error,
mapErrors (TraceLevel.Critical, errors,
lastTopLevelIndex) allCode
| _ ->
return Error (Exception "Spiral error or timeout"),
[[|
(
TraceLevel.Critical, "Diag: Spiral error or
timeout", 0, ("", (0, 0), (0, 0))
)
|]]
with ex ->
log $"Eval / ex: {ex |> SpiralSm.format_exception}"
return Error (Exception $"Spiral error or timeout (4_) / ex:
{ex |> SpiralSm.format_exception}"),
[[|
(
TraceLevel.Critical, $"Diag: Spiral error or timeout
(4) / ex: {ex |> SpiralSm.format_exception}", 0, ("", (0, 0), (0, 0))
)
|]]
}
|> Async.runWithTimeoutStrict timeout
|> Option.defaultValue (
Error (Exception "Spiral error or timeout (2)"),
[[|
(
TraceLevel.Critical, "Diag: Spiral error or timeout
(2)", 0, ("", (0, 0), (0, 0))
)
|]]
)
with ex ->
log $"Eval / ex: {ex |> SpiralSm.format_exception}"
Error (Exception $"Spiral error or timeout (3) / ex: {ex |>
SpiralSm.format_exception}"),
[[|
(
TraceLevel.Critical, $"Diag: Spiral error or timeout (3) /
ex: {ex |> SpiralSm.format_exception}", 0, ("", (0, 0), (0, 0))
)
|]]
[NbConvertApp] Converting notebook Eval.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 370069 bytes to Eval.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Eval.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Eval.dib
In [ ]:
{ . "$ScriptDir/../lib/fsharp/build.ps1" -sequential 1 } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command =
"dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = Some <fun:main@438-47> }
00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\fsharp
00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release
00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:00 #6 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805
00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Async.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:03 #12 [Verbose] >
00:00:03 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:03 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:03 #15 [Verbose] > │ # Async (Polyglot) │
00:00:03 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:03 #17 [Verbose] >
00:00:03 #18 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:03 #19 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:03 #20 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:03 #21 [Verbose] >
00:00:03 #22 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:03 #23 [Verbose] > #r
00:00:03 #24 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:03 #25 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:03 #26 [Verbose] > #r
00:00:03 #27 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:03 #28 [Verbose] > otNet.Interactive.dll"
00:00:03 #29 [Verbose] > #r
00:00:03 #30 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:03 #31 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:03 #32 [Verbose] > #r
00:00:03 #33 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:03 #34 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:03 #35 [Verbose] > open System
00:00:03 #36 [Verbose] > open System.IO
00:00:03 #37 [Verbose] > open System.Text
00:00:03 #38 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:07 #39 [Verbose] >
00:00:07 #40 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #41 [Verbose] > #r
00:00:07 #42 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:07 #43 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:07 #44 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:07 #45 [Verbose] > #r
00:00:07 #46 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:07 #47 [Verbose] > otNet.Interactive.dll"
00:00:07 #48 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:07 #49 [Verbose] >
00:00:07 #50 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #51 [Verbose] > //// test
00:00:07 #52 [Verbose] >
00:00:07 #53 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:07 #54 [Verbose] >
00:00:07 #55 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #56 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:07 #57 [Verbose] >
00:00:07 #58 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:07 #59 [Verbose] > //// test
00:00:07 #60 [Verbose] >
00:00:07 #61 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:07 #62 [Verbose] > member _.Text =
00:00:07 #63 [Verbose] > ex.ToString()
00:00:07 #64 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:07 #65 [Verbose] > .Replace("36m", "</span>")
00:00:07 #66 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:07 #67 [Verbose] > .Replace("\n", "<br/>\n")
00:00:07 #68 [Verbose] >
00:00:07 #69 [Verbose] >
00:00:07 #70 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:07 #71 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:08 #72 [Verbose] >
00:00:08 #73 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:08 #74 [Verbose] > //// test
00:00:08 #75 [Verbose] >
00:00:08 #76 [Verbose] > let inline __expect fn log expected actual =
00:00:08 #77 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:08 #78 [Verbose] > try
00:00:08 #79 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:08 #80 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:08 #81 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:08 #82 [Verbose] > failwith (ex.GetType().FullName)
00:00:08 #83 [Verbose] >
00:00:08 #84 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:08 #85 [Verbose] > expected actual
00:00:08 #86 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:08 #87 [Verbose] >
00:00:08 #88 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:08 #89 [Verbose] > expected actual
00:00:08 #90 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:08 #91 [Verbose] >
00:00:08 #92 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:08 #93 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:09 #94 [Verbose] >
00:00:09 #95 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:09 #96 [Verbose] > //// test
00:00:09 #97 [Verbose] >
00:00:09 #98 [Verbose] > let inline __isBetween log a b actual =
00:00:09 #99 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:09 #100 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:09 #101 [Verbose] > __isLessThanOrEqual log b actual
00:00:09 #102 [Verbose] > __expect isBetween log (a, b) actual
00:00:09 #103 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:09 #104 [Verbose] >
00:00:09 #105 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:09 #106 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:09 #107 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:09 #108 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:09 #109 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:09 #110 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:09 #111 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:00:09 #112 [Verbose] >
00:00:09 #113 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:09 #114 [Verbose] > type [[<Struct>]] US0 =
00:00:09 #115 [Verbose] > | US0_0
00:00:09 #116 [Verbose] > | US0_1
00:00:09 #117 [Verbose] > | US0_2
00:00:09 #118 [Verbose] > | US0_3
00:00:09 #119 [Verbose] > and [[<Struct>]] US1 =
00:00:09 #120 [Verbose] > | US1_0 of f0_0 : US0
00:00:09 #121 [Verbose] > | US1_1 of f1_0 : US0
00:00:09 #122 [Verbose] > and [[<Struct>]] US2 =
00:00:09 #123 [Verbose] > | US2_0
00:00:09 #124 [Verbose] > | US2_1
00:00:09 #125 [Verbose] > and [[<Struct>]] US3 =
00:00:09 #126 [Verbose] > | US3_0 of f0_0 : US2
00:00:09 #127 [Verbose] > | US3_1
00:00:09 #128 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:09 #129 [Verbose] > let v1 : System.IDisposable option = None
00:00:09 #130 [Verbose] > let mutable _v1 = v1
00:00:09 #131 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:00:09 #132 [Verbose] > let v2 : US0 = US0_0
00:00:09 #133 [Verbose] > let v3 : US1 = US1_0(v2)
00:00:09 #134 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:00:09 #135 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:00:09 #136 [Verbose] > v5
00:00:09 #137 [Verbose] > #endif
00:00:09 #138 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:09 #139 [Verbose] > let v6 : US0 = US0_2
00:00:09 #140 [Verbose] > let v7 : US1 = US1_0(v6)
00:00:09 #141 [Verbose] > let v8 : string = $"new_dispos...
00:00:09 #142 [Verbose] >
00:00:09 #143 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:09 #144 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:09 #145 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:09 #146 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:09 #147 [Verbose] > let v2 : bool = v1.Contains v0
00:00:09 #148 [Verbose] > v2
00:00:09 #149 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:09 #150 [Verbose] > closure1(v0)
00:00:09 #151 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:09 #152 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:09 #153 [Verbose] > v2
00:00:09 #154 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:09 #155 [Verbose] > closure3(v0)
00:00:09 #156 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:09 #157 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:09 #158 [Verbose] > v3
00:00:09 #159 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:09 #160 [Verbose] > closure6(v0, v1)
00:00:09 #161 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:09 #162 [Verbose] > closure5(v0)
00:00:09 #163 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:09 #164 [Verbose] > let v2 : stri...
00:00:10 #165 [Verbose] >
00:00:10 #166 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:10 #167 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:10 #168 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:10 #169 [Verbose] > let v3 : string = v2 v0
00:00:10 #170 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:10 #171 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:10 #172 [Verbose] > v5
00:00:10 #173 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:10 #174 [Verbose] > closure1(v0)
00:00:10 #175 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:10 #176 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:10 #177 [Verbose] > v3
00:00:10 #178 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:10 #179 [Verbose] > closure5(v0, v1)
00:00:10 #180 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:10 #181 [Verbose] > closure4(v0)
00:00:10 #182 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:10 #183 [Verbose] > closure3()
00:00:10 #184 [Verbose] > and closure2 (...
00:00:10 #185 [Verbose] >
00:00:10 #186 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:10 #187 [Verbose] > #if FABLE_COMPILER // file_system.types
00:00:10 #188 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:00:10 #189 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:00:10 #190 [Verbose] > base64_DecodeError = class end
00:00:10 #191 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:00:10 #192 [Verbose] > = class end
00:00:10 #193 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:00:10 #194 [Verbose] > = class end
00:00:10 #195 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:00:10 #196 [Verbose] > serde_json_Error = class end
00:00:10 #197 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:00:10 #198 [Verbose] > serde_json_Value = class end
00:00:10 #199 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:00:10 #200 [Verbose] > serde_wasm_bindgen_Error = class end
00:00:10 #201 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:00:10 #202 [Verbose] >
00:00:10 #203 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:10 #204 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:00:10 #205 [Verbose] > module SpiralDateTime =
00:00:10 #206 [Verbose] > let format x =
00:00:10 #207 [Verbose] > #if !INTERACTIVE
00:00:10 #208 [Verbose] > Date_time.format x
00:00:10 #209 [Verbose] > #else
00:00:10 #210 [Verbose] > format x
00:00:10 #211 [Verbose] > #endif
00:00:10 #212 [Verbose] >
00:00:10 #213 [Verbose] > let format_iso8601 x =
00:00:10 #214 [Verbose] > #if !INTERACTIVE
00:00:10 #215 [Verbose] > Date_time.format_iso8601 x
00:00:10 #216 [Verbose] > #else
00:00:10 #217 [Verbose] > format_iso8601 x
00:00:10 #218 [Verbose] > #endif
00:00:10 #219 [Verbose] >
00:00:10 #220 [Verbose] > let new_guid_from_date_time x =
00:00:10 #221 [Verbose] > #if !INTERACTIVE
00:00:10 #222 [Verbose] > Date_time.new_guid_from_date_time x
00:00:10 #223 [Verbose] > #else
00:00:10 #224 [Verbose] > new_guid_from_date_time x
00:00:10 #225 [Verbose] > #endif
00:00:10 #226 [Verbose] >
00:00:10 #227 [Verbose] > #endif
00:00:10 #228 [Verbose] >
00:00:10 #229 [Verbose] > module SpiralSm =
00:00:10 #230 [Verbose] > let concat x =
00:00:10 #231 [Verbose] > #if !INTERACTIVE
00:00:10 #232 [Verbose] > Sm.concat x
00:00:10 #233 [Verbose] > #else
00:00:10 #234 [Verbose] > concat x
00:00:10 #235 [Verbose] > #endif
00:00:10 #236 [Verbose] >
00:00:10 #237 [Verbose] > let contains x =
00:00:10 #238 [Verbose] > #if !INTERACTIVE
00:00:10 #239 [Verbose] > Sm.contains x
00:00:10 #240 [Verbose] > #else
00:00:10 #241 [Verbose] > contains x
00:00:10 #242 [Verbose] > #endif
00:00:10 #243 [Verbose] >
00:00:10 #244 [Verbose] > let ellipsis x =
00:00:10 #245 [Verbose] > #if !INTERACTIVE
00:00:10 #246 [Verbose] > Sm.ellipsis x
00:00:10 #247 [Verbose] > #else
00:00:10 #248 [Verbose] > ellipsis x
00:00:10 #249 [Verbose] > #endif
00:00:10 #250 [Verbose] >
00:00:10 #251 [Verbose] > let ellipsis_end x =
00:00:10 #252 [Verbose] > #if...
00:00:10 #253 [Verbose] >
00:00:10 #254 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:10 #255 [Verbose] > #if !INTERACTIVE
00:00:10 #256 [Verbose] > namespace Polyglot
00:00:10 #257 [Verbose] > #endif
00:00:10 #258 [Verbose] >
00:00:10 #259 [Verbose] > module Common =
00:00:10 #260 [Verbose] >
00:00:10 #261 [Verbose] > #if !INTERACTIVE
00:00:10 #262 [Verbose] > open Lib
00:00:10 #263 [Verbose] > #endif
00:00:10 #264 [Verbose] >
00:00:10 #265 [Verbose] > let nl = System.Environment.NewLine
00:00:10 #266 [Verbose] > let q = @""""
00:00:10 #267 [Verbose] >
00:00:10 #268 [Verbose] > let inline cons head tail = head :: tail
00:00:10 #269 [Verbose] >
00:00:10 #270 [Verbose] > /// ## memoize
00:00:10 #271 [Verbose] >
00:00:10 #272 [Verbose] > let inline memoize fn =
00:00:10 #273 [Verbose] > let result = lazy fn ()
00:00:10 #274 [Verbose] > fun () -> result.Value
00:00:10 #275 [Verbose] >
00:00:10 #276 [Verbose] > /// ## TraceLevel
00:00:10 #277 [Verbose] >
00:00:10 #278 [Verbose] > type TraceLevel =
00:00:10 #279 [Verbose] > | Verbose
00:00:10 #280 [Verbose] > | Debug
00:00:10 #281 [Verbose] > | Info
00:00:10 #282 [Verbose] > | Warning
00:00:10 #283 [Verbose] > | Critical
00:00:10 #284 [Verbose] >
00:00:10 #285 [Verbose] > let inline getLocals () = ""
00:00:10 #286 [Verbose] >
00:00:10 #287 [Verbose] > let mutable traceEnabled = true
00:00:10 #288 [Verbose] > let mutable traceCount = 0
00:00:10 #289 [Verbose] > let mutable traceLevel = Verbose
00:00:10 #290 [Verbose] > let mutable traceDump = false
00:00:10 #291 [Verbose] >
00:00:10 #292 [Verbose] > let testTraceLevel level =
00:00:10 #293 [Verbose] > traceEnabled && level >= traceLevel
00:00:10 #294 [Verbose] >
00:00:10 #295 [Verbose] > /// ## traceRaw
00:00:10 #296 [Verbose] >
00:00:10 #297 [Verbose] > let rec traceRaw level fn =
00:00:10 #298 [Verbose] > ...
00:00:10 #299 [Verbose] >
00:00:10 #300 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #301 [Verbose] > #if !INTERACTIVE
00:00:10 #302 [Verbose] > open Lib
00:00:10 #303 [Verbose] > #endif
00:00:10 #304 [Verbose] >
00:00:10 #305 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #306 [Verbose] > open Common
00:00:10 #307 [Verbose] >
00:00:10 #308 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #309 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #310 [Verbose] > │ ## choice │
00:00:10 #311 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #312 [Verbose] >
00:00:10 #313 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #314 [Verbose] > let inline choice asyncs = async {
00:00:10 #315 [Verbose] > let e = Event<_> ()
00:00:10 #316 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:00:10 #317 [Verbose] > let fn =
00:00:10 #318 [Verbose] > asyncs
00:00:10 #319 [Verbose] > |> Seq.map (fun a -> async {
00:00:10 #320 [Verbose] > let! x = a
00:00:10 #321 [Verbose] > e.Trigger x
00:00:10 #322 [Verbose] > })
00:00:10 #323 [Verbose] > |> Async.Parallel
00:00:10 #324 [Verbose] > |> Async.Ignore
00:00:10 #325 [Verbose] > Async.Start (fn, cts.Token)
00:00:10 #326 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:00:10 #327 [Verbose] > cts.Cancel ()
00:00:10 #328 [Verbose] > return result
00:00:10 #329 [Verbose] > }
00:00:10 #330 [Verbose] >
00:00:10 #331 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #332 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #333 [Verbose] > │ ## map │
00:00:10 #334 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #335 [Verbose] >
00:00:10 #336 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #337 [Verbose] > let inline map fn a = async {
00:00:10 #338 [Verbose] > let! x = a
00:00:10 #339 [Verbose] > return fn x
00:00:10 #340 [Verbose] > }
00:00:10 #341 [Verbose] >
00:00:10 #342 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #343 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #344 [Verbose] > │ ## catch │
00:00:10 #345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #346 [Verbose] >
00:00:10 #347 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #348 [Verbose] > let inline catch a =
00:00:10 #349 [Verbose] > a
00:00:10 #350 [Verbose] > |> Async.Catch
00:00:10 #351 [Verbose] > |> map (function
00:00:10 #352 [Verbose] > | Choice1Of2 result -> Ok result
00:00:10 #353 [Verbose] > | Choice2Of2 ex -> Error ex
00:00:10 #354 [Verbose] > )
00:00:10 #355 [Verbose] >
00:00:10 #356 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:10 #357 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:10 #358 [Verbose] > │ ## runWithTimeoutAsync │
00:00:10 #359 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:10 #360 [Verbose] >
00:00:10 #361 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #362 [Verbose] > let inline runWithTimeoutAsync_ (timeout : int) fn =
00:00:10 #363 [Verbose] > let getLocals () = $"timeout: {timeout} / {getLocals ()}"
00:00:10 #364 [Verbose] >
00:00:10 #365 [Verbose] > let timeoutTask = async {
00:00:10 #366 [Verbose] > do! Async.Sleep timeout
00:00:10 #367 [Verbose] > trace Debug (fun () -> "runWithTimeoutAsync") getLocals
00:00:10 #368 [Verbose] > return None
00:00:10 #369 [Verbose] > }
00:00:10 #370 [Verbose] >
00:00:10 #371 [Verbose] > let task = async {
00:00:10 #372 [Verbose] > try
00:00:10 #373 [Verbose] > let! result = fn
00:00:10 #374 [Verbose] > return Some result
00:00:10 #375 [Verbose] > with
00:00:10 #376 [Verbose] > | :? System.AggregateException as ex when
00:00:10 #377 [Verbose] > ex.InnerExceptions
00:00:10 #378 [Verbose] > |> Seq.exists (function :?
00:00:10 #379 [Verbose] > System.Threading.Tasks.TaskCanceledException -> true | _ -> false)
00:00:10 #380 [Verbose] > ->
00:00:10 #381 [Verbose] > let getLocals () = $"ex: {ex |> SpiralSm.format_exception}
00:00:10 #382 [Verbose] > {getLocals ()}"
00:00:10 #383 [Verbose] > trace Warning (fun () -> "runWithTimeoutAsync") getLocals
00:00:10 #384 [Verbose] > return None
00:00:10 #385 [Verbose] > | ex ->
00:00:10 #386 [Verbose] > trace Critical (fun () -> $"runWithTimeoutAsync** / ex: {ex |>
00:00:10 #387 [Verbose] > SpiralSm.format_exception}") getLocals
00:00:10 #388 [Verbose] > return None
00:00:10 #389 [Verbose] > }
00:00:10 #390 [Verbose] >
00:00:10 #391 [Verbose] > [[ timeoutTask; task ]]
00:00:10 #392 [Verbose] > |> choice
00:00:10 #393 [Verbose] >
00:00:10 #394 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:10 #395 [Verbose] > let inline runWithTimeout_ timeout fn =
00:00:10 #396 [Verbose] > fn
00:00:10 #397 [Verbose] > |> runWithTimeoutAsync_ timeout
00:00:10 #398 [Verbose] > |> Async.RunSynchronously
00:00:11 #399 [Verbose] >
00:00:11 #400 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #401 [Verbose] > //// test
00:00:11 #402 [Verbose] >
00:00:11 #403 [Verbose] > Async.Sleep 120
00:00:11 #404 [Verbose] > |> runWithTimeout_ 10
00:00:11 #405 [Verbose] > |> _assertEqual None
00:00:11 #406 [Verbose] >
00:00:11 #407 [Verbose] > ╭─[ 119.85ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #408 [Verbose] > │ 00:00:00 #1 [Debug] runWithTimeoutAsync / timeout: 10 │
00:00:11 #409 [Verbose] > │ <null> │
00:00:11 #410 [Verbose] > │ │
00:00:11 #411 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #412 [Verbose] >
00:00:11 #413 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #414 [Verbose] > //// test
00:00:11 #415 [Verbose] >
00:00:11 #416 [Verbose] > Async.Sleep 10
00:00:11 #417 [Verbose] > |> runWithTimeout_ 60
00:00:11 #418 [Verbose] > |> _assertEqual (Some ())
00:00:11 #419 [Verbose] >
00:00:11 #420 [Verbose] > ╭─[ 110.19ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #421 [Verbose] > │ FSharpOption<Unit> │
00:00:11 #422 [Verbose] > │ Value: <null> │
00:00:11 #423 [Verbose] > │ │
00:00:11 #424 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #425 [Verbose] >
00:00:11 #426 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #427 [Verbose] > //// test
00:00:11 #428 [Verbose] >
00:00:11 #429 [Verbose] > async {
00:00:11 #430 [Verbose] > raise (exn "error")
00:00:11 #431 [Verbose] > }
00:00:11 #432 [Verbose] > |> runWithTimeout_ 60
00:00:11 #433 [Verbose] > |> _assertEqual None
00:00:11 #434 [Verbose] >
00:00:11 #435 [Verbose] > ╭─[ 92.56ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:11 #436 [Verbose] > │ 00:00:00 #2 [Critical] runWithTimeoutAsync** / ex: System.Exception: error / │
00:00:11 #437 [Verbose] > │ timeout: 60 │
00:00:11 #438 [Verbose] > │ <null> │
00:00:11 #439 [Verbose] > │ │
00:00:11 #440 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #441 [Verbose] >
00:00:11 #442 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #443 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #444 [Verbose] > │ ## runWithTimeoutChildAsync │
00:00:11 #445 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #446 [Verbose] >
00:00:11 #447 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #448 [Verbose] > let inline runWithTimeoutChildAsync (timeout : int) fn = async {
00:00:11 #449 [Verbose] > let getLocals () = $"timeout: {timeout} / {getLocals ()}"
00:00:11 #450 [Verbose] > let! child = Async.StartChild (fn, timeout)
00:00:11 #451 [Verbose] > return!
00:00:11 #452 [Verbose] > child
00:00:11 #453 [Verbose] > |> catch
00:00:11 #454 [Verbose] > |> map (function
00:00:11 #455 [Verbose] > | Ok result -> Some result
00:00:11 #456 [Verbose] > | Error (:? System.TimeoutException as ex) ->
00:00:11 #457 [Verbose] > trace Debug (fun () -> $"runWithTimeoutChildAsync") getLocals
00:00:11 #458 [Verbose] > None
00:00:11 #459 [Verbose] > | Error ex ->
00:00:11 #460 [Verbose] > trace Critical (fun () -> $"runWithTimeoutChildAsync** / ex: {ex
00:00:11 #461 [Verbose] > |> SpiralSm.format_exception}") getLocals
00:00:11 #462 [Verbose] > None
00:00:11 #463 [Verbose] > )
00:00:11 #464 [Verbose] > }
00:00:11 #465 [Verbose] >
00:00:11 #466 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #467 [Verbose] > let inline runWithTimeoutChild timeout fn =
00:00:11 #468 [Verbose] > fn
00:00:11 #469 [Verbose] > |> runWithTimeoutChildAsync timeout
00:00:11 #470 [Verbose] > |> Async.RunSynchronously
00:00:11 #471 [Verbose] >
00:00:11 #472 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #473 [Verbose] > let inline runWithTimeoutAsync timeout fn =
00:00:11 #474 [Verbose] > runWithTimeoutChildAsync timeout fn
00:00:11 #475 [Verbose] >
00:00:11 #476 [Verbose] > let inline runWithTimeout timeout fn =
00:00:11 #477 [Verbose] > runWithTimeoutChild timeout fn
00:00:11 #478 [Verbose] >
00:00:11 #479 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #480 [Verbose] > //// test
00:00:11 #481 [Verbose] >
00:00:11 #482 [Verbose] > Async.Sleep 60
00:00:11 #483 [Verbose] > |> runWithTimeoutChild 10
00:00:11 #484 [Verbose] > |> _assertEqual None
00:00:11 #485 [Verbose] >
00:00:11 #486 [Verbose] > ╭─[ 100.33ms - stdout ]────────────────────────────────────────────────────────╮
00:00:11 #487 [Verbose] > │ 00:00:00 #3 [Debug] runWithTimeoutChildAsync / timeout: 10 │
00:00:11 #488 [Verbose] > │ <null> │
00:00:11 #489 [Verbose] > │ │
00:00:11 #490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #491 [Verbose] >
00:00:11 #492 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #493 [Verbose] > //// test
00:00:11 #494 [Verbose] >
00:00:11 #495 [Verbose] > Async.Sleep 10
00:00:11 #496 [Verbose] > |> runWithTimeoutChild 60
00:00:11 #497 [Verbose] > |> _assertEqual (Some ())
00:00:11 #498 [Verbose] >
00:00:11 #499 [Verbose] > ╭─[ 95.44ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:11 #500 [Verbose] > │ FSharpOption<Unit> │
00:00:11 #501 [Verbose] > │ Value: <null> │
00:00:11 #502 [Verbose] > │ │
00:00:11 #503 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #504 [Verbose] >
00:00:11 #505 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #506 [Verbose] > //// test
00:00:11 #507 [Verbose] >
00:00:11 #508 [Verbose] > async {
00:00:11 #509 [Verbose] > raise (exn "error")
00:00:11 #510 [Verbose] > }
00:00:11 #511 [Verbose] > |> runWithTimeoutChild 60
00:00:11 #512 [Verbose] > |> _assertEqual None
00:00:11 #513 [Verbose] >
00:00:11 #514 [Verbose] > ╭─[ 88.46ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:11 #515 [Verbose] > │ 00:00:00 #4 [Critical] runWithTimeoutChildAsync** / ex: System.Exception: │
00:00:11 #516 [Verbose] > │ error / timeout: 60 │
00:00:11 #517 [Verbose] > │ <null> │
00:00:11 #518 [Verbose] > │ │
00:00:11 #519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #520 [Verbose] >
00:00:11 #521 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:11 #522 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:11 #523 [Verbose] > │ ## runWithTimeoutStrict │
00:00:11 #524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:11 #525 [Verbose] >
00:00:11 #526 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:11 #527 [Verbose] > let inline runWithTimeoutStrict (timeout : int) fn =
00:00:11 #528 [Verbose] > let getLocals () = $"timeout: {timeout} / {getLocals ()}"
00:00:11 #529 [Verbose] >
00:00:11 #530 [Verbose] > let timeoutTask = async {
00:00:11 #531 [Verbose] > do! Async.Sleep timeout
00:00:11 #532 [Verbose] > return None, getLocals
00:00:11 #533 [Verbose] > }
00:00:11 #534 [Verbose] >
00:00:11 #535 [Verbose] > let task = async {
00:00:11 #536 [Verbose] > try
00:00:11 #537 [Verbose] > return Async.RunSynchronously (fn, timeout) |> Some, getLocals
00:00:11 #538 [Verbose] > with
00:00:11 #539 [Verbose] > | :? System.TimeoutException as ex ->
00:00:11 #540 [Verbose] > let getLocals () = $"ex: {ex |> SpiralSm.format_exception}
00:00:11 #541 [Verbose] > {getLocals ()}"
00:00:11 #542 [Verbose] > return None, getLocals
00:00:11 #543 [Verbose] > | ex ->
00:00:11 #544 [Verbose] > trace Critical (fun () -> $"runWithTimeoutStrict / ex: {ex |>
00:00:11 #545 [Verbose] > SpiralSm.format_exception}") getLocals
00:00:11 #546 [Verbose] > return raise ex
00:00:11 #547 [Verbose] > }
00:00:11 #548 [Verbose] >
00:00:11 #549 [Verbose] > try
00:00:11 #550 [Verbose] > [[| timeoutTask; task |]]
00:00:11 #551 [Verbose] > |> Array.map Async.StartAsTask
00:00:11 #552 [Verbose] > |> System.Threading.Tasks.Task.WhenAny
00:00:11 #553 [Verbose] > |> fun task ->
00:00:11 #554 [Verbose] > match task.Result.Result with
00:00:11 #555 [Verbose] > | None, getLocals ->
00:00:11 #556 [Verbose] > trace Debug (fun () -> "runWithTimeoutStrict") getLocals
00:00:11 #557 [Verbose] > None
00:00:11 #558 [Verbose] > | result, _ -> result
00:00:11 #559 [Verbose] > with
00:00:11 #560 [Verbose] > | :? System.AggregateException as ex when
00:00:11 #561 [Verbose] > ex.InnerExceptions
00:00:11 #562 [Verbose] > |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException
00:00:11 #563 [Verbose] > -> true | _ -> false)
00:00:11 #564 [Verbose] > ->
00:00:11 #565 [Verbose] > let getLocals () = $"ex: {ex |> SpiralSm.format_exception} / {getLocals
00:00:11 #566 [Verbose] > ()}"
00:00:11 #567 [Verbose] > trace Warning (fun () -> "runWithTimeoutStrict") getLocals
00:00:11 #568 [Verbose] > None
00:00:11 #569 [Verbose] > | ex ->
00:00:11 #570 [Verbose] > let getLocals () = $"ex: {ex |> SpiralSm.format_exception} / {getLocals
00:00:11 #571 [Verbose] > ()}"
00:00:11 #572 [Verbose] > trace Critical (fun () -> "runWithTimeoutStrict**") getLocals
00:00:11 #573 [Verbose] > None
00:00:12 #574 [Verbose] >
00:00:12 #575 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #576 [Verbose] > //// test
00:00:12 #577 [Verbose] >
00:00:12 #578 [Verbose] > Async.Sleep 60
00:00:12 #579 [Verbose] > |> runWithTimeoutStrict 10
00:00:12 #580 [Verbose] > |> _assertEqual None
00:00:12 #581 [Verbose] >
00:00:12 #582 [Verbose] > ╭─[ 96.25ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:12 #583 [Verbose] > │ 00:00:01 #5 [Debug] runWithTimeoutStrict / timeout: 10 │
00:00:12 #584 [Verbose] > │ <null> │
00:00:12 #585 [Verbose] > │ │
00:00:12 #586 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #587 [Verbose] >
00:00:12 #588 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #589 [Verbose] > //// test
00:00:12 #590 [Verbose] >
00:00:12 #591 [Verbose] > Async.Sleep 10
00:00:12 #592 [Verbose] > |> runWithTimeoutStrict 60
00:00:12 #593 [Verbose] > |> _assertEqual (Some ())
00:00:12 #594 [Verbose] >
00:00:12 #595 [Verbose] > ╭─[ 89.99ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:12 #596 [Verbose] > │ FSharpOption<Unit> │
00:00:12 #597 [Verbose] > │ Value: <null> │
00:00:12 #598 [Verbose] > │ │
00:00:12 #599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #600 [Verbose] >
00:00:12 #601 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #602 [Verbose] > //// test
00:00:12 #603 [Verbose] >
00:00:12 #604 [Verbose] > async {
00:00:12 #605 [Verbose] > raise (exn "error")
00:00:12 #606 [Verbose] > }
00:00:12 #607 [Verbose] > |> runWithTimeoutStrict 60
00:00:12 #608 [Verbose] > |> _assertEqual None
00:00:12 #609 [Verbose] >
00:00:12 #610 [Verbose] > ╭─[ 89.72ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:12 #611 [Verbose] > │ 00:00:01 #6 [Critical] runWithTimeoutStrict / ex: System.Exception: error / │
00:00:12 #612 [Verbose] > │ timeout: 60 │
00:00:12 #613 [Verbose] > │ 00:00:01 #7 [Critical] runWithTimeoutStrict** / ex: │
00:00:12 #614 [Verbose] > │ System.AggregateException: One or more errors occurred. (error) / timeout: │
00:00:12 #615 [Verbose] > │ 60 │
00:00:12 #616 [Verbose] > │ <null> │
00:00:12 #617 [Verbose] > │ │
00:00:12 #618 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #619 [Verbose] >
00:00:12 #620 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #621 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #622 [Verbose] > │ ## awaitValueTask │
00:00:12 #623 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #624 [Verbose] >
00:00:12 #625 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #626 [Verbose] > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) =
00:00:12 #627 [Verbose] > task.AsTask () |> Async.AwaitTask
00:00:12 #628 [Verbose] >
00:00:12 #629 [Verbose] > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) =
00:00:12 #630 [Verbose] > task.AsTask () |> Async.AwaitTask
00:00:12 #631 [Verbose] >
00:00:12 #632 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #633 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #634 [Verbose] > │ ## init │
00:00:12 #635 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #636 [Verbose] >
00:00:12 #637 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #638 [Verbose] > let inline init x = async {
00:00:12 #639 [Verbose] > return x
00:00:12 #640 [Verbose] > }
00:00:12 #641 [Verbose] >
00:00:12 #642 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #643 [Verbose] > //// test
00:00:12 #644 [Verbose] >
00:00:12 #645 [Verbose] > init 1
00:00:12 #646 [Verbose] > |> Async.RunSynchronously
00:00:12 #647 [Verbose] > |> _assertEqual 1
00:00:12 #648 [Verbose] >
00:00:12 #649 [Verbose] > ╭─[ 40.26ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:12 #650 [Verbose] > │ 1 │
00:00:12 #651 [Verbose] > │ │
00:00:12 #652 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #653 [Verbose] >
00:00:12 #654 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #655 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #656 [Verbose] > │ ## mergeCancellationTokenWithDefaultAsync │
00:00:12 #657 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #658 [Verbose] >
00:00:12 #659 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #660 [Verbose] > let inline mergeCancellationTokenWithDefaultAsync (token :
00:00:12 #661 [Verbose] > System.Threading.CancellationToken) = async {
00:00:12 #662 [Verbose] > let! ct = Async.CancellationToken
00:00:12 #663 [Verbose] > let dct = Async.DefaultCancellationToken
00:00:12 #664 [Verbose] > let cts = System.Threading.CancellationTokenSource.CreateLinkedTokenSource
00:00:12 #665 [Verbose] > [[| ct; dct; token |]]
00:00:12 #666 [Verbose] > return cts.Token
00:00:12 #667 [Verbose] > }
00:00:12 #668 [Verbose] >
00:00:12 #669 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #670 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #671 [Verbose] > │ ## withCancellationToken │
00:00:12 #672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #673 [Verbose] >
00:00:12 #674 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #675 [Verbose] > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn =
00:00:12 #676 [Verbose] > Async.StartImmediateAsTask (fn, ct)
00:00:12 #677 [Verbose] > |> Async.AwaitTask
00:00:12 #678 [Verbose] >
00:00:12 #679 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #680 [Verbose] > //// test
00:00:12 #681 [Verbose] >
00:00:12 #682 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:00:12 #683 [Verbose] >
00:00:12 #684 [Verbose] > async {
00:00:12 #685 [Verbose] > let run = async {
00:00:12 #686 [Verbose] > do! Async.Sleep 100
00:00:12 #687 [Verbose] > return 1
00:00:12 #688 [Verbose] > }
00:00:12 #689 [Verbose] >
00:00:12 #690 [Verbose] > let! child =
00:00:12 #691 [Verbose] > run
00:00:12 #692 [Verbose] > |> withCancellationToken cts.Token
00:00:12 #693 [Verbose] > |> catch
00:00:12 #694 [Verbose] > |> Async.StartChild
00:00:12 #695 [Verbose] >
00:00:12 #696 [Verbose] > do! Async.Sleep 50
00:00:12 #697 [Verbose] > cts.Cancel ()
00:00:12 #698 [Verbose] > return! child
00:00:12 #699 [Verbose] > }
00:00:12 #700 [Verbose] > |> Async.RunSynchronously
00:00:12 #701 [Verbose] > |> Result.mapError _.Message
00:00:12 #702 [Verbose] > |> _assertEqual (Error ("A task was canceled."))
00:00:12 #703 [Verbose] >
00:00:12 #704 [Verbose] > ╭─[ 181.82ms - stdout ]────────────────────────────────────────────────────────╮
00:00:12 #705 [Verbose] > │ FSharpResult<Int32,String> │
00:00:12 #706 [Verbose] > │ ResultValue: 0 │
00:00:12 #707 [Verbose] > │ ErrorValue: A task was canceled. │
00:00:12 #708 [Verbose] > │ │
00:00:12 #709 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #710 [Verbose] >
00:00:12 #711 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:12 #712 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:12 #713 [Verbose] > │ ## withTraceLevel │
00:00:12 #714 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #715 [Verbose] >
00:00:12 #716 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #717 [Verbose] > let inline withTraceLevel level fn = async {
00:00:12 #718 [Verbose] > let oldTraceLevel = traceLevel
00:00:12 #719 [Verbose] > try
00:00:12 #720 [Verbose] > traceLevel <- level
00:00:12 #721 [Verbose] > return! fn
00:00:12 #722 [Verbose] > finally
00:00:12 #723 [Verbose] > traceLevel <- oldTraceLevel
00:00:12 #724 [Verbose] > }
00:00:14 #725 [Verbose] > [NbConvertApp] Converting notebook Async.dib.ipynb to html
00:00:14 #726 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:14 #727 [Verbose] > validate(nb)
00:00:15 #728 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:15 #729 [Verbose] > return _pygments_highlight(
00:00:15 #730 [Verbose] > [NbConvertApp] Writing 326877 bytes to Async.dib.html
00:00:16 #731 [Debug] executeAsync / exitCode: 0 / output.Length: 26692
00:00:16 #732 [Debug] main / executeCommand / exitCode: 0
00:00:16 #733 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 AsyncSeq.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:18 #734 [Verbose] >
00:00:18 #735 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #736 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #737 [Verbose] > │ # AsyncSeq (Polyglot) │
00:00:18 #738 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #739 [Verbose] >
00:00:18 #740 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 #741 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:18 #742 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:18 #743 [Verbose] >
00:00:18 #744 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:18 #745 [Verbose] > #r
00:00:18 #746 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:18 #747 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:18 #748 [Verbose] > #r
00:00:18 #749 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:18 #750 [Verbose] > otNet.Interactive.dll"
00:00:18 #751 [Verbose] > #r
00:00:18 #752 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:18 #753 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:18 #754 [Verbose] > #r
00:00:18 #755 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:18 #756 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:18 #757 [Verbose] > open System
00:00:18 #758 [Verbose] > open System.IO
00:00:18 #759 [Verbose] > open System.Text
00:00:18 #760 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:22 #761 [Verbose] >
00:00:22 #762 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:22 #763 [Verbose] > #r
00:00:22 #764 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:22 #765 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:22 #766 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:22 #767 [Verbose] > #r
00:00:22 #768 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:22 #769 [Verbose] > otNet.Interactive.dll"
00:00:22 #770 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:22 #771 [Verbose] >
00:00:22 #772 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:22 #773 [Verbose] > //// test
00:00:22 #774 [Verbose] >
00:00:22 #775 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:22 #776 [Verbose] >
00:00:22 #777 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:22 #778 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:22 #779 [Verbose] >
00:00:22 #780 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:22 #781 [Verbose] > //// test
00:00:22 #782 [Verbose] >
00:00:22 #783 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:22 #784 [Verbose] > member _.Text =
00:00:22 #785 [Verbose] > ex.ToString()
00:00:22 #786 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:22 #787 [Verbose] > .Replace("36m", "</span>")
00:00:22 #788 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:22 #789 [Verbose] > .Replace("\n", "<br/>\n")
00:00:22 #790 [Verbose] >
00:00:22 #791 [Verbose] >
00:00:22 #792 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:22 #793 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:23 #794 [Verbose] >
00:00:23 #795 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:23 #796 [Verbose] > //// test
00:00:23 #797 [Verbose] >
00:00:23 #798 [Verbose] > let inline __expect fn log expected actual =
00:00:23 #799 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:23 #800 [Verbose] > try
00:00:23 #801 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:23 #802 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:23 #803 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:23 #804 [Verbose] > failwith (ex.GetType().FullName)
00:00:23 #805 [Verbose] >
00:00:23 #806 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:23 #807 [Verbose] > expected actual
00:00:23 #808 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:23 #809 [Verbose] >
00:00:23 #810 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:23 #811 [Verbose] > expected actual
00:00:23 #812 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:23 #813 [Verbose] >
00:00:23 #814 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:23 #815 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:23 #816 [Verbose] >
00:00:23 #817 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:23 #818 [Verbose] > //// test
00:00:23 #819 [Verbose] >
00:00:23 #820 [Verbose] > let inline __isBetween log a b actual =
00:00:23 #821 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:23 #822 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:23 #823 [Verbose] > __isLessThanOrEqual log b actual
00:00:23 #824 [Verbose] > __expect isBetween log (a, b) actual
00:00:23 #825 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:23 #826 [Verbose] >
00:00:23 #827 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:23 #828 [Verbose] > #r
00:00:23 #829 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:00:23 #830 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:00:23 #831 [Verbose] > #r
00:00:23 #832 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:00:23 #833 [Verbose] > 0/System.Reactive.dll"
00:00:23 #834 [Verbose] > #r
00:00:23 #835 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:00:23 #836 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:00:23 #837 [Verbose] >
00:00:23 #838 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:23 #839 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:23 #840 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:23 #841 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:23 #842 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:23 #843 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:23 #844 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:00:23 #845 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:00:23 #846 [Verbose] >
00:00:23 #847 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:23 #848 [Verbose] > type [[<Struct>]] US0 =
00:00:23 #849 [Verbose] > | US0_0
00:00:23 #850 [Verbose] > | US0_1
00:00:23 #851 [Verbose] > | US0_2
00:00:23 #852 [Verbose] > | US0_3
00:00:23 #853 [Verbose] > and [[<Struct>]] US1 =
00:00:23 #854 [Verbose] > | US1_0 of f0_0 : US0
00:00:23 #855 [Verbose] > | US1_1 of f1_0 : US0
00:00:23 #856 [Verbose] > and [[<Struct>]] US2 =
00:00:23 #857 [Verbose] > | US2_0
00:00:23 #858 [Verbose] > | US2_1
00:00:23 #859 [Verbose] > and [[<Struct>]] US3 =
00:00:23 #860 [Verbose] > | US3_0 of f0_0 : US2
00:00:23 #861 [Verbose] > | US3_1
00:00:23 #862 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:23 #863 [Verbose] > let v1 : System.IDisposable option = None
00:00:23 #864 [Verbose] > let mutable _v1 = v1
00:00:23 #865 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:00:23 #866 [Verbose] > let v2 : US0 = US0_0
00:00:23 #867 [Verbose] > let v3 : US1 = US1_0(v2)
00:00:23 #868 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:00:23 #869 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:00:23 #870 [Verbose] > v5
00:00:23 #871 [Verbose] > #endif
00:00:23 #872 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:23 #873 [Verbose] > let v6 : US0 = US0_2
00:00:23 #874 [Verbose] > let v7 : US1 = US1_0(v6)
00:00:23 #875 [Verbose] > let v8 : string = $"new_dispos...
00:00:24 #876 [Verbose] >
00:00:24 #877 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:24 #878 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:24 #879 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:24 #880 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:24 #881 [Verbose] > let v2 : bool = v1.Contains v0
00:00:24 #882 [Verbose] > v2
00:00:24 #883 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:24 #884 [Verbose] > closure1(v0)
00:00:24 #885 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:24 #886 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:24 #887 [Verbose] > v2
00:00:24 #888 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:24 #889 [Verbose] > closure3(v0)
00:00:24 #890 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:24 #891 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:24 #892 [Verbose] > v3
00:00:24 #893 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:24 #894 [Verbose] > closure6(v0, v1)
00:00:24 #895 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:24 #896 [Verbose] > closure5(v0)
00:00:24 #897 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:24 #898 [Verbose] > let v2 : stri...
00:00:25 #899 [Verbose] >
00:00:25 #900 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:25 #901 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:25 #902 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:25 #903 [Verbose] > let v3 : string = v2 v0
00:00:25 #904 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:25 #905 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:25 #906 [Verbose] > v5
00:00:25 #907 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:25 #908 [Verbose] > closure1(v0)
00:00:25 #909 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:25 #910 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:25 #911 [Verbose] > v3
00:00:25 #912 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:25 #913 [Verbose] > closure5(v0, v1)
00:00:25 #914 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:25 #915 [Verbose] > closure4(v0)
00:00:25 #916 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:25 #917 [Verbose] > closure3()
00:00:25 #918 [Verbose] > and closure2 (...
00:00:25 #919 [Verbose] >
00:00:25 #920 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:25 #921 [Verbose] > #if FABLE_COMPILER // file_system.types
00:00:25 #922 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:00:25 #923 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:00:25 #924 [Verbose] > base64_DecodeError = class end
00:00:25 #925 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:00:25 #926 [Verbose] > = class end
00:00:25 #927 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:00:25 #928 [Verbose] > = class end
00:00:25 #929 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:00:25 #930 [Verbose] > serde_json_Error = class end
00:00:25 #931 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:00:25 #932 [Verbose] > serde_json_Value = class end
00:00:25 #933 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:00:25 #934 [Verbose] > serde_wasm_bindgen_Error = class end
00:00:25 #935 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:00:25 #936 [Verbose] >
00:00:25 #937 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:25 #938 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:00:25 #939 [Verbose] > module SpiralDateTime =
00:00:25 #940 [Verbose] > let format x =
00:00:25 #941 [Verbose] > #if !INTERACTIVE
00:00:25 #942 [Verbose] > Date_time.format x
00:00:25 #943 [Verbose] > #else
00:00:25 #944 [Verbose] > format x
00:00:25 #945 [Verbose] > #endif
00:00:25 #946 [Verbose] >
00:00:25 #947 [Verbose] > let format_iso8601 x =
00:00:25 #948 [Verbose] > #if !INTERACTIVE
00:00:25 #949 [Verbose] > Date_time.format_iso8601 x
00:00:25 #950 [Verbose] > #else
00:00:25 #951 [Verbose] > format_iso8601 x
00:00:25 #952 [Verbose] > #endif
00:00:25 #953 [Verbose] >
00:00:25 #954 [Verbose] > let new_guid_from_date_time x =
00:00:25 #955 [Verbose] > #if !INTERACTIVE
00:00:25 #956 [Verbose] > Date_time.new_guid_from_date_time x
00:00:25 #957 [Verbose] > #else
00:00:25 #958 [Verbose] > new_guid_from_date_time x
00:00:25 #959 [Verbose] > #endif
00:00:25 #960 [Verbose] >
00:00:25 #961 [Verbose] > #endif
00:00:25 #962 [Verbose] >
00:00:25 #963 [Verbose] > module SpiralSm =
00:00:25 #964 [Verbose] > let concat x =
00:00:25 #965 [Verbose] > #if !INTERACTIVE
00:00:25 #966 [Verbose] > Sm.concat x
00:00:25 #967 [Verbose] > #else
00:00:25 #968 [Verbose] > concat x
00:00:25 #969 [Verbose] > #endif
00:00:25 #970 [Verbose] >
00:00:25 #971 [Verbose] > let contains x =
00:00:25 #972 [Verbose] > #if !INTERACTIVE
00:00:25 #973 [Verbose] > Sm.contains x
00:00:25 #974 [Verbose] > #else
00:00:25 #975 [Verbose] > contains x
00:00:25 #976 [Verbose] > #endif
00:00:25 #977 [Verbose] >
00:00:25 #978 [Verbose] > let ellipsis x =
00:00:25 #979 [Verbose] > #if !INTERACTIVE
00:00:25 #980 [Verbose] > Sm.ellipsis x
00:00:25 #981 [Verbose] > #else
00:00:25 #982 [Verbose] > ellipsis x
00:00:25 #983 [Verbose] > #endif
00:00:25 #984 [Verbose] >
00:00:25 #985 [Verbose] > let ellipsis_end x =
00:00:25 #986 [Verbose] > #if...
00:00:25 #987 [Verbose] >
00:00:25 #988 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:25 #989 [Verbose] > #if !INTERACTIVE
00:00:25 #990 [Verbose] > namespace Polyglot
00:00:25 #991 [Verbose] > #endif
00:00:25 #992 [Verbose] >
00:00:25 #993 [Verbose] > module Common =
00:00:25 #994 [Verbose] >
00:00:25 #995 [Verbose] > #if !INTERACTIVE
00:00:25 #996 [Verbose] > open Lib
00:00:25 #997 [Verbose] > #endif
00:00:25 #998 [Verbose] >
00:00:25 #999 [Verbose] > let nl = System.Environment.NewLine
00:00:25 #1000 [Verbose] > let q = @""""
00:00:25 #1001 [Verbose] >
00:00:25 #1002 [Verbose] > let inline cons head tail = head :: tail
00:00:25 #1003 [Verbose] >
00:00:25 #1004 [Verbose] > /// ## memoize
00:00:25 #1005 [Verbose] >
00:00:25 #1006 [Verbose] > let inline memoize fn =
00:00:25 #1007 [Verbose] > let result = lazy fn ()
00:00:25 #1008 [Verbose] > fun () -> result.Value
00:00:25 #1009 [Verbose] >
00:00:25 #1010 [Verbose] > /// ## TraceLevel
00:00:25 #1011 [Verbose] >
00:00:25 #1012 [Verbose] > type TraceLevel =
00:00:25 #1013 [Verbose] > | Verbose
00:00:25 #1014 [Verbose] > | Debug
00:00:25 #1015 [Verbose] > | Info
00:00:25 #1016 [Verbose] > | Warning
00:00:25 #1017 [Verbose] > | Critical
00:00:25 #1018 [Verbose] >
00:00:25 #1019 [Verbose] > let inline getLocals () = ""
00:00:25 #1020 [Verbose] >
00:00:25 #1021 [Verbose] > let mutable traceEnabled = true
00:00:25 #1022 [Verbose] > let mutable traceCount = 0
00:00:25 #1023 [Verbose] > let mutable traceLevel = Verbose
00:00:25 #1024 [Verbose] > let mutable traceDump = false
00:00:25 #1025 [Verbose] >
00:00:25 #1026 [Verbose] > let testTraceLevel level =
00:00:25 #1027 [Verbose] > traceEnabled && level >= traceLevel
00:00:25 #1028 [Verbose] >
00:00:25 #1029 [Verbose] > /// ## traceRaw
00:00:25 #1030 [Verbose] >
00:00:25 #1031 [Verbose] > let rec traceRaw level fn =
00:00:25 #1032 [Verbose] > ...
00:00:25 #1033 [Verbose] >
00:00:25 #1034 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:25 #1035 [Verbose] > #if !INTERACTIVE
00:00:25 #1036 [Verbose] > namespace Polyglot
00:00:25 #1037 [Verbose] > #endif
00:00:25 #1038 [Verbose] >
00:00:25 #1039 [Verbose] > module Async =
00:00:25 #1040 [Verbose] >
00:00:25 #1041 [Verbose] > #if !INTERACTIVE
00:00:25 #1042 [Verbose] > open Lib
00:00:25 #1043 [Verbose] > #endif
00:00:25 #1044 [Verbose] >
00:00:25 #1045 [Verbose] > open Common
00:00:25 #1046 [Verbose] >
00:00:25 #1047 [Verbose] > /// ## choice
00:00:25 #1048 [Verbose] >
00:00:25 #1049 [Verbose] > let inline choice asyncs = async {
00:00:25 #1050 [Verbose] > let e = Event<_> ()
00:00:25 #1051 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:00:25 #1052 [Verbose] > let fn =
00:00:25 #1053 [Verbose] > asyncs
00:00:25 #1054 [Verbose] > |> Seq.map (fun a -> async {
00:00:25 #1055 [Verbose] > let! x = a
00:00:25 #1056 [Verbose] > e.Trigger x
00:00:25 #1057 [Verbose] > })
00:00:25 #1058 [Verbose] > |> Async.Parallel
00:00:25 #1059 [Verbose] > |> Async.Ignore
00:00:25 #1060 [Verbose] > Async.Start (fn, cts.Token)
00:00:25 #1061 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:00:25 #1062 [Verbose] > cts.Cancel ()
00:00:25 #1063 [Verbose] > return result
00:00:25 #1064 [Verbose] > }
00:00:25 #1065 [Verbose] >
00:00:25 #1066 [Verbose] > /// ## map
00:00:25 #1067 [Verbose] >
00:00:25 #1068 [Verbose] > let inline map fn a = async {
00:00:25 #1069 [Verbose] > let! x = a
00:00:25 #1070 [Verbose] > return fn x
00:00:25 #1071 [Verbose] > }
00:00:25 #1072 [Verbose] >
00:00:25 #1073 [Verbose] > /// ## catch
00:00:25 #1074 [Verbose] >
00:00:25 #1075 [Verbose] > let inline catch a =
00:00:25 #1076 [Verbose] > ...
00:00:26 #1077 [Verbose] >
00:00:26 #1078 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 #1079 [Verbose] > #if !INTERACTIVE
00:00:26 #1080 [Verbose] > open Lib
00:00:26 #1081 [Verbose] > #endif
00:00:26 #1082 [Verbose] >
00:00:26 #1083 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 #1084 [Verbose] > open Common
00:00:26 #1085 [Verbose] >
00:00:26 #1086 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 #1087 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:26 #1088 [Verbose] > │ ## subscribeEvent │
00:00:26 #1089 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #1090 [Verbose] >
00:00:26 #1091 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 #1092 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:00:26 #1093 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:00:26 #1094 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:00:26 #1095 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:00:26 #1096 [Verbose] > event.EventArgs)
00:00:26 #1097 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:00:26 #1098 [Verbose] >
00:00:26 #1099 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 #1100 [Verbose] > //// test
00:00:26 #1101 [Verbose] >
00:00:26 #1102 [Verbose] > type TestEvent () as self =
00:00:26 #1103 [Verbose] > member val Calls = [[]] with get, set
00:00:26 #1104 [Verbose] > member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get
00:00:26 #1105 [Verbose] >
00:00:26 #1106 [Verbose] > member _.AddCall text =
00:00:26 #1107 [Verbose] > self.Calls <- self.Calls @ [[ text ]]
00:00:26 #1108 [Verbose] >
00:00:26 #1109 [Verbose] > member _.EventInterface =
00:00:26 #1110 [Verbose] > { new IEvent<ErrorEventHandler, ErrorEventArgs> with
00:00:26 #1111 [Verbose] > member _.AddHandler handler =
00:00:26 #1112 [Verbose] > self.AddCall "AddHandler"
00:00:26 #1113 [Verbose] > self.Event.Publish.AddHandler handler
00:00:26 #1114 [Verbose] >
00:00:26 #1115 [Verbose] > member _.RemoveHandler handler =
00:00:26 #1116 [Verbose] > self.AddCall "RemoveHandler"
00:00:26 #1117 [Verbose] > self.Event.Publish.RemoveHandler handler
00:00:26 #1118 [Verbose] >
00:00:26 #1119 [Verbose] > member _.Subscribe observer =
00:00:26 #1120 [Verbose] > self.AddCall "IObservable.Subscribe"
00:00:26 #1121 [Verbose] > let disposable = self.Event.Publish.Subscribe observer
00:00:26 #1122 [Verbose] > new_disposable (fun () ->
00:00:26 #1123 [Verbose] > self.AddCall "IObservable.Dispose"
00:00:26 #1124 [Verbose] > disposable.Dispose ()
00:00:26 #1125 [Verbose] > )
00:00:26 #1126 [Verbose] > }
00:00:26 #1127 [Verbose] >
00:00:26 #1128 [Verbose] > member _.Subscribe () =
00:00:26 #1129 [Verbose] > subscribeEvent
00:00:26 #1130 [Verbose] > self.EventInterface
00:00:26 #1131 [Verbose] > (fun args ->
00:00:26 #1132 [Verbose] > let result = args.GetException () |> SpiralSm.format_exception
00:00:26 #1133 [Verbose] > self.AddCall $"TestEvent.Subscribe({result})"
00:00:26 #1134 [Verbose] > result
00:00:26 #1135 [Verbose] > )
00:00:26 #1136 [Verbose] >
00:00:26 #1137 [Verbose] > member _.Iter subscription =
00:00:26 #1138 [Verbose] > subscription
00:00:26 #1139 [Verbose] > |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async {
00:00:26 #1140 [Verbose] > self.AddCall $"TestEvent.Iter({i}: {error})"
00:00:26 #1141 [Verbose] > })
00:00:26 #1142 [Verbose] >
00:00:26 #1143 [Verbose] > member _.WaitCall text = async {
00:00:26 #1144 [Verbose] > while self.Calls |> List.last <> text do
00:00:26 #1145 [Verbose] > do! Async.SwitchToThreadPool ()
00:00:26 #1146 [Verbose] > }
00:00:26 #1147 [Verbose] >
00:00:26 #1148 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 #1149 [Verbose] > //// test
00:00:26 #1150 [Verbose] >
00:00:26 #1151 [Verbose] > let testEvent = TestEvent ()
00:00:26 #1152 [Verbose] >
00:00:26 #1153 [Verbose] > async {
00:00:26 #1154 [Verbose] > testEvent.AddCall "1"
00:00:26 #1155 [Verbose] > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:26 #1156 [Verbose] > do! testEvent.WaitCall "AddHandler"
00:00:26 #1157 [Verbose] > testEvent.AddCall "2"
00:00:26 #1158 [Verbose] > do! child
00:00:26 #1159 [Verbose] > testEvent.AddCall "3"
00:00:26 #1160 [Verbose] > }
00:00:26 #1161 [Verbose] > |> Async.runWithTimeout 300
00:00:26 #1162 [Verbose] > |> _assertEqual None
00:00:26 #1163 [Verbose] >
00:00:26 #1164 [Verbose] > testEvent.Calls
00:00:26 #1165 [Verbose] > |> Seq.toList
00:00:26 #1166 [Verbose] > |> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]]
00:00:27 #1167 [Verbose] >
00:00:27 #1168 [Verbose] > ╭─[ 469.34ms - stdout ]────────────────────────────────────────────────────────╮
00:00:27 #1169 [Verbose] > │ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 300 │
00:00:27 #1170 [Verbose] > │ <null> │
00:00:27 #1171 [Verbose] > │ [ 1, AddHandler, 2, RemoveHandler ] │
00:00:27 #1172 [Verbose] > │ │
00:00:27 #1173 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #1174 [Verbose] >
00:00:27 #1175 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:27 #1176 [Verbose] > //// test
00:00:27 #1177 [Verbose] >
00:00:27 #1178 [Verbose] > let testEvent = TestEvent ()
00:00:27 #1179 [Verbose] >
00:00:27 #1180 [Verbose] > async {
00:00:27 #1181 [Verbose] > testEvent.AddCall "1"
00:00:27 #1182 [Verbose] > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:27 #1183 [Verbose] > do! testEvent.WaitCall "AddHandler"
00:00:27 #1184 [Verbose] > testEvent.AddCall "2"
00:00:27 #1185 [Verbose] > use _ = testEvent.EventInterface.Subscribe (fun args ->
00:00:27 #1186 [Verbose] > testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})"
00:00:27 #1187 [Verbose] > )
00:00:27 #1188 [Verbose] > testEvent.AddCall "3"
00:00:27 #1189 [Verbose] > do! child
00:00:27 #1190 [Verbose] > testEvent.AddCall "4"
00:00:27 #1191 [Verbose] > }
00:00:27 #1192 [Verbose] > |> Async.runWithTimeout 300
00:00:27 #1193 [Verbose] > |> _assertEqual None
00:00:27 #1194 [Verbose] >
00:00:27 #1195 [Verbose] > testEvent.Calls
00:00:27 #1196 [Verbose] > |> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3";
00:00:27 #1197 [Verbose] > "RemoveHandler"; "IObservable.Dispose" ]]
00:00:27 #1198 [Verbose] >
00:00:27 #1199 [Verbose] > ╭─[ 420.26ms - stdout ]────────────────────────────────────────────────────────╮
00:00:27 #1200 [Verbose] > │ 00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 300 │
00:00:27 #1201 [Verbose] > │ <null> │
00:00:27 #1202 [Verbose] > │ [ 1, AddHandler, 2, IObservable.Subscribe, 3, RemoveHandler, │
00:00:27 #1203 [Verbose] > │ IObservable.Dispose ] │
00:00:27 #1204 [Verbose] > │ │
00:00:27 #1205 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #1206 [Verbose] >
00:00:27 #1207 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:27 #1208 [Verbose] > //// test
00:00:27 #1209 [Verbose] >
00:00:27 #1210 [Verbose] > let testEvent = TestEvent ()
00:00:27 #1211 [Verbose] >
00:00:27 #1212 [Verbose] > async {
00:00:27 #1213 [Verbose] > testEvent.AddCall "1"
00:00:27 #1214 [Verbose] > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild
00:00:27 #1215 [Verbose] > do! testEvent.WaitCall "AddHandler"
00:00:27 #1216 [Verbose] > testEvent.AddCall "2"
00:00:27 #1217 [Verbose] > use _ = testEvent.EventInterface.Subscribe (fun args ->
00:00:27 #1218 [Verbose] > async {
00:00:27 #1219 [Verbose] > do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)"
00:00:27 #1220 [Verbose] > testEvent.AddCall
00:00:27 #1221 [Verbose] > $"testEvent.EventInterface.Subscribe({args.GetException () |>
00:00:27 #1222 [Verbose] > SpiralSm.format_exception})"
00:00:27 #1223 [Verbose] > }
00:00:27 #1224 [Verbose] > |> Async.RunSynchronously
00:00:27 #1225 [Verbose] > )
00:00:27 #1226 [Verbose] > testEvent.AddCall "3"
00:00:27 #1227 [Verbose] > testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error"))
00:00:27 #1228 [Verbose] > testEvent.AddCall "4"
00:00:27 #1229 [Verbose] > do! child
00:00:27 #1230 [Verbose] > testEvent.AddCall "5"
00:00:27 #1231 [Verbose] > }
00:00:27 #1232 [Verbose] > |> Async.runWithTimeout 300
00:00:27 #1233 [Verbose] > |> _assertEqual None
00:00:27 #1234 [Verbose] >
00:00:27 #1235 [Verbose] > testEvent.Calls
00:00:27 #1236 [Verbose] > |> _assertEqual [[
00:00:27 #1237 [Verbose] > "1"
00:00:27 #1238 [Verbose] > "AddHandler"
00:00:27 #1239 [Verbose] > "2"
00:00:27 #1240 [Verbose] > "IObservable.Subscribe"
00:00:27 #1241 [Verbose] > "3"
00:00:27 #1242 [Verbose] > "TestEvent.Subscribe(System.Exception: error)"
00:00:27 #1243 [Verbose] > "TestEvent.Iter(0: System.Exception: error)"
00:00:27 #1244 [Verbose] > "testEvent.EventInterface.Subscribe(System.Exception: error)"
00:00:27 #1245 [Verbose] > "4"
00:00:27 #1246 [Verbose] > "RemoveHandler"
00:00:27 #1247 [Verbose] > "IObservable.Dispose"
00:00:27 #1248 [Verbose] > ]]
00:00:28 #1249 [Verbose] >
00:00:28 #1250 [Verbose] > ╭─[ 439.02ms - stdout ]────────────────────────────────────────────────────────╮
00:00:28 #1251 [Verbose] > │ 00:00:00 #3 [Debug] runWithTimeoutChildAsync / timeout: 300 │
00:00:28 #1252 [Verbose] > │ <null> │
00:00:28 #1253 [Verbose] > │ [ 1, AddHandler, 2, IObservable.Subscribe, 3, │
00:00:28 #1254 [Verbose] > │ TestEvent.Subscribe(System.Exception: error), TestEvent.Iter(0: │
00:00:28 #1255 [Verbose] > │ System.Exception: error), │
00:00:28 #1256 [Verbose] > │ testEvent.EventInterface.Subscribe(System.Exception: error), 4, │
00:00:28 #1257 [Verbose] > │ RemoveHandler, IObservable.Dispose ] │
00:00:28 #1258 [Verbose] > │ │
00:00:28 #1259 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #1260 [Verbose] >
00:00:28 #1261 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:28 #1262 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:00:28 #1263 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:00:28 #1264 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:00:28 #1265 [Verbose] > let start = System.DateTime.Now.Ticks
00:00:28 #1266 [Verbose] > FSharp.Control.AsyncSeq.unfoldAsync
00:00:28 #1267 [Verbose] > (fun () -> async {
00:00:28 #1268 [Verbose] > do! tcs.Task |> Async.AwaitTask
00:00:28 #1269 [Verbose] > return Some (System.DateTime.Now.Ticks - start, ())
00:00:28 #1270 [Verbose] > })
00:00:28 #1271 [Verbose] > ()
00:00:28 #1272 [Verbose] >
00:00:28 #1273 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:28 #1274 [Verbose] > //// test
00:00:28 #1275 [Verbose] >
00:00:28 #1276 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:00:28 #1277 [Verbose] >
00:00:28 #1278 [Verbose] > async {
00:00:28 #1279 [Verbose] > let! child =
00:00:28 #1280 [Verbose] > cts.Token
00:00:28 #1281 [Verbose] > |> subscribeToken
00:00:28 #1282 [Verbose] > |> FSharp.Control.AsyncSeq.tryFirst
00:00:28 #1283 [Verbose] > |> Async.StartChild
00:00:28 #1284 [Verbose] >
00:00:28 #1285 [Verbose] > do! Async.Sleep 100
00:00:28 #1286 [Verbose] > cts.Cancel ()
00:00:28 #1287 [Verbose] > return! child
00:00:28 #1288 [Verbose] > }
00:00:28 #1289 [Verbose] > |> Async.RunSynchronously
00:00:28 #1290 [Verbose] > |> Option.get
00:00:28 #1291 [Verbose] > |> _isGreaterThan 900000
00:00:28 #1292 [Verbose] >
00:00:28 #1293 [Verbose] > ╭─[ 184.21ms - stdout ]────────────────────────────────────────────────────────╮
00:00:28 #1294 [Verbose] > │ 1166603 │
00:00:28 #1295 [Verbose] > │ │
00:00:28 #1296 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:30 #1297 [Verbose] > [NbConvertApp] Converting notebook AsyncSeq.dib.ipynb to html
00:00:30 #1298 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:30 #1299 [Verbose] > validate(nb)
00:00:30 #1300 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:30 #1301 [Verbose] > return _pygments_highlight(
00:00:30 #1302 [Verbose] > [NbConvertApp] Writing 302557 bytes to AsyncSeq.dib.html
00:00:31 #1303 [Debug] executeAsync / exitCode: 0 / output.Length: 18963
00:00:31 #1304 [Debug] main / executeCommand / exitCode: 0
00:00:31 #1305 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Common.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:33 #1306 [Verbose] >
00:00:33 #1307 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:33 #1308 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:33 #1309 [Verbose] > │ # Common (Polyglot) │
00:00:33 #1310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:34 #1311 [Verbose] >
00:00:34 #1312 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:34 #1313 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:34 #1314 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:34 #1315 [Verbose] >
00:00:34 #1316 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:34 #1317 [Verbose] > #r
00:00:34 #1318 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:34 #1319 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:34 #1320 [Verbose] > #r
00:00:34 #1321 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:34 #1322 [Verbose] > otNet.Interactive.dll"
00:00:34 #1323 [Verbose] > #r
00:00:34 #1324 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:34 #1325 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:34 #1326 [Verbose] > #r
00:00:34 #1327 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:34 #1328 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:34 #1329 [Verbose] > open System
00:00:34 #1330 [Verbose] > open System.IO
00:00:34 #1331 [Verbose] > open System.Text
00:00:34 #1332 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:37 #1333 [Verbose] >
00:00:37 #1334 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:37 #1335 [Verbose] > #r
00:00:37 #1336 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:37 #1337 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:37 #1338 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:37 #1339 [Verbose] > #r
00:00:37 #1340 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:37 #1341 [Verbose] > otNet.Interactive.dll"
00:00:37 #1342 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:37 #1343 [Verbose] >
00:00:37 #1344 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:37 #1345 [Verbose] > //// test
00:00:37 #1346 [Verbose] >
00:00:37 #1347 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:37 #1348 [Verbose] >
00:00:37 #1349 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:37 #1350 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:37 #1351 [Verbose] >
00:00:37 #1352 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:37 #1353 [Verbose] > //// test
00:00:37 #1354 [Verbose] >
00:00:37 #1355 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:37 #1356 [Verbose] > member _.Text =
00:00:37 #1357 [Verbose] > ex.ToString()
00:00:37 #1358 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:37 #1359 [Verbose] > .Replace("36m", "</span>")
00:00:37 #1360 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:37 #1361 [Verbose] > .Replace("\n", "<br/>\n")
00:00:37 #1362 [Verbose] >
00:00:37 #1363 [Verbose] >
00:00:37 #1364 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:37 #1365 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:38 #1366 [Verbose] >
00:00:38 #1367 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:38 #1368 [Verbose] > //// test
00:00:38 #1369 [Verbose] >
00:00:38 #1370 [Verbose] > let inline __expect fn log expected actual =
00:00:38 #1371 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:38 #1372 [Verbose] > try
00:00:38 #1373 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:38 #1374 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:38 #1375 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:38 #1376 [Verbose] > failwith (ex.GetType().FullName)
00:00:38 #1377 [Verbose] >
00:00:38 #1378 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:38 #1379 [Verbose] > expected actual
00:00:38 #1380 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:38 #1381 [Verbose] >
00:00:38 #1382 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:38 #1383 [Verbose] > expected actual
00:00:38 #1384 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:38 #1385 [Verbose] >
00:00:38 #1386 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:38 #1387 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:38 #1388 [Verbose] >
00:00:38 #1389 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:38 #1390 [Verbose] > //// test
00:00:38 #1391 [Verbose] >
00:00:38 #1392 [Verbose] > let inline __isBetween log a b actual =
00:00:38 #1393 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:38 #1394 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:38 #1395 [Verbose] > __isLessThanOrEqual log b actual
00:00:38 #1396 [Verbose] > __expect isBetween log (a, b) actual
00:00:38 #1397 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:38 #1398 [Verbose] >
00:00:38 #1399 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:38 #1400 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:38 #1401 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:38 #1402 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:38 #1403 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:38 #1404 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:38 #1405 [Verbose] >
00:00:38 #1406 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:38 #1407 [Verbose] > type [[<Struct>]] US0 =
00:00:38 #1408 [Verbose] > | US0_0
00:00:38 #1409 [Verbose] > | US0_1
00:00:38 #1410 [Verbose] > | US0_2
00:00:38 #1411 [Verbose] > | US0_3
00:00:38 #1412 [Verbose] > and [[<Struct>]] US1 =
00:00:38 #1413 [Verbose] > | US1_0 of f0_0 : US0
00:00:38 #1414 [Verbose] > | US1_1 of f1_0 : US0
00:00:38 #1415 [Verbose] > and [[<Struct>]] US2 =
00:00:38 #1416 [Verbose] > | US2_0
00:00:38 #1417 [Verbose] > | US2_1
00:00:38 #1418 [Verbose] > and [[<Struct>]] US3 =
00:00:38 #1419 [Verbose] > | US3_0 of f0_0 : US2
00:00:38 #1420 [Verbose] > | US3_1
00:00:38 #1421 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:38 #1422 [Verbose] > let v1 : System.IDisposable option = None
00:00:38 #1423 [Verbose] > let mutable _v1 = v1
00:00:38 #1424 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:00:38 #1425 [Verbose] > let v2 : US0 = US0_0
00:00:38 #1426 [Verbose] > let v3 : US1 = US1_0(v2)
00:00:38 #1427 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:00:38 #1428 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:00:38 #1429 [Verbose] > v5
00:00:38 #1430 [Verbose] > #endif
00:00:38 #1431 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:38 #1432 [Verbose] > let v6 : US0 = US0_2
00:00:38 #1433 [Verbose] > let v7 : US1 = US1_0(v6)
00:00:38 #1434 [Verbose] > let v8 : string = $"new_dispos...
00:00:39 #1435 [Verbose] >
00:00:39 #1436 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:39 #1437 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:39 #1438 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:39 #1439 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:39 #1440 [Verbose] > let v2 : bool = v1.Contains v0
00:00:39 #1441 [Verbose] > v2
00:00:39 #1442 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:39 #1443 [Verbose] > closure1(v0)
00:00:39 #1444 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:39 #1445 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:39 #1446 [Verbose] > v2
00:00:39 #1447 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:39 #1448 [Verbose] > closure3(v0)
00:00:39 #1449 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:39 #1450 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:39 #1451 [Verbose] > v3
00:00:39 #1452 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:39 #1453 [Verbose] > closure6(v0, v1)
00:00:39 #1454 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:39 #1455 [Verbose] > closure5(v0)
00:00:39 #1456 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:39 #1457 [Verbose] > let v2 : stri...
00:00:40 #1458 [Verbose] >
00:00:40 #1459 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:40 #1460 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:40 #1461 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:40 #1462 [Verbose] > let v3 : string = v2 v0
00:00:40 #1463 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:40 #1464 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:40 #1465 [Verbose] > v5
00:00:40 #1466 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:40 #1467 [Verbose] > closure1(v0)
00:00:40 #1468 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:40 #1469 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:40 #1470 [Verbose] > v3
00:00:40 #1471 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:40 #1472 [Verbose] > closure5(v0, v1)
00:00:40 #1473 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:40 #1474 [Verbose] > closure4(v0)
00:00:40 #1475 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:40 #1476 [Verbose] > closure3()
00:00:40 #1477 [Verbose] > and closure2 (...
00:00:40 #1478 [Verbose] >
00:00:40 #1479 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:40 #1480 [Verbose] > #if FABLE_COMPILER // file_system.types
00:00:40 #1481 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:00:40 #1482 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:00:40 #1483 [Verbose] > base64_DecodeError = class end
00:00:40 #1484 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:00:40 #1485 [Verbose] > = class end
00:00:40 #1486 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:00:40 #1487 [Verbose] > = class end
00:00:40 #1488 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:00:40 #1489 [Verbose] > serde_json_Error = class end
00:00:40 #1490 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:00:40 #1491 [Verbose] > serde_json_Value = class end
00:00:40 #1492 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:00:40 #1493 [Verbose] > serde_wasm_bindgen_Error = class end
00:00:40 #1494 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:00:40 #1495 [Verbose] >
00:00:40 #1496 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:40 #1497 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:00:40 #1498 [Verbose] > module SpiralDateTime =
00:00:40 #1499 [Verbose] > let format x =
00:00:40 #1500 [Verbose] > #if !INTERACTIVE
00:00:40 #1501 [Verbose] > Date_time.format x
00:00:40 #1502 [Verbose] > #else
00:00:40 #1503 [Verbose] > format x
00:00:40 #1504 [Verbose] > #endif
00:00:40 #1505 [Verbose] >
00:00:40 #1506 [Verbose] > let format_iso8601 x =
00:00:40 #1507 [Verbose] > #if !INTERACTIVE
00:00:40 #1508 [Verbose] > Date_time.format_iso8601 x
00:00:40 #1509 [Verbose] > #else
00:00:40 #1510 [Verbose] > format_iso8601 x
00:00:40 #1511 [Verbose] > #endif
00:00:40 #1512 [Verbose] >
00:00:40 #1513 [Verbose] > let new_guid_from_date_time x =
00:00:40 #1514 [Verbose] > #if !INTERACTIVE
00:00:40 #1515 [Verbose] > Date_time.new_guid_from_date_time x
00:00:40 #1516 [Verbose] > #else
00:00:40 #1517 [Verbose] > new_guid_from_date_time x
00:00:40 #1518 [Verbose] > #endif
00:00:40 #1519 [Verbose] >
00:00:40 #1520 [Verbose] > #endif
00:00:40 #1521 [Verbose] >
00:00:40 #1522 [Verbose] > module SpiralSm =
00:00:40 #1523 [Verbose] > let concat x =
00:00:40 #1524 [Verbose] > #if !INTERACTIVE
00:00:40 #1525 [Verbose] > Sm.concat x
00:00:40 #1526 [Verbose] > #else
00:00:40 #1527 [Verbose] > concat x
00:00:40 #1528 [Verbose] > #endif
00:00:40 #1529 [Verbose] >
00:00:40 #1530 [Verbose] > let contains x =
00:00:40 #1531 [Verbose] > #if !INTERACTIVE
00:00:40 #1532 [Verbose] > Sm.contains x
00:00:40 #1533 [Verbose] > #else
00:00:40 #1534 [Verbose] > contains x
00:00:40 #1535 [Verbose] > #endif
00:00:40 #1536 [Verbose] >
00:00:40 #1537 [Verbose] > let ellipsis x =
00:00:40 #1538 [Verbose] > #if !INTERACTIVE
00:00:40 #1539 [Verbose] > Sm.ellipsis x
00:00:40 #1540 [Verbose] > #else
00:00:40 #1541 [Verbose] > ellipsis x
00:00:40 #1542 [Verbose] > #endif
00:00:40 #1543 [Verbose] >
00:00:40 #1544 [Verbose] > let ellipsis_end x =
00:00:40 #1545 [Verbose] > #if...
00:00:40 #1546 [Verbose] >
00:00:40 #1547 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1548 [Verbose] > #if !INTERACTIVE
00:00:40 #1549 [Verbose] > open Lib
00:00:40 #1550 [Verbose] > #endif
00:00:40 #1551 [Verbose] >
00:00:40 #1552 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1553 [Verbose] > let nl = System.Environment.NewLine
00:00:40 #1554 [Verbose] > let q = @""""
00:00:40 #1555 [Verbose] >
00:00:40 #1556 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1557 [Verbose] > let inline cons head tail = head :: tail
00:00:40 #1558 [Verbose] >
00:00:40 #1559 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:40 #1560 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:40 #1561 [Verbose] > │ ## memoize │
00:00:40 #1562 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:40 #1563 [Verbose] >
00:00:40 #1564 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1565 [Verbose] > let inline memoize fn =
00:00:40 #1566 [Verbose] > let result = lazy fn ()
00:00:40 #1567 [Verbose] > fun () -> result.Value
00:00:40 #1568 [Verbose] >
00:00:40 #1569 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:40 #1570 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:40 #1571 [Verbose] > │ ## TraceLevel │
00:00:40 #1572 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:40 #1573 [Verbose] >
00:00:40 #1574 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1575 [Verbose] > type TraceLevel =
00:00:40 #1576 [Verbose] > | Verbose
00:00:40 #1577 [Verbose] > | Debug
00:00:40 #1578 [Verbose] > | Info
00:00:40 #1579 [Verbose] > | Warning
00:00:40 #1580 [Verbose] > | Critical
00:00:40 #1581 [Verbose] >
00:00:40 #1582 [Verbose] > let inline getLocals () = ""
00:00:40 #1583 [Verbose] >
00:00:40 #1584 [Verbose] > let mutable traceEnabled = true
00:00:40 #1585 [Verbose] > let mutable traceCount = 0
00:00:40 #1586 [Verbose] > let mutable traceLevel = Verbose
00:00:40 #1587 [Verbose] > let mutable traceDump = false
00:00:40 #1588 [Verbose] >
00:00:40 #1589 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1590 [Verbose] > let testTraceLevel level =
00:00:40 #1591 [Verbose] > traceEnabled && level >= traceLevel
00:00:40 #1592 [Verbose] >
00:00:40 #1593 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:40 #1594 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:40 #1595 [Verbose] > │ ## traceRaw │
00:00:40 #1596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:40 #1597 [Verbose] >
00:00:40 #1598 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1599 [Verbose] > let rec traceRaw level fn =
00:00:40 #1600 [Verbose] > if level |> testTraceLevel then
00:00:40 #1601 [Verbose] > traceCount <- traceCount + 1
00:00:40 #1602 [Verbose] >
00:00:40 #1603 [Verbose] > let text = $"%s{fn ()}"
00:00:40 #1604 [Verbose] > #if FABLE_COMPILER_RUST
00:00:40 #1605 [Verbose] > Fable.Core.RustInterop.emitRustExpr () @"println!(""{}"", text)"
00:00:40 #1606 [Verbose] > #else
00:00:40 #1607 [Verbose] > System.Console.WriteLine text
00:00:40 #1608 [Verbose] > #endif
00:00:40 #1609 [Verbose] >
00:00:40 #1610 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:00:40 #1611 [Verbose] > if traceDump then
00:00:40 #1612 [Verbose] > try
00:00:40 #1613 [Verbose] > let tmpPath = System.IO.Path.GetTempPath ()
00:00:40 #1614 [Verbose] > let logDir = System.IO.Path.Combine (tmpPath, "!polyglot")
00:00:40 #1615 [Verbose] > System.IO.Directory.CreateDirectory logDir |> ignore
00:00:40 #1616 [Verbose] > let logFile = System.IO.Path.Combine (logDir,
00:00:40 #1617 [Verbose] > $"{SpiralDateTime.new_guid_from_date_time System.DateTime.Now}.txt")
00:00:40 #1618 [Verbose] > System.IO.File.WriteAllTextAsync (logFile, text) |>
00:00:40 #1619 [Verbose] > Async.AwaitTask |> Async.RunSynchronously
00:00:40 #1620 [Verbose] > with ex ->
00:00:40 #1621 [Verbose] > traceRaw Critical (fun () -> $"trace / ex: {ex |>
00:00:40 #1622 [Verbose] > SpiralSm.format_exception}")
00:00:40 #1623 [Verbose] > #endif
00:00:40 #1624 [Verbose] >
00:00:40 #1625 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1626 [Verbose] > //// test
00:00:40 #1627 [Verbose] >
00:00:40 #1628 [Verbose] > traceRaw Debug (fun () -> "test")
00:00:40 #1629 [Verbose] >
00:00:40 #1630 [Verbose] > ╭─[ 11.70ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:40 #1631 [Verbose] > │ test │
00:00:40 #1632 [Verbose] > │ │
00:00:40 #1633 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:40 #1634 [Verbose] >
00:00:40 #1635 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:40 #1636 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:40 #1637 [Verbose] > │ ## trace │
00:00:40 #1638 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:40 #1639 [Verbose] >
00:00:40 #1640 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1641 [Verbose] > let private replStart =
00:00:40 #1642 [Verbose] > #if INTERACTIVE || !FABLE_COMPILER
00:00:40 #1643 [Verbose] > fun () ->
00:00:40 #1644 [Verbose] > if System.Reflection.Assembly.GetEntryAssembly().GetName().Name <>
00:00:40 #1645 [Verbose] > "Microsoft.DotNet.Interactive.App"
00:00:40 #1646 [Verbose] > then Some System.DateTime.Now.Ticks
00:00:40 #1647 [Verbose] > else None
00:00:40 #1648 [Verbose] > |> memoize
00:00:40 #1649 [Verbose] > #else
00:00:40 #1650 [Verbose] > fun () -> None : int64 option
00:00:40 #1651 [Verbose] > #endif
00:00:40 #1652 [Verbose] >
00:00:40 #1653 [Verbose] > let trace level fn getLocals =
00:00:40 #1654 [Verbose] > fun () ->
00:00:40 #1655 [Verbose] > let time =
00:00:40 #1656 [Verbose] > #if WASM || CONTRACT
00:00:40 #1657 [Verbose] > ""
00:00:40 #1658 [Verbose] > #else
00:00:40 #1659 [Verbose] > match replStart () with
00:00:40 #1660 [Verbose] > | Some replStart ->
00:00:40 #1661 [Verbose] > let t = System.DateTime.Now.Ticks - replStart |> System.TimeSpan
00:00:40 #1662 [Verbose] > System.DateTime (1, 1, 1, t.Hours, t.Minutes, t.Seconds,
00:00:40 #1663 [Verbose] > t.Milliseconds)
00:00:40 #1664 [Verbose] > | None -> System.DateTime.Now
00:00:40 #1665 [Verbose] > |> fun dateTime ->
00:00:40 #1666 [Verbose] > #if FABLE_COMPILER_RUST
00:00:40 #1667 [Verbose] > "hh:mm:ss"
00:00:40 #1668 [Verbose] > #else
00:00:40 #1669 [Verbose] > "HH:mm:ss"
00:00:40 #1670 [Verbose] > #endif
00:00:40 #1671 [Verbose] > |> dateTime.ToString
00:00:40 #1672 [Verbose] > #endif
00:00:40 #1673 [Verbose] > $"{time} #{traceCount} [[%A{level}]] %s{fn ()} / %s{getLocals ()}"
00:00:40 #1674 [Verbose] > |> SpiralSm.trim_start [[||]]
00:00:40 #1675 [Verbose] > |> SpiralSm.trim_end [[| ' '; '/' |]]
00:00:40 #1676 [Verbose] > |> traceRaw level
00:00:40 #1677 [Verbose] >
00:00:40 #1678 [Verbose] > let inline withTrace enabled fn =
00:00:40 #1679 [Verbose] > let oldTraceEnabled = traceEnabled
00:00:40 #1680 [Verbose] > try
00:00:40 #1681 [Verbose] > traceEnabled <- enabled
00:00:40 #1682 [Verbose] > fn ()
00:00:40 #1683 [Verbose] > finally
00:00:40 #1684 [Verbose] > traceEnabled <- oldTraceEnabled
00:00:40 #1685 [Verbose] >
00:00:40 #1686 [Verbose] > let inline withTraceEnabled fn =
00:00:40 #1687 [Verbose] > withTrace true fn
00:00:40 #1688 [Verbose] >
00:00:40 #1689 [Verbose] > let inline withTraceDisabled fn =
00:00:40 #1690 [Verbose] > withTrace false fn
00:00:40 #1691 [Verbose] >
00:00:40 #1692 [Verbose] > let inline withTraceLevel level fn =
00:00:40 #1693 [Verbose] > let oldTraceLevel = traceLevel
00:00:40 #1694 [Verbose] > try
00:00:40 #1695 [Verbose] > traceLevel <- level
00:00:40 #1696 [Verbose] > fn ()
00:00:40 #1697 [Verbose] > finally
00:00:40 #1698 [Verbose] > traceLevel <- oldTraceLevel
00:00:40 #1699 [Verbose] >
00:00:40 #1700 [Verbose] > let inline withTraceDump dump fn =
00:00:40 #1701 [Verbose] > let oldTraceDump = traceDump
00:00:40 #1702 [Verbose] > try
00:00:40 #1703 [Verbose] > traceDump <- dump
00:00:40 #1704 [Verbose] > fn ()
00:00:40 #1705 [Verbose] > finally
00:00:40 #1706 [Verbose] > traceDump <- oldTraceDump
00:00:40 #1707 [Verbose] >
00:00:40 #1708 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:40 #1709 [Verbose] > //// test
00:00:40 #1710 [Verbose] >
00:00:40 #1711 [Verbose] > trace Debug (fun () -> "test") getLocals
00:00:40 #1712 [Verbose] >
00:00:40 #1713 [Verbose] > ╭─[ 28.74ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:40 #1714 [Verbose] > │ 00:00:00 #2 [Debug] test │
00:00:40 #1715 [Verbose] > │ │
00:00:40 #1716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #1717 [Verbose] > [NbConvertApp] Converting notebook Common.dib.ipynb to html
00:00:42 #1718 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:42 #1719 [Verbose] > validate(nb)
00:00:43 #1720 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:43 #1721 [Verbose] > return _pygments_highlight(
00:00:43 #1722 [Verbose] > [NbConvertApp] Writing 294787 bytes to Common.dib.html
00:00:44 #1723 [Debug] executeAsync / exitCode: 0 / output.Length: 14717
00:00:44 #1724 [Debug] main / executeCommand / exitCode: 0
00:00:44 #1725 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 CommonFSharp.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:46 #1726 [Verbose] >
00:00:46 #1727 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:46 #1728 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:46 #1729 [Verbose] > │ # CommonFSharp (Polyglot) │
00:00:46 #1730 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #1731 [Verbose] >
00:00:46 #1732 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:46 #1733 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:46 #1734 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:46 #1735 [Verbose] >
00:00:46 #1736 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:46 #1737 [Verbose] > #r
00:00:46 #1738 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:46 #1739 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:46 #1740 [Verbose] > #r
00:00:46 #1741 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:46 #1742 [Verbose] > otNet.Interactive.dll"
00:00:46 #1743 [Verbose] > #r
00:00:46 #1744 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:46 #1745 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:46 #1746 [Verbose] > #r
00:00:46 #1747 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:46 #1748 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:46 #1749 [Verbose] > open System
00:00:46 #1750 [Verbose] > open System.IO
00:00:46 #1751 [Verbose] > open System.Text
00:00:46 #1752 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:49 #1753 [Verbose] >
00:00:49 #1754 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:49 #1755 [Verbose] > #r
00:00:49 #1756 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:49 #1757 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:49 #1758 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:49 #1759 [Verbose] > #r
00:00:49 #1760 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:49 #1761 [Verbose] > otNet.Interactive.dll"
00:00:49 #1762 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:49 #1763 [Verbose] >
00:00:49 #1764 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:49 #1765 [Verbose] > //// test
00:00:49 #1766 [Verbose] >
00:00:49 #1767 [Verbose] > Formatter.ListExpansionLimit <- 100
00:00:50 #1768 [Verbose] >
00:00:50 #1769 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:50 #1770 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:00:50 #1771 [Verbose] >
00:00:50 #1772 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:50 #1773 [Verbose] > //// test
00:00:50 #1774 [Verbose] >
00:00:50 #1775 [Verbose] > type AssertExceptionFormatter (ex) =
00:00:50 #1776 [Verbose] > member _.Text =
00:00:50 #1777 [Verbose] > ex.ToString()
00:00:50 #1778 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:00:50 #1779 [Verbose] > .Replace("36m", "</span>")
00:00:50 #1780 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:00:50 #1781 [Verbose] > .Replace("\n", "<br/>\n")
00:00:50 #1782 [Verbose] >
00:00:50 #1783 [Verbose] >
00:00:50 #1784 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:00:50 #1785 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:00:51 #1786 [Verbose] >
00:00:51 #1787 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:51 #1788 [Verbose] > //// test
00:00:51 #1789 [Verbose] >
00:00:51 #1790 [Verbose] > let inline __expect fn log expected actual =
00:00:51 #1791 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:00:51 #1792 [Verbose] > try
00:00:51 #1793 [Verbose] > "Testing.__expect" |> fn actual expected
00:00:51 #1794 [Verbose] > with :? Expecto.AssertException as ex ->
00:00:51 #1795 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:00:51 #1796 [Verbose] > failwith (ex.GetType().FullName)
00:00:51 #1797 [Verbose] >
00:00:51 #1798 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:00:51 #1799 [Verbose] > expected actual
00:00:51 #1800 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:00:51 #1801 [Verbose] >
00:00:51 #1802 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:00:51 #1803 [Verbose] > expected actual
00:00:51 #1804 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:00:51 #1805 [Verbose] >
00:00:51 #1806 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:00:51 #1807 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:00:51 #1808 [Verbose] >
00:00:51 #1809 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:51 #1810 [Verbose] > //// test
00:00:51 #1811 [Verbose] >
00:00:51 #1812 [Verbose] > let inline __isBetween log a b actual =
00:00:51 #1813 [Verbose] > let inline isBetween actual (a, b) _ =
00:00:51 #1814 [Verbose] > __isGreaterThanOrEqual log a actual
00:00:51 #1815 [Verbose] > __isLessThanOrEqual log b actual
00:00:51 #1816 [Verbose] > __expect isBetween log (a, b) actual
00:00:51 #1817 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:00:51 #1818 [Verbose] >
00:00:51 #1819 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:51 #1820 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:51 #1821 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:51 #1822 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:51 #1823 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:51 #1824 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:51 #1825 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:00:51 #1826 [Verbose] >
00:00:51 #1827 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:51 #1828 [Verbose] > type [[<Struct>]] US0 =
00:00:51 #1829 [Verbose] > | US0_0
00:00:51 #1830 [Verbose] > | US0_1
00:00:51 #1831 [Verbose] > | US0_2
00:00:51 #1832 [Verbose] > | US0_3
00:00:51 #1833 [Verbose] > and [[<Struct>]] US1 =
00:00:51 #1834 [Verbose] > | US1_0 of f0_0 : US0
00:00:51 #1835 [Verbose] > | US1_1 of f1_0 : US0
00:00:51 #1836 [Verbose] > and [[<Struct>]] US2 =
00:00:51 #1837 [Verbose] > | US2_0
00:00:51 #1838 [Verbose] > | US2_1
00:00:51 #1839 [Verbose] > and [[<Struct>]] US3 =
00:00:51 #1840 [Verbose] > | US3_0 of f0_0 : US2
00:00:51 #1841 [Verbose] > | US3_1
00:00:51 #1842 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:51 #1843 [Verbose] > let v1 : System.IDisposable option = None
00:00:51 #1844 [Verbose] > let mutable _v1 = v1
00:00:51 #1845 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:00:51 #1846 [Verbose] > let v2 : US0 = US0_0
00:00:51 #1847 [Verbose] > let v3 : US1 = US1_0(v2)
00:00:51 #1848 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:00:51 #1849 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:00:51 #1850 [Verbose] > v5
00:00:51 #1851 [Verbose] > #endif
00:00:51 #1852 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:51 #1853 [Verbose] > let v6 : US0 = US0_2
00:00:51 #1854 [Verbose] > let v7 : US1 = US1_0(v6)
00:00:51 #1855 [Verbose] > let v8 : string = $"new_dispos...
00:00:52 #1856 [Verbose] >
00:00:52 #1857 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:52 #1858 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:52 #1859 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:52 #1860 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:52 #1861 [Verbose] > let v2 : bool = v1.Contains v0
00:00:52 #1862 [Verbose] > v2
00:00:52 #1863 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:52 #1864 [Verbose] > closure1(v0)
00:00:52 #1865 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:52 #1866 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:52 #1867 [Verbose] > v2
00:00:52 #1868 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:52 #1869 [Verbose] > closure3(v0)
00:00:52 #1870 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:52 #1871 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:52 #1872 [Verbose] > v3
00:00:52 #1873 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:52 #1874 [Verbose] > closure6(v0, v1)
00:00:52 #1875 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:52 #1876 [Verbose] > closure5(v0)
00:00:52 #1877 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:52 #1878 [Verbose] > let v2 : stri...
00:00:52 #1879 [Verbose] >
00:00:52 #1880 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:52 #1881 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:52 #1882 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:52 #1883 [Verbose] > let v3 : string = v2 v0
00:00:52 #1884 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:52 #1885 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:52 #1886 [Verbose] > v5
00:00:52 #1887 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:52 #1888 [Verbose] > closure1(v0)
00:00:52 #1889 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:52 #1890 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:52 #1891 [Verbose] > v3
00:00:52 #1892 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:52 #1893 [Verbose] > closure5(v0, v1)
00:00:52 #1894 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:52 #1895 [Verbose] > closure4(v0)
00:00:52 #1896 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:52 #1897 [Verbose] > closure3()
00:00:52 #1898 [Verbose] > and closure2 (...
00:00:52 #1899 [Verbose] >
00:00:52 #1900 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:52 #1901 [Verbose] > #if FABLE_COMPILER // file_system.types
00:00:52 #1902 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:00:52 #1903 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:00:52 #1904 [Verbose] > base64_DecodeError = class end
00:00:52 #1905 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:00:52 #1906 [Verbose] > = class end
00:00:52 #1907 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:00:52 #1908 [Verbose] > = class end
00:00:52 #1909 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:00:52 #1910 [Verbose] > serde_json_Error = class end
00:00:52 #1911 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:00:52 #1912 [Verbose] > serde_json_Value = class end
00:00:52 #1913 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:00:52 #1914 [Verbose] > serde_wasm_bindgen_Error = class end
00:00:52 #1915 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:00:52 #1916 [Verbose] >
00:00:52 #1917 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:52 #1918 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:00:52 #1919 [Verbose] > module SpiralDateTime =
00:00:52 #1920 [Verbose] > let format x =
00:00:52 #1921 [Verbose] > #if !INTERACTIVE
00:00:52 #1922 [Verbose] > Date_time.format x
00:00:52 #1923 [Verbose] > #else
00:00:52 #1924 [Verbose] > format x
00:00:52 #1925 [Verbose] > #endif
00:00:52 #1926 [Verbose] >
00:00:52 #1927 [Verbose] > let format_iso8601 x =
00:00:52 #1928 [Verbose] > #if !INTERACTIVE
00:00:52 #1929 [Verbose] > Date_time.format_iso8601 x
00:00:52 #1930 [Verbose] > #else
00:00:52 #1931 [Verbose] > format_iso8601 x
00:00:52 #1932 [Verbose] > #endif
00:00:52 #1933 [Verbose] >
00:00:52 #1934 [Verbose] > let new_guid_from_date_time x =
00:00:52 #1935 [Verbose] > #if !INTERACTIVE
00:00:52 #1936 [Verbose] > Date_time.new_guid_from_date_time x
00:00:52 #1937 [Verbose] > #else
00:00:52 #1938 [Verbose] > new_guid_from_date_time x
00:00:52 #1939 [Verbose] > #endif
00:00:52 #1940 [Verbose] >
00:00:52 #1941 [Verbose] > #endif
00:00:52 #1942 [Verbose] >
00:00:52 #1943 [Verbose] > module SpiralSm =
00:00:52 #1944 [Verbose] > let concat x =
00:00:52 #1945 [Verbose] > #if !INTERACTIVE
00:00:52 #1946 [Verbose] > Sm.concat x
00:00:52 #1947 [Verbose] > #else
00:00:52 #1948 [Verbose] > concat x
00:00:52 #1949 [Verbose] > #endif
00:00:52 #1950 [Verbose] >
00:00:52 #1951 [Verbose] > let contains x =
00:00:52 #1952 [Verbose] > #if !INTERACTIVE
00:00:52 #1953 [Verbose] > Sm.contains x
00:00:52 #1954 [Verbose] > #else
00:00:52 #1955 [Verbose] > contains x
00:00:52 #1956 [Verbose] > #endif
00:00:52 #1957 [Verbose] >
00:00:52 #1958 [Verbose] > let ellipsis x =
00:00:52 #1959 [Verbose] > #if !INTERACTIVE
00:00:52 #1960 [Verbose] > Sm.ellipsis x
00:00:52 #1961 [Verbose] > #else
00:00:52 #1962 [Verbose] > ellipsis x
00:00:52 #1963 [Verbose] > #endif
00:00:52 #1964 [Verbose] >
00:00:52 #1965 [Verbose] > let ellipsis_end x =
00:00:52 #1966 [Verbose] > #if...
00:00:53 #1967 [Verbose] >
00:00:53 #1968 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:53 #1969 [Verbose] > #if !INTERACTIVE
00:00:53 #1970 [Verbose] > namespace Polyglot
00:00:53 #1971 [Verbose] > #endif
00:00:53 #1972 [Verbose] >
00:00:53 #1973 [Verbose] > module Common =
00:00:53 #1974 [Verbose] >
00:00:53 #1975 [Verbose] > #if !INTERACTIVE
00:00:53 #1976 [Verbose] > open Lib
00:00:53 #1977 [Verbose] > #endif
00:00:53 #1978 [Verbose] >
00:00:53 #1979 [Verbose] > let nl = System.Environment.NewLine
00:00:53 #1980 [Verbose] > let q = @""""
00:00:53 #1981 [Verbose] >
00:00:53 #1982 [Verbose] > let inline cons head tail = head :: tail
00:00:53 #1983 [Verbose] >
00:00:53 #1984 [Verbose] > /// ## memoize
00:00:53 #1985 [Verbose] >
00:00:53 #1986 [Verbose] > let inline memoize fn =
00:00:53 #1987 [Verbose] > let result = lazy fn ()
00:00:53 #1988 [Verbose] > fun () -> result.Value
00:00:53 #1989 [Verbose] >
00:00:53 #1990 [Verbose] > /// ## TraceLevel
00:00:53 #1991 [Verbose] >
00:00:53 #1992 [Verbose] > type TraceLevel =
00:00:53 #1993 [Verbose] > | Verbose
00:00:53 #1994 [Verbose] > | Debug
00:00:53 #1995 [Verbose] > | Info
00:00:53 #1996 [Verbose] > | Warning
00:00:53 #1997 [Verbose] > | Critical
00:00:53 #1998 [Verbose] >
00:00:53 #1999 [Verbose] > let inline getLocals () = ""
00:00:53 #2000 [Verbose] >
00:00:53 #2001 [Verbose] > let mutable traceEnabled = true
00:00:53 #2002 [Verbose] > let mutable traceCount = 0
00:00:53 #2003 [Verbose] > let mutable traceLevel = Verbose
00:00:53 #2004 [Verbose] > let mutable traceDump = false
00:00:53 #2005 [Verbose] >
00:00:53 #2006 [Verbose] > let testTraceLevel level =
00:00:53 #2007 [Verbose] > traceEnabled && level >= traceLevel
00:00:53 #2008 [Verbose] >
00:00:53 #2009 [Verbose] > /// ## traceRaw
00:00:53 #2010 [Verbose] >
00:00:53 #2011 [Verbose] > let rec traceRaw level fn =
00:00:53 #2012 [Verbose] > ...
00:00:53 #2013 [Verbose] >
00:00:53 #2014 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:53 #2015 [Verbose] > open Common
00:00:53 #2016 [Verbose] >
00:00:53 #2017 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:53 #2018 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:53 #2019 [Verbose] > │ ## getUnionCaseName │
00:00:53 #2020 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #2021 [Verbose] >
00:00:53 #2022 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:53 #2023 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:00:53 #2024 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:00:53 #2025 [Verbose] > | case, _ -> case.Name
00:00:53 #2026 [Verbose] >
00:00:53 #2027 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:53 #2028 [Verbose] > //// test
00:00:53 #2029 [Verbose] >
00:00:53 #2030 [Verbose] > TraceLevel.Critical
00:00:53 #2031 [Verbose] > |> getUnionCaseName
00:00:53 #2032 [Verbose] > |> _assertEqual (nameof TraceLevel.Critical)
00:00:53 #2033 [Verbose] >
00:00:53 #2034 [Verbose] > ╭─[ 52.73ms - stdout ]─────────────────────────────────────────────────────────╮
00:00:53 #2035 [Verbose] > │ Critical │
00:00:53 #2036 [Verbose] > │ │
00:00:53 #2037 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:54 #2038 [Verbose] > [NbConvertApp] Converting notebook CommonFSharp.dib.ipynb to html
00:00:54 #2039 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:54 #2040 [Verbose] > validate(nb)
00:00:55 #2041 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:55 #2042 [Verbose] > return _pygments_highlight(
00:00:55 #2043 [Verbose] > [NbConvertApp] Writing 275894 bytes to CommonFSharp.dib.html
00:00:56 #2044 [Debug] executeAsync / exitCode: 0 / output.Length: 10757
00:00:56 #2045 [Debug] main / executeCommand / exitCode: 0
00:00:56 #2046 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Threading.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:58 #2047 [Verbose] >
00:00:58 #2048 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:58 #2049 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:58 #2050 [Verbose] > │ # Threading (Polyglot) │
00:00:58 #2051 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:58 #2052 [Verbose] >
00:00:58 #2053 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:58 #2054 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:00:58 #2055 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:00:58 #2056 [Verbose] >
00:00:58 #2057 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:58 #2058 [Verbose] > #r
00:00:58 #2059 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:58 #2060 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:58 #2061 [Verbose] > #r
00:00:58 #2062 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:58 #2063 [Verbose] > otNet.Interactive.dll"
00:00:58 #2064 [Verbose] > #r
00:00:58 #2065 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:58 #2066 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:58 #2067 [Verbose] > #r
00:00:58 #2068 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:58 #2069 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:58 #2070 [Verbose] > open System
00:00:58 #2071 [Verbose] > open System.IO
00:00:58 #2072 [Verbose] > open System.Text
00:00:58 #2073 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:01:02 #2074 [Verbose] >
00:01:02 #2075 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:02 #2076 [Verbose] > #r
00:01:02 #2077 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:02 #2078 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:02 #2079 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:01:02 #2080 [Verbose] > #r
00:01:02 #2081 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:02 #2082 [Verbose] > otNet.Interactive.dll"
00:01:02 #2083 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:01:02 #2084 [Verbose] >
00:01:02 #2085 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:02 #2086 [Verbose] > //// test
00:01:02 #2087 [Verbose] >
00:01:02 #2088 [Verbose] > Formatter.ListExpansionLimit <- 100
00:01:02 #2089 [Verbose] >
00:01:02 #2090 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:02 #2091 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:01:02 #2092 [Verbose] >
00:01:02 #2093 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:02 #2094 [Verbose] > //// test
00:01:02 #2095 [Verbose] >
00:01:02 #2096 [Verbose] > type AssertExceptionFormatter (ex) =
00:01:02 #2097 [Verbose] > member _.Text =
00:01:02 #2098 [Verbose] > ex.ToString()
00:01:02 #2099 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:01:02 #2100 [Verbose] > .Replace("36m", "</span>")
00:01:02 #2101 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:01:02 #2102 [Verbose] > .Replace("\n", "<br/>\n")
00:01:02 #2103 [Verbose] >
00:01:02 #2104 [Verbose] >
00:01:02 #2105 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:01:02 #2106 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:01:03 #2107 [Verbose] >
00:01:03 #2108 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:03 #2109 [Verbose] > //// test
00:01:03 #2110 [Verbose] >
00:01:03 #2111 [Verbose] > let inline __expect fn log expected actual =
00:01:03 #2112 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:01:03 #2113 [Verbose] > try
00:01:03 #2114 [Verbose] > "Testing.__expect" |> fn actual expected
00:01:03 #2115 [Verbose] > with :? Expecto.AssertException as ex ->
00:01:03 #2116 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:01:03 #2117 [Verbose] > failwith (ex.GetType().FullName)
00:01:03 #2118 [Verbose] >
00:01:03 #2119 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:01:03 #2120 [Verbose] > expected actual
00:01:03 #2121 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:01:03 #2122 [Verbose] >
00:01:03 #2123 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:01:03 #2124 [Verbose] > expected actual
00:01:03 #2125 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:01:03 #2126 [Verbose] >
00:01:03 #2127 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:01:03 #2128 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:01:03 #2129 [Verbose] >
00:01:03 #2130 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:03 #2131 [Verbose] > //// test
00:01:03 #2132 [Verbose] >
00:01:03 #2133 [Verbose] > let inline __isBetween log a b actual =
00:01:03 #2134 [Verbose] > let inline isBetween actual (a, b) _ =
00:01:03 #2135 [Verbose] > __isGreaterThanOrEqual log a actual
00:01:03 #2136 [Verbose] > __isLessThanOrEqual log b actual
00:01:03 #2137 [Verbose] > __expect isBetween log (a, b) actual
00:01:03 #2138 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:01:03 #2139 [Verbose] >
00:01:03 #2140 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:03 #2141 [Verbose] > #!import ../../lib/spiral/common.fsx
00:01:03 #2142 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:01:03 #2143 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:01:03 #2144 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:01:03 #2145 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:01:03 #2146 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:01:03 #2147 [Verbose] >
00:01:03 #2148 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:03 #2149 [Verbose] > type [[<Struct>]] US0 =
00:01:03 #2150 [Verbose] > | US0_0
00:01:03 #2151 [Verbose] > | US0_1
00:01:03 #2152 [Verbose] > | US0_2
00:01:03 #2153 [Verbose] > | US0_3
00:01:03 #2154 [Verbose] > and [[<Struct>]] US1 =
00:01:03 #2155 [Verbose] > | US1_0 of f0_0 : US0
00:01:03 #2156 [Verbose] > | US1_1 of f1_0 : US0
00:01:03 #2157 [Verbose] > and [[<Struct>]] US2 =
00:01:03 #2158 [Verbose] > | US2_0
00:01:03 #2159 [Verbose] > | US2_1
00:01:03 #2160 [Verbose] > and [[<Struct>]] US3 =
00:01:03 #2161 [Verbose] > | US3_0 of f0_0 : US2
00:01:03 #2162 [Verbose] > | US3_1
00:01:03 #2163 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:01:03 #2164 [Verbose] > let v1 : System.IDisposable option = None
00:01:03 #2165 [Verbose] > let mutable _v1 = v1
00:01:03 #2166 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:01:03 #2167 [Verbose] > let v2 : US0 = US0_0
00:01:03 #2168 [Verbose] > let v3 : US1 = US1_0(v2)
00:01:03 #2169 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:01:03 #2170 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:01:03 #2171 [Verbose] > v5
00:01:03 #2172 [Verbose] > #endif
00:01:03 #2173 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:01:03 #2174 [Verbose] > let v6 : US0 = US0_2
00:01:03 #2175 [Verbose] > let v7 : US1 = US1_0(v6)
00:01:03 #2176 [Verbose] > let v8 : string = $"new_dispos...
00:01:04 #2177 [Verbose] >
00:01:04 #2178 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:04 #2179 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:01:04 #2180 [Verbose] > and Mut1 = {mutable l0 : int32}
00:01:04 #2181 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:01:04 #2182 [Verbose] > let v2 : bool = v1.Contains v0
00:01:04 #2183 [Verbose] > v2
00:01:04 #2184 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:01:04 #2185 [Verbose] > closure1(v0)
00:01:04 #2186 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:01:04 #2187 [Verbose] > let v2 : bool = v1.EndsWith v0
00:01:04 #2188 [Verbose] > v2
00:01:04 #2189 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:01:04 #2190 [Verbose] > closure3(v0)
00:01:04 #2191 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:01:04 #2192 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:01:04 #2193 [Verbose] > v3
00:01:04 #2194 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:01:04 #2195 [Verbose] > closure6(v0, v1)
00:01:04 #2196 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:01:04 #2197 [Verbose] > closure5(v0)
00:01:04 #2198 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:01:04 #2199 [Verbose] > let v2 : stri...
00:01:04 #2200 [Verbose] >
00:01:04 #2201 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:04 #2202 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:01:04 #2203 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:01:04 #2204 [Verbose] > let v3 : string = v2 v0
00:01:04 #2205 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:01:04 #2206 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:01:04 #2207 [Verbose] > v5
00:01:04 #2208 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:01:04 #2209 [Verbose] > closure1(v0)
00:01:04 #2210 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:01:04 #2211 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:01:04 #2212 [Verbose] > v3
00:01:04 #2213 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:01:04 #2214 [Verbose] > closure5(v0, v1)
00:01:04 #2215 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:01:04 #2216 [Verbose] > closure4(v0)
00:01:04 #2217 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:01:04 #2218 [Verbose] > closure3()
00:01:04 #2219 [Verbose] > and closure2 (...
00:01:05 #2220 [Verbose] >
00:01:05 #2221 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:05 #2222 [Verbose] > #if FABLE_COMPILER // file_system.types
00:01:05 #2223 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:01:05 #2224 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:01:05 #2225 [Verbose] > base64_DecodeError = class end
00:01:05 #2226 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:01:05 #2227 [Verbose] > = class end
00:01:05 #2228 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:01:05 #2229 [Verbose] > = class end
00:01:05 #2230 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:01:05 #2231 [Verbose] > serde_json_Error = class end
00:01:05 #2232 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:01:05 #2233 [Verbose] > serde_json_Value = class end
00:01:05 #2234 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:01:05 #2235 [Verbose] > serde_wasm_bindgen_Error = class end
00:01:05 #2236 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:01:05 #2237 [Verbose] >
00:01:05 #2238 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:05 #2239 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:01:05 #2240 [Verbose] > module SpiralDateTime =
00:01:05 #2241 [Verbose] > let format x =
00:01:05 #2242 [Verbose] > #if !INTERACTIVE
00:01:05 #2243 [Verbose] > Date_time.format x
00:01:05 #2244 [Verbose] > #else
00:01:05 #2245 [Verbose] > format x
00:01:05 #2246 [Verbose] > #endif
00:01:05 #2247 [Verbose] >
00:01:05 #2248 [Verbose] > let format_iso8601 x =
00:01:05 #2249 [Verbose] > #if !INTERACTIVE
00:01:05 #2250 [Verbose] > Date_time.format_iso8601 x
00:01:05 #2251 [Verbose] > #else
00:01:05 #2252 [Verbose] > format_iso8601 x
00:01:05 #2253 [Verbose] > #endif
00:01:05 #2254 [Verbose] >
00:01:05 #2255 [Verbose] > let new_guid_from_date_time x =
00:01:05 #2256 [Verbose] > #if !INTERACTIVE
00:01:05 #2257 [Verbose] > Date_time.new_guid_from_date_time x
00:01:05 #2258 [Verbose] > #else
00:01:05 #2259 [Verbose] > new_guid_from_date_time x
00:01:05 #2260 [Verbose] > #endif
00:01:05 #2261 [Verbose] >
00:01:05 #2262 [Verbose] > #endif
00:01:05 #2263 [Verbose] >
00:01:05 #2264 [Verbose] > module SpiralSm =
00:01:05 #2265 [Verbose] > let concat x =
00:01:05 #2266 [Verbose] > #if !INTERACTIVE
00:01:05 #2267 [Verbose] > Sm.concat x
00:01:05 #2268 [Verbose] > #else
00:01:05 #2269 [Verbose] > concat x
00:01:05 #2270 [Verbose] > #endif
00:01:05 #2271 [Verbose] >
00:01:05 #2272 [Verbose] > let contains x =
00:01:05 #2273 [Verbose] > #if !INTERACTIVE
00:01:05 #2274 [Verbose] > Sm.contains x
00:01:05 #2275 [Verbose] > #else
00:01:05 #2276 [Verbose] > contains x
00:01:05 #2277 [Verbose] > #endif
00:01:05 #2278 [Verbose] >
00:01:05 #2279 [Verbose] > let ellipsis x =
00:01:05 #2280 [Verbose] > #if !INTERACTIVE
00:01:05 #2281 [Verbose] > Sm.ellipsis x
00:01:05 #2282 [Verbose] > #else
00:01:05 #2283 [Verbose] > ellipsis x
00:01:05 #2284 [Verbose] > #endif
00:01:05 #2285 [Verbose] >
00:01:05 #2286 [Verbose] > let ellipsis_end x =
00:01:05 #2287 [Verbose] > #if...
00:01:05 #2288 [Verbose] >
00:01:05 #2289 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:05 #2290 [Verbose] > #if !INTERACTIVE
00:01:05 #2291 [Verbose] > namespace Polyglot
00:01:05 #2292 [Verbose] > #endif
00:01:05 #2293 [Verbose] >
00:01:05 #2294 [Verbose] > module Common =
00:01:05 #2295 [Verbose] >
00:01:05 #2296 [Verbose] > #if !INTERACTIVE
00:01:05 #2297 [Verbose] > open Lib
00:01:05 #2298 [Verbose] > #endif
00:01:05 #2299 [Verbose] >
00:01:05 #2300 [Verbose] > let nl = System.Environment.NewLine
00:01:05 #2301 [Verbose] > let q = @""""
00:01:05 #2302 [Verbose] >
00:01:05 #2303 [Verbose] > let inline cons head tail = head :: tail
00:01:05 #2304 [Verbose] >
00:01:05 #2305 [Verbose] > /// ## memoize
00:01:05 #2306 [Verbose] >
00:01:05 #2307 [Verbose] > let inline memoize fn =
00:01:05 #2308 [Verbose] > let result = lazy fn ()
00:01:05 #2309 [Verbose] > fun () -> result.Value
00:01:05 #2310 [Verbose] >
00:01:05 #2311 [Verbose] > /// ## TraceLevel
00:01:05 #2312 [Verbose] >
00:01:05 #2313 [Verbose] > type TraceLevel =
00:01:05 #2314 [Verbose] > | Verbose
00:01:05 #2315 [Verbose] > | Debug
00:01:05 #2316 [Verbose] > | Info
00:01:05 #2317 [Verbose] > | Warning
00:01:05 #2318 [Verbose] > | Critical
00:01:05 #2319 [Verbose] >
00:01:05 #2320 [Verbose] > let inline getLocals () = ""
00:01:05 #2321 [Verbose] >
00:01:05 #2322 [Verbose] > let mutable traceEnabled = true
00:01:05 #2323 [Verbose] > let mutable traceCount = 0
00:01:05 #2324 [Verbose] > let mutable traceLevel = Verbose
00:01:05 #2325 [Verbose] > let mutable traceDump = false
00:01:05 #2326 [Verbose] >
00:01:05 #2327 [Verbose] > let testTraceLevel level =
00:01:05 #2328 [Verbose] > traceEnabled && level >= traceLevel
00:01:05 #2329 [Verbose] >
00:01:05 #2330 [Verbose] > /// ## traceRaw
00:01:05 #2331 [Verbose] >
00:01:05 #2332 [Verbose] > let rec traceRaw level fn =
00:01:05 #2333 [Verbose] > ...
00:01:05 #2334 [Verbose] >
00:01:05 #2335 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:05 #2336 [Verbose] > open Common
00:01:05 #2337 [Verbose] >
00:01:05 #2338 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 #2339 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:05 #2340 [Verbose] > │ ## newDisposableToken │
00:01:05 #2341 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #2342 [Verbose] >
00:01:05 #2343 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:05 #2344 [Verbose] > let inline newDisposableToken (mergeToken: System.Threading.CancellationToken
00:01:05 #2345 [Verbose] > option) =
00:01:05 #2346 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:01:05 #2347 [Verbose] > let cts =
00:01:05 #2348 [Verbose] > match mergeToken with
00:01:05 #2349 [Verbose] > | None -> cts
00:01:05 #2350 [Verbose] > | Some mergeToken ->
00:01:05 #2351 [Verbose] > System.Threading.CancellationTokenSource.CreateLinkedTokenSource [[|
00:01:05 #2352 [Verbose] > cts.Token; mergeToken |]]
00:01:05 #2353 [Verbose] > let disposable = new_disposable cts.Cancel
00:01:05 #2354 [Verbose] > cts.Token, disposable
00:01:05 #2355 [Verbose] >
00:01:05 #2356 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:05 #2357 [Verbose] > //// test
00:01:05 #2358 [Verbose] >
00:01:05 #2359 [Verbose] > let mutable counter = 0
00:01:05 #2360 [Verbose] >
00:01:05 #2361 [Verbose] > let inline run fn =
00:01:05 #2362 [Verbose] > let token, disposable = newDisposableToken None
00:01:05 #2363 [Verbose] > use _ = disposable
00:01:05 #2364 [Verbose] > fn token
00:01:05 #2365 [Verbose] > async {
00:01:05 #2366 [Verbose] > fn token
00:01:05 #2367 [Verbose] > }
00:01:05 #2368 [Verbose] > |> Async.Start
00:01:05 #2369 [Verbose] >
00:01:05 #2370 [Verbose] > let inline fn (token : System.Threading.CancellationToken) =
00:01:05 #2371 [Verbose] > counter <- counter + (if token.IsCancellationRequested then 10 else 1)
00:01:05 #2372 [Verbose] >
00:01:05 #2373 [Verbose] > async {
00:01:05 #2374 [Verbose] > run fn
00:01:05 #2375 [Verbose] > do! Async.Sleep 10
00:01:05 #2376 [Verbose] > return counter
00:01:05 #2377 [Verbose] > }
00:01:05 #2378 [Verbose] > |> Async.RunSynchronously
00:01:05 #2379 [Verbose] > |> _assertEqual 11
00:01:05 #2380 [Verbose] >
00:01:05 #2381 [Verbose] > ╭─[ 123.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:05 #2382 [Verbose] > │ 11 │
00:01:05 #2383 [Verbose] > │ │
00:01:05 #2384 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #2385 [Verbose] > [NbConvertApp] Converting notebook Threading.dib.ipynb to html
00:01:07 #2386 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:07 #2387 [Verbose] > validate(nb)
00:01:08 #2388 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:08 #2389 [Verbose] > return _pygments_highlight(
00:01:08 #2390 [Verbose] > [NbConvertApp] Writing 278912 bytes to Threading.dib.html
00:01:09 #2391 [Debug] executeAsync / exitCode: 0 / output.Length: 11388
00:01:09 #2392 [Debug] main / executeCommand / exitCode: 0
00:01:09 #2393 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Crypto.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:11 #2394 [Verbose] >
00:01:11 #2395 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:11 #2396 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #2397 [Verbose] > │ # Crypto (Polyglot) │
00:01:11 #2398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #2399 [Verbose] >
00:01:11 #2400 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:11 #2401 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:01:11 #2402 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:01:11 #2403 [Verbose] >
00:01:11 #2404 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:11 #2405 [Verbose] > #r
00:01:11 #2406 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:01:11 #2407 [Verbose] > spNetCore.Html.Abstractions.dll"
00:01:11 #2408 [Verbose] > #r
00:01:11 #2409 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:11 #2410 [Verbose] > otNet.Interactive.dll"
00:01:11 #2411 [Verbose] > #r
00:01:11 #2412 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:11 #2413 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:11 #2414 [Verbose] > #r
00:01:11 #2415 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:11 #2416 [Verbose] > otNet.Interactive.Formatting.dll"
00:01:11 #2417 [Verbose] > open System
00:01:11 #2418 [Verbose] > open System.IO
00:01:11 #2419 [Verbose] > open System.Text
00:01:11 #2420 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:01:15 #2421 [Verbose] >
00:01:15 #2422 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:15 #2423 [Verbose] > #r
00:01:15 #2424 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:15 #2425 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:15 #2426 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:01:15 #2427 [Verbose] > #r
00:01:15 #2428 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:15 #2429 [Verbose] > otNet.Interactive.dll"
00:01:15 #2430 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:01:15 #2431 [Verbose] >
00:01:15 #2432 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:15 #2433 [Verbose] > //// test
00:01:15 #2434 [Verbose] >
00:01:15 #2435 [Verbose] > Formatter.ListExpansionLimit <- 100
00:01:15 #2436 [Verbose] >
00:01:15 #2437 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:15 #2438 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:01:15 #2439 [Verbose] >
00:01:15 #2440 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:15 #2441 [Verbose] > //// test
00:01:15 #2442 [Verbose] >
00:01:15 #2443 [Verbose] > type AssertExceptionFormatter (ex) =
00:01:15 #2444 [Verbose] > member _.Text =
00:01:15 #2445 [Verbose] > ex.ToString()
00:01:15 #2446 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:01:15 #2447 [Verbose] > .Replace("36m", "</span>")
00:01:15 #2448 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:01:15 #2449 [Verbose] > .Replace("\n", "<br/>\n")
00:01:15 #2450 [Verbose] >
00:01:15 #2451 [Verbose] >
00:01:15 #2452 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:01:15 #2453 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:01:16 #2454 [Verbose] >
00:01:16 #2455 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:16 #2456 [Verbose] > //// test
00:01:16 #2457 [Verbose] >
00:01:16 #2458 [Verbose] > let inline __expect fn log expected actual =
00:01:16 #2459 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:01:16 #2460 [Verbose] > try
00:01:16 #2461 [Verbose] > "Testing.__expect" |> fn actual expected
00:01:16 #2462 [Verbose] > with :? Expecto.AssertException as ex ->
00:01:16 #2463 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:01:16 #2464 [Verbose] > failwith (ex.GetType().FullName)
00:01:16 #2465 [Verbose] >
00:01:16 #2466 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:01:16 #2467 [Verbose] > expected actual
00:01:16 #2468 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:01:16 #2469 [Verbose] >
00:01:16 #2470 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:01:16 #2471 [Verbose] > expected actual
00:01:16 #2472 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:01:16 #2473 [Verbose] >
00:01:16 #2474 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:01:16 #2475 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:01:16 #2476 [Verbose] >
00:01:16 #2477 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:16 #2478 [Verbose] > //// test
00:01:16 #2479 [Verbose] >
00:01:16 #2480 [Verbose] > let inline __isBetween log a b actual =
00:01:16 #2481 [Verbose] > let inline isBetween actual (a, b) _ =
00:01:16 #2482 [Verbose] > __isGreaterThanOrEqual log a actual
00:01:16 #2483 [Verbose] > __isLessThanOrEqual log b actual
00:01:16 #2484 [Verbose] > __expect isBetween log (a, b) actual
00:01:16 #2485 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:01:16 #2486 [Verbose] >
00:01:16 #2487 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:16 #2488 [Verbose] > #!import ../../lib/spiral/common.fsx
00:01:16 #2489 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:01:16 #2490 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:01:16 #2491 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:01:16 #2492 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:01:16 #2493 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:01:16 #2494 [Verbose] >
00:01:16 #2495 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:16 #2496 [Verbose] > type [[<Struct>]] US0 =
00:01:16 #2497 [Verbose] > | US0_0
00:01:16 #2498 [Verbose] > | US0_1
00:01:16 #2499 [Verbose] > | US0_2
00:01:16 #2500 [Verbose] > | US0_3
00:01:16 #2501 [Verbose] > and [[<Struct>]] US1 =
00:01:16 #2502 [Verbose] > | US1_0 of f0_0 : US0
00:01:16 #2503 [Verbose] > | US1_1 of f1_0 : US0
00:01:16 #2504 [Verbose] > and [[<Struct>]] US2 =
00:01:16 #2505 [Verbose] > | US2_0
00:01:16 #2506 [Verbose] > | US2_1
00:01:16 #2507 [Verbose] > and [[<Struct>]] US3 =
00:01:16 #2508 [Verbose] > | US3_0 of f0_0 : US2
00:01:16 #2509 [Verbose] > | US3_1
00:01:16 #2510 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:01:16 #2511 [Verbose] > let v1 : System.IDisposable option = None
00:01:16 #2512 [Verbose] > let mutable _v1 = v1
00:01:16 #2513 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:01:16 #2514 [Verbose] > let v2 : US0 = US0_0
00:01:16 #2515 [Verbose] > let v3 : US1 = US1_0(v2)
00:01:16 #2516 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:01:16 #2517 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:01:16 #2518 [Verbose] > v5
00:01:16 #2519 [Verbose] > #endif
00:01:16 #2520 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:01:16 #2521 [Verbose] > let v6 : US0 = US0_2
00:01:16 #2522 [Verbose] > let v7 : US1 = US1_0(v6)
00:01:16 #2523 [Verbose] > let v8 : string = $"new_dispos...
00:01:17 #2524 [Verbose] >
00:01:17 #2525 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:17 #2526 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:01:17 #2527 [Verbose] > and Mut1 = {mutable l0 : int32}
00:01:17 #2528 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:01:17 #2529 [Verbose] > let v2 : bool = v1.Contains v0
00:01:17 #2530 [Verbose] > v2
00:01:17 #2531 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:01:17 #2532 [Verbose] > closure1(v0)
00:01:17 #2533 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:01:17 #2534 [Verbose] > let v2 : bool = v1.EndsWith v0
00:01:17 #2535 [Verbose] > v2
00:01:17 #2536 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:01:17 #2537 [Verbose] > closure3(v0)
00:01:17 #2538 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:01:17 #2539 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:01:17 #2540 [Verbose] > v3
00:01:17 #2541 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:01:17 #2542 [Verbose] > closure6(v0, v1)
00:01:17 #2543 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:01:17 #2544 [Verbose] > closure5(v0)
00:01:17 #2545 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:01:17 #2546 [Verbose] > let v2 : stri...
00:01:17 #2547 [Verbose] >
00:01:17 #2548 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:17 #2549 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:01:17 #2550 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:01:17 #2551 [Verbose] > let v3 : string = v2 v0
00:01:17 #2552 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:01:17 #2553 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:01:17 #2554 [Verbose] > v5
00:01:17 #2555 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:01:17 #2556 [Verbose] > closure1(v0)
00:01:17 #2557 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:01:17 #2558 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:01:17 #2559 [Verbose] > v3
00:01:17 #2560 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:01:17 #2561 [Verbose] > closure5(v0, v1)
00:01:17 #2562 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:01:17 #2563 [Verbose] > closure4(v0)
00:01:17 #2564 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:01:17 #2565 [Verbose] > closure3()
00:01:17 #2566 [Verbose] > and closure2 (...
00:01:18 #2567 [Verbose] >
00:01:18 #2568 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:18 #2569 [Verbose] > #if FABLE_COMPILER // file_system.types
00:01:18 #2570 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:01:18 #2571 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:01:18 #2572 [Verbose] > base64_DecodeError = class end
00:01:18 #2573 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:01:18 #2574 [Verbose] > = class end
00:01:18 #2575 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:01:18 #2576 [Verbose] > = class end
00:01:18 #2577 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:01:18 #2578 [Verbose] > serde_json_Error = class end
00:01:18 #2579 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:01:18 #2580 [Verbose] > serde_json_Value = class end
00:01:18 #2581 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:01:18 #2582 [Verbose] > serde_wasm_bindgen_Error = class end
00:01:18 #2583 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:01:18 #2584 [Verbose] >
00:01:18 #2585 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:18 #2586 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:01:18 #2587 [Verbose] > module SpiralDateTime =
00:01:18 #2588 [Verbose] > let format x =
00:01:18 #2589 [Verbose] > #if !INTERACTIVE
00:01:18 #2590 [Verbose] > Date_time.format x
00:01:18 #2591 [Verbose] > #else
00:01:18 #2592 [Verbose] > format x
00:01:18 #2593 [Verbose] > #endif
00:01:18 #2594 [Verbose] >
00:01:18 #2595 [Verbose] > let format_iso8601 x =
00:01:18 #2596 [Verbose] > #if !INTERACTIVE
00:01:18 #2597 [Verbose] > Date_time.format_iso8601 x
00:01:18 #2598 [Verbose] > #else
00:01:18 #2599 [Verbose] > format_iso8601 x
00:01:18 #2600 [Verbose] > #endif
00:01:18 #2601 [Verbose] >
00:01:18 #2602 [Verbose] > let new_guid_from_date_time x =
00:01:18 #2603 [Verbose] > #if !INTERACTIVE
00:01:18 #2604 [Verbose] > Date_time.new_guid_from_date_time x
00:01:18 #2605 [Verbose] > #else
00:01:18 #2606 [Verbose] > new_guid_from_date_time x
00:01:18 #2607 [Verbose] > #endif
00:01:18 #2608 [Verbose] >
00:01:18 #2609 [Verbose] > #endif
00:01:18 #2610 [Verbose] >
00:01:18 #2611 [Verbose] > module SpiralSm =
00:01:18 #2612 [Verbose] > let concat x =
00:01:18 #2613 [Verbose] > #if !INTERACTIVE
00:01:18 #2614 [Verbose] > Sm.concat x
00:01:18 #2615 [Verbose] > #else
00:01:18 #2616 [Verbose] > concat x
00:01:18 #2617 [Verbose] > #endif
00:01:18 #2618 [Verbose] >
00:01:18 #2619 [Verbose] > let contains x =
00:01:18 #2620 [Verbose] > #if !INTERACTIVE
00:01:18 #2621 [Verbose] > Sm.contains x
00:01:18 #2622 [Verbose] > #else
00:01:18 #2623 [Verbose] > contains x
00:01:18 #2624 [Verbose] > #endif
00:01:18 #2625 [Verbose] >
00:01:18 #2626 [Verbose] > let ellipsis x =
00:01:18 #2627 [Verbose] > #if !INTERACTIVE
00:01:18 #2628 [Verbose] > Sm.ellipsis x
00:01:18 #2629 [Verbose] > #else
00:01:18 #2630 [Verbose] > ellipsis x
00:01:18 #2631 [Verbose] > #endif
00:01:18 #2632 [Verbose] >
00:01:18 #2633 [Verbose] > let ellipsis_end x =
00:01:18 #2634 [Verbose] > #if...
00:01:18 #2635 [Verbose] >
00:01:18 #2636 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:18 #2637 [Verbose] > #if !INTERACTIVE
00:01:18 #2638 [Verbose] > namespace Polyglot
00:01:18 #2639 [Verbose] > #endif
00:01:18 #2640 [Verbose] >
00:01:18 #2641 [Verbose] > module Common =
00:01:18 #2642 [Verbose] >
00:01:18 #2643 [Verbose] > #if !INTERACTIVE
00:01:18 #2644 [Verbose] > open Lib
00:01:18 #2645 [Verbose] > #endif
00:01:18 #2646 [Verbose] >
00:01:18 #2647 [Verbose] > let nl = System.Environment.NewLine
00:01:18 #2648 [Verbose] > let q = @""""
00:01:18 #2649 [Verbose] >
00:01:18 #2650 [Verbose] > let inline cons head tail = head :: tail
00:01:18 #2651 [Verbose] >
00:01:18 #2652 [Verbose] > /// ## memoize
00:01:18 #2653 [Verbose] >
00:01:18 #2654 [Verbose] > let inline memoize fn =
00:01:18 #2655 [Verbose] > let result = lazy fn ()
00:01:18 #2656 [Verbose] > fun () -> result.Value
00:01:18 #2657 [Verbose] >
00:01:18 #2658 [Verbose] > /// ## TraceLevel
00:01:18 #2659 [Verbose] >
00:01:18 #2660 [Verbose] > type TraceLevel =
00:01:18 #2661 [Verbose] > | Verbose
00:01:18 #2662 [Verbose] > | Debug
00:01:18 #2663 [Verbose] > | Info
00:01:18 #2664 [Verbose] > | Warning
00:01:18 #2665 [Verbose] > | Critical
00:01:18 #2666 [Verbose] >
00:01:18 #2667 [Verbose] > let inline getLocals () = ""
00:01:18 #2668 [Verbose] >
00:01:18 #2669 [Verbose] > let mutable traceEnabled = true
00:01:18 #2670 [Verbose] > let mutable traceCount = 0
00:01:18 #2671 [Verbose] > let mutable traceLevel = Verbose
00:01:18 #2672 [Verbose] > let mutable traceDump = false
00:01:18 #2673 [Verbose] >
00:01:18 #2674 [Verbose] > let testTraceLevel level =
00:01:18 #2675 [Verbose] > traceEnabled && level >= traceLevel
00:01:18 #2676 [Verbose] >
00:01:18 #2677 [Verbose] > /// ## traceRaw
00:01:18 #2678 [Verbose] >
00:01:18 #2679 [Verbose] > let rec traceRaw level fn =
00:01:18 #2680 [Verbose] > ...
00:01:18 #2681 [Verbose] >
00:01:18 #2682 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:18 #2683 [Verbose] > #if !INTERACTIVE
00:01:18 #2684 [Verbose] > open Lib
00:01:18 #2685 [Verbose] > #endif
00:01:18 #2686 [Verbose] >
00:01:18 #2687 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:18 #2688 [Verbose] > open Common
00:01:18 #2689 [Verbose] >
00:01:18 #2690 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:18 #2691 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:18 #2692 [Verbose] > │ ## hashText │
00:01:18 #2693 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #2694 [Verbose] >
00:01:18 #2695 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:18 #2696 [Verbose] > let hashText (input : string) =
00:01:18 #2697 [Verbose] > use sha256 = System.Security.Cryptography.SHA256.Create ()
00:01:18 #2698 [Verbose] > input
00:01:18 #2699 [Verbose] > |> System.Text.Encoding.UTF8.GetBytes
00:01:18 #2700 [Verbose] > |> sha256.ComputeHash
00:01:18 #2701 [Verbose] > |> Array.map (fun b -> b.ToString "x2")
00:01:18 #2702 [Verbose] > |> SpiralSm.concat ""
00:01:18 #2703 [Verbose] >
00:01:18 #2704 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:18 #2705 [Verbose] > //// test
00:01:18 #2706 [Verbose] >
00:01:18 #2707 [Verbose] > ""
00:01:18 #2708 [Verbose] > |> hashText
00:01:18 #2709 [Verbose] > |> _assertEqual
00:01:18 #2710 [Verbose] > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
00:01:18 #2711 [Verbose] >
00:01:18 #2712 [Verbose] > ╭─[ 46.01ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:18 #2713 [Verbose] > │ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 │
00:01:18 #2714 [Verbose] > │ │
00:01:18 #2715 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:18 #2716 [Verbose] >
00:01:18 #2717 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:18 #2718 [Verbose] > //// test
00:01:18 #2719 [Verbose] >
00:01:18 #2720 [Verbose] > " "
00:01:18 #2721 [Verbose] > |> hashText
00:01:18 #2722 [Verbose] > |> _assertEqual
00:01:18 #2723 [Verbose] > "36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"
00:01:18 #2724 [Verbose] >
00:01:18 #2725 [Verbose] > ╭─[ 18.01ms - stdout ]─────────────────────────────────────────────────────────╮
00:01:18 #2726 [Verbose] > │ 36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068 │
00:01:18 #2727 [Verbose] > │ │
00:01:18 #2728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:20 #2729 [Verbose] > [NbConvertApp] Converting notebook Crypto.dib.ipynb to html
00:01:20 #2730 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:20 #2731 [Verbose] > validate(nb)
00:01:20 #2732 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:20 #2733 [Verbose] > return _pygments_highlight(
00:01:21 #2734 [Verbose] > [NbConvertApp] Writing 278404 bytes to Crypto.dib.html
00:01:21 #2735 [Debug] executeAsync / exitCode: 0 / output.Length: 11498
00:01:21 #2736 [Debug] main / executeCommand / exitCode: 0
00:01:21 #2737 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 FileSystem.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:24 #2738 [Verbose] >
00:01:24 #2739 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:24 #2740 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:24 #2741 [Verbose] > │ # FileSystem (Polyglot) │
00:01:24 #2742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:24 #2743 [Verbose] >
00:01:24 #2744 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:24 #2745 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:01:24 #2746 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:01:24 #2747 [Verbose] >
00:01:24 #2748 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:24 #2749 [Verbose] > #r
00:01:24 #2750 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:01:24 #2751 [Verbose] > spNetCore.Html.Abstractions.dll"
00:01:24 #2752 [Verbose] > #r
00:01:24 #2753 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:24 #2754 [Verbose] > otNet.Interactive.dll"
00:01:24 #2755 [Verbose] > #r
00:01:24 #2756 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:24 #2757 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:24 #2758 [Verbose] > #r
00:01:24 #2759 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:24 #2760 [Verbose] > otNet.Interactive.Formatting.dll"
00:01:24 #2761 [Verbose] > open System
00:01:24 #2762 [Verbose] > open System.IO
00:01:24 #2763 [Verbose] > open System.Text
00:01:24 #2764 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:01:27 #2765 [Verbose] >
00:01:27 #2766 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:27 #2767 [Verbose] > #r
00:01:27 #2768 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:27 #2769 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:27 #2770 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:01:27 #2771 [Verbose] > #r
00:01:27 #2772 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:27 #2773 [Verbose] > otNet.Interactive.dll"
00:01:27 #2774 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:01:27 #2775 [Verbose] >
00:01:27 #2776 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:27 #2777 [Verbose] > //// test
00:01:27 #2778 [Verbose] >
00:01:27 #2779 [Verbose] > Formatter.ListExpansionLimit <- 100
00:01:28 #2780 [Verbose] >
00:01:28 #2781 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:28 #2782 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:01:28 #2783 [Verbose] >
00:01:28 #2784 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:28 #2785 [Verbose] > //// test
00:01:28 #2786 [Verbose] >
00:01:28 #2787 [Verbose] > type AssertExceptionFormatter (ex) =
00:01:28 #2788 [Verbose] > member _.Text =
00:01:28 #2789 [Verbose] > ex.ToString()
00:01:28 #2790 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:01:28 #2791 [Verbose] > .Replace("36m", "</span>")
00:01:28 #2792 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:01:28 #2793 [Verbose] > .Replace("\n", "<br/>\n")
00:01:28 #2794 [Verbose] >
00:01:28 #2795 [Verbose] >
00:01:28 #2796 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:01:28 #2797 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:01:28 #2798 [Verbose] >
00:01:28 #2799 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:28 #2800 [Verbose] > //// test
00:01:28 #2801 [Verbose] >
00:01:28 #2802 [Verbose] > let inline __expect fn log expected actual =
00:01:28 #2803 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:01:28 #2804 [Verbose] > try
00:01:28 #2805 [Verbose] > "Testing.__expect" |> fn actual expected
00:01:28 #2806 [Verbose] > with :? Expecto.AssertException as ex ->
00:01:28 #2807 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:01:28 #2808 [Verbose] > failwith (ex.GetType().FullName)
00:01:28 #2809 [Verbose] >
00:01:28 #2810 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:01:28 #2811 [Verbose] > expected actual
00:01:28 #2812 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:01:28 #2813 [Verbose] >
00:01:28 #2814 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:01:28 #2815 [Verbose] > expected actual
00:01:28 #2816 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:01:28 #2817 [Verbose] >
00:01:28 #2818 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:01:28 #2819 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:01:29 #2820 [Verbose] >
00:01:29 #2821 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:29 #2822 [Verbose] > //// test
00:01:29 #2823 [Verbose] >
00:01:29 #2824 [Verbose] > let inline __isBetween log a b actual =
00:01:29 #2825 [Verbose] > let inline isBetween actual (a, b) _ =
00:01:29 #2826 [Verbose] > __isGreaterThanOrEqual log a actual
00:01:29 #2827 [Verbose] > __isLessThanOrEqual log b actual
00:01:29 #2828 [Verbose] > __expect isBetween log (a, b) actual
00:01:29 #2829 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:01:29 #2830 [Verbose] >
00:01:29 #2831 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:29 #2832 [Verbose] > #r
00:01:29 #2833 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:01:29 #2834 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:01:29 #2835 [Verbose] > #r
00:01:29 #2836 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:01:29 #2837 [Verbose] > 0/System.Reactive.dll"
00:01:29 #2838 [Verbose] > #r
00:01:29 #2839 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:01:29 #2840 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:01:29 #2841 [Verbose] > #r
00:01:29 #2842 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:01:29 #2843 [Verbose] > #r
00:01:29 #2844 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:01:29 #2845 [Verbose] > b/net6.0/System.CommandLine.dll"
00:01:29 #2846 [Verbose] >
00:01:29 #2847 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:29 #2848 [Verbose] > #!import ../../lib/spiral/common.fsx
00:01:29 #2849 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:01:29 #2850 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:01:29 #2851 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:01:29 #2852 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:01:29 #2853 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:01:29 #2854 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs
00:01:29 #2855 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:01:29 #2856 [Verbose] > #!import ../../lib/fsharp/AsyncSeq.fs
00:01:29 #2857 [Verbose] > #!import ../../lib/fsharp/Runtime.fs
00:01:29 #2858 [Verbose] >
00:01:29 #2859 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:29 #2860 [Verbose] > type [[<Struct>]] US0 =
00:01:29 #2861 [Verbose] > | US0_0
00:01:29 #2862 [Verbose] > | US0_1
00:01:29 #2863 [Verbose] > | US0_2
00:01:29 #2864 [Verbose] > | US0_3
00:01:29 #2865 [Verbose] > and [[<Struct>]] US1 =
00:01:29 #2866 [Verbose] > | US1_0 of f0_0 : US0
00:01:29 #2867 [Verbose] > | US1_1 of f1_0 : US0
00:01:29 #2868 [Verbose] > and [[<Struct>]] US2 =
00:01:29 #2869 [Verbose] > | US2_0
00:01:29 #2870 [Verbose] > | US2_1
00:01:29 #2871 [Verbose] > and [[<Struct>]] US3 =
00:01:29 #2872 [Verbose] > | US3_0 of f0_0 : US2
00:01:29 #2873 [Verbose] > | US3_1
00:01:29 #2874 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:01:29 #2875 [Verbose] > let v1 : System.IDisposable option = None
00:01:29 #2876 [Verbose] > let mutable _v1 = v1
00:01:29 #2877 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:01:29 #2878 [Verbose] > let v2 : US0 = US0_0
00:01:29 #2879 [Verbose] > let v3 : US1 = US1_0(v2)
00:01:29 #2880 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:01:29 #2881 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:01:29 #2882 [Verbose] > v5
00:01:29 #2883 [Verbose] > #endif
00:01:29 #2884 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:01:29 #2885 [Verbose] > let v6 : US0 = US0_2
00:01:29 #2886 [Verbose] > let v7 : US1 = US1_0(v6)
00:01:29 #2887 [Verbose] > let v8 : string = $"new_dispos...
00:01:29 #2888 [Verbose] >
00:01:29 #2889 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:29 #2890 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:01:29 #2891 [Verbose] > and Mut1 = {mutable l0 : int32}
00:01:29 #2892 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:01:29 #2893 [Verbose] > let v2 : bool = v1.Contains v0
00:01:29 #2894 [Verbose] > v2
00:01:29 #2895 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:01:29 #2896 [Verbose] > closure1(v0)
00:01:29 #2897 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:01:29 #2898 [Verbose] > let v2 : bool = v1.EndsWith v0
00:01:29 #2899 [Verbose] > v2
00:01:29 #2900 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:01:29 #2901 [Verbose] > closure3(v0)
00:01:29 #2902 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:01:29 #2903 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:01:29 #2904 [Verbose] > v3
00:01:29 #2905 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:01:29 #2906 [Verbose] > closure6(v0, v1)
00:01:29 #2907 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:01:29 #2908 [Verbose] > closure5(v0)
00:01:29 #2909 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:01:29 #2910 [Verbose] > let v2 : stri...
00:01:30 #2911 [Verbose] >
00:01:30 #2912 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:30 #2913 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:01:30 #2914 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:01:30 #2915 [Verbose] > let v3 : string = v2 v0
00:01:30 #2916 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:01:30 #2917 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:01:30 #2918 [Verbose] > v5
00:01:30 #2919 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:01:30 #2920 [Verbose] > closure1(v0)
00:01:30 #2921 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:01:30 #2922 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:01:30 #2923 [Verbose] > v3
00:01:30 #2924 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:01:30 #2925 [Verbose] > closure5(v0, v1)
00:01:30 #2926 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:01:30 #2927 [Verbose] > closure4(v0)
00:01:30 #2928 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:01:30 #2929 [Verbose] > closure3()
00:01:30 #2930 [Verbose] > and closure2 (...
00:01:30 #2931 [Verbose] >
00:01:30 #2932 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:30 #2933 [Verbose] > #if FABLE_COMPILER // file_system.types
00:01:30 #2934 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:01:30 #2935 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:01:30 #2936 [Verbose] > base64_DecodeError = class end
00:01:30 #2937 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:01:30 #2938 [Verbose] > = class end
00:01:30 #2939 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:01:30 #2940 [Verbose] > = class end
00:01:30 #2941 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:01:30 #2942 [Verbose] > serde_json_Error = class end
00:01:30 #2943 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:01:30 #2944 [Verbose] > serde_json_Value = class end
00:01:30 #2945 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:01:30 #2946 [Verbose] > serde_wasm_bindgen_Error = class end
00:01:30 #2947 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:01:31 #2948 [Verbose] >
00:01:31 #2949 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:31 #2950 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:01:31 #2951 [Verbose] > module SpiralDateTime =
00:01:31 #2952 [Verbose] > let format x =
00:01:31 #2953 [Verbose] > #if !INTERACTIVE
00:01:31 #2954 [Verbose] > Date_time.format x
00:01:31 #2955 [Verbose] > #else
00:01:31 #2956 [Verbose] > format x
00:01:31 #2957 [Verbose] > #endif
00:01:31 #2958 [Verbose] >
00:01:31 #2959 [Verbose] > let format_iso8601 x =
00:01:31 #2960 [Verbose] > #if !INTERACTIVE
00:01:31 #2961 [Verbose] > Date_time.format_iso8601 x
00:01:31 #2962 [Verbose] > #else
00:01:31 #2963 [Verbose] > format_iso8601 x
00:01:31 #2964 [Verbose] > #endif
00:01:31 #2965 [Verbose] >
00:01:31 #2966 [Verbose] > let new_guid_from_date_time x =
00:01:31 #2967 [Verbose] > #if !INTERACTIVE
00:01:31 #2968 [Verbose] > Date_time.new_guid_from_date_time x
00:01:31 #2969 [Verbose] > #else
00:01:31 #2970 [Verbose] > new_guid_from_date_time x
00:01:31 #2971 [Verbose] > #endif
00:01:31 #2972 [Verbose] >
00:01:31 #2973 [Verbose] > #endif
00:01:31 #2974 [Verbose] >
00:01:31 #2975 [Verbose] > module SpiralSm =
00:01:31 #2976 [Verbose] > let concat x =
00:01:31 #2977 [Verbose] > #if !INTERACTIVE
00:01:31 #2978 [Verbose] > Sm.concat x
00:01:31 #2979 [Verbose] > #else
00:01:31 #2980 [Verbose] > concat x
00:01:31 #2981 [Verbose] > #endif
00:01:31 #2982 [Verbose] >
00:01:31 #2983 [Verbose] > let contains x =
00:01:31 #2984 [Verbose] > #if !INTERACTIVE
00:01:31 #2985 [Verbose] > Sm.contains x
00:01:31 #2986 [Verbose] > #else
00:01:31 #2987 [Verbose] > contains x
00:01:31 #2988 [Verbose] > #endif
00:01:31 #2989 [Verbose] >
00:01:31 #2990 [Verbose] > let ellipsis x =
00:01:31 #2991 [Verbose] > #if !INTERACTIVE
00:01:31 #2992 [Verbose] > Sm.ellipsis x
00:01:31 #2993 [Verbose] > #else
00:01:31 #2994 [Verbose] > ellipsis x
00:01:31 #2995 [Verbose] > #endif
00:01:31 #2996 [Verbose] >
00:01:31 #2997 [Verbose] > let ellipsis_end x =
00:01:31 #2998 [Verbose] > #if...
00:01:31 #2999 [Verbose] >
00:01:31 #3000 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:31 #3001 [Verbose] > #if !INTERACTIVE
00:01:31 #3002 [Verbose] > namespace Polyglot
00:01:31 #3003 [Verbose] > #endif
00:01:31 #3004 [Verbose] >
00:01:31 #3005 [Verbose] > module Common =
00:01:31 #3006 [Verbose] >
00:01:31 #3007 [Verbose] > #if !INTERACTIVE
00:01:31 #3008 [Verbose] > open Lib
00:01:31 #3009 [Verbose] > #endif
00:01:31 #3010 [Verbose] >
00:01:31 #3011 [Verbose] > let nl = System.Environment.NewLine
00:01:31 #3012 [Verbose] > let q = @""""
00:01:31 #3013 [Verbose] >
00:01:31 #3014 [Verbose] > let inline cons head tail = head :: tail
00:01:31 #3015 [Verbose] >
00:01:31 #3016 [Verbose] > /// ## memoize
00:01:31 #3017 [Verbose] >
00:01:31 #3018 [Verbose] > let inline memoize fn =
00:01:31 #3019 [Verbose] > let result = lazy fn ()
00:01:31 #3020 [Verbose] > fun () -> result.Value
00:01:31 #3021 [Verbose] >
00:01:31 #3022 [Verbose] > /// ## TraceLevel
00:01:31 #3023 [Verbose] >
00:01:31 #3024 [Verbose] > type TraceLevel =
00:01:31 #3025 [Verbose] > | Verbose
00:01:31 #3026 [Verbose] > | Debug
00:01:31 #3027 [Verbose] > | Info
00:01:31 #3028 [Verbose] > | Warning
00:01:31 #3029 [Verbose] > | Critical
00:01:31 #3030 [Verbose] >
00:01:31 #3031 [Verbose] > let inline getLocals () = ""
00:01:31 #3032 [Verbose] >
00:01:31 #3033 [Verbose] > let mutable traceEnabled = true
00:01:31 #3034 [Verbose] > let mutable traceCount = 0
00:01:31 #3035 [Verbose] > let mutable traceLevel = Verbose
00:01:31 #3036 [Verbose] > let mutable traceDump = false
00:01:31 #3037 [Verbose] >
00:01:31 #3038 [Verbose] > let testTraceLevel level =
00:01:31 #3039 [Verbose] > traceEnabled && level >= traceLevel
00:01:31 #3040 [Verbose] >
00:01:31 #3041 [Verbose] > /// ## traceRaw
00:01:31 #3042 [Verbose] >
00:01:31 #3043 [Verbose] > let rec traceRaw level fn =
00:01:31 #3044 [Verbose] > ...
00:01:31 #3045 [Verbose] >
00:01:31 #3046 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:31 #3047 [Verbose] > #if !INTERACTIVE
00:01:31 #3048 [Verbose] > namespace Polyglot
00:01:31 #3049 [Verbose] > #endif
00:01:31 #3050 [Verbose] >
00:01:31 #3051 [Verbose] > module CommonFSharp =
00:01:31 #3052 [Verbose] >
00:01:31 #3053 [Verbose] > open Common
00:01:31 #3054 [Verbose] >
00:01:31 #3055 [Verbose] > /// ## getUnionCaseName
00:01:31 #3056 [Verbose] >
00:01:31 #3057 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:01:31 #3058 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:01:31 #3059 [Verbose] > | case, _ -> case.Name
00:01:31 #3060 [Verbose] >
00:01:31 #3061 [Verbose] >
00:01:31 #3062 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:31 #3063 [Verbose] > #if !INTERACTIVE
00:01:31 #3064 [Verbose] > namespace Polyglot
00:01:31 #3065 [Verbose] > #endif
00:01:31 #3066 [Verbose] >
00:01:31 #3067 [Verbose] > module Async =
00:01:31 #3068 [Verbose] >
00:01:31 #3069 [Verbose] > #if !INTERACTIVE
00:01:31 #3070 [Verbose] > open Lib
00:01:31 #3071 [Verbose] > #endif
00:01:31 #3072 [Verbose] >
00:01:31 #3073 [Verbose] > open Common
00:01:31 #3074 [Verbose] >
00:01:31 #3075 [Verbose] > /// ## choice
00:01:31 #3076 [Verbose] >
00:01:31 #3077 [Verbose] > let inline choice asyncs = async {
00:01:31 #3078 [Verbose] > let e = Event<_> ()
00:01:31 #3079 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:01:31 #3080 [Verbose] > let fn =
00:01:31 #3081 [Verbose] > asyncs
00:01:31 #3082 [Verbose] > |> Seq.map (fun a -> async {
00:01:31 #3083 [Verbose] > let! x = a
00:01:31 #3084 [Verbose] > e.Trigger x
00:01:31 #3085 [Verbose] > })
00:01:31 #3086 [Verbose] > |> Async.Parallel
00:01:31 #3087 [Verbose] > |> Async.Ignore
00:01:31 #3088 [Verbose] > Async.Start (fn, cts.Token)
00:01:31 #3089 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:01:31 #3090 [Verbose] > cts.Cancel ()
00:01:31 #3091 [Verbose] > return result
00:01:31 #3092 [Verbose] > }
00:01:31 #3093 [Verbose] >
00:01:31 #3094 [Verbose] > /// ## map
00:01:31 #3095 [Verbose] >
00:01:31 #3096 [Verbose] > let inline map fn a = async {
00:01:31 #3097 [Verbose] > let! x = a
00:01:31 #3098 [Verbose] > return fn x
00:01:31 #3099 [Verbose] > }
00:01:31 #3100 [Verbose] >
00:01:31 #3101 [Verbose] > /// ## catch
00:01:31 #3102 [Verbose] >
00:01:31 #3103 [Verbose] > let inline catch a =
00:01:31 #3104 [Verbose] > ...
00:01:31 #3105 [Verbose] >
00:01:31 #3106 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:31 #3107 [Verbose] > #if !INTERACTIVE
00:01:31 #3108 [Verbose] > namespace Polyglot
00:01:31 #3109 [Verbose] > #endif
00:01:31 #3110 [Verbose] >
00:01:31 #3111 [Verbose] > module AsyncSeq =
00:01:31 #3112 [Verbose] >
00:01:31 #3113 [Verbose] > #if !INTERACTIVE
00:01:31 #3114 [Verbose] > open Lib
00:01:31 #3115 [Verbose] > #endif
00:01:31 #3116 [Verbose] >
00:01:31 #3117 [Verbose] > open Common
00:01:31 #3118 [Verbose] >
00:01:31 #3119 [Verbose] > /// ## subscribeEvent
00:01:31 #3120 [Verbose] >
00:01:31 #3121 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:01:31 #3122 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:01:31 #3123 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:01:31 #3124 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:01:31 #3125 [Verbose] > event.EventArgs)
00:01:31 #3126 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:01:31 #3127 [Verbose] >
00:01:31 #3128 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:01:31 #3129 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:01:31 #3130 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:01:31 #3131 [Verbose] > let start = System.DateTime.Now.Ticks
00:01:31 #3132 [Verbose] > FSharp.Control.A...
00:01:31 #3133 [Verbose] >
00:01:31 #3134 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:31 #3135 [Verbose] > #if !INTERACTIVE
00:01:31 #3136 [Verbose] > namespace Polyglot
00:01:31 #3137 [Verbose] > #endif
00:01:31 #3138 [Verbose] >
00:01:31 #3139 [Verbose] > module Runtime =
00:01:31 #3140 [Verbose] >
00:01:31 #3141 [Verbose] > #if !INTERACTIVE
00:01:31 #3142 [Verbose] > open Lib
00:01:31 #3143 [Verbose] > #endif
00:01:31 #3144 [Verbose] >
00:01:31 #3145 [Verbose] > open Common
00:01:31 #3146 [Verbose] >
00:01:31 #3147 [Verbose] > /// ## isWindows
00:01:31 #3148 [Verbose] >
00:01:31 #3149 [Verbose] > let isWindows =
00:01:31 #3150 [Verbose] > fun () ->
00:01:31 #3151 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:01:31 #3152 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:01:31 #3153 [Verbose] > |> memoize
00:01:31 #3154 [Verbose] >
00:01:31 #3155 [Verbose] > /// ## getExecutableSuffix
00:01:31 #3156 [Verbose] >
00:01:31 #3157 [Verbose] > let inline getExecutableSuffix () =
00:01:31 #3158 [Verbose] > if isWindows ()
00:01:31 #3159 [Verbose] > then ".exe"
00:01:31 #3160 [Verbose] > else ""
00:01:31 #3161 [Verbose] >
00:01:31 #3162 [Verbose] > /// ## splitCommand
00:01:31 #3163 [Verbose] >
00:01:31 #3164 [Verbose] > type private CommandParseStep =
00:01:31 #3165 [Verbose] > | Start
00:01:31 #3166 [Verbose] > | Path of quoted: bool
00:01:31 #3167 [Verbose] > | Arguments
00:01:31 #3168 [Verbose] >
00:01:31 #3169 [Verbose] > let splitCommand (command: string) =
00:01:31 #3170 [Verbose] > let rec loop (path, args) chars step =
00:01:31 #3171 [Verbose] > match chars, step with
00:01:31 #3172 [Verbose] > | ('"' | '\'') ...
00:01:32 #3173 [Verbose] >
00:01:32 #3174 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3175 [Verbose] > #if !INTERACTIVE
00:01:32 #3176 [Verbose] > open Lib
00:01:32 #3177 [Verbose] > #endif
00:01:32 #3178 [Verbose] >
00:01:32 #3179 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3180 [Verbose] > open Common
00:01:32 #3181 [Verbose] > open SpiralFileSystem.Operators
00:01:32 #3182 [Verbose] >
00:01:32 #3183 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #3184 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #3185 [Verbose] > │ ## readAllTextAsync │
00:01:32 #3186 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3187 [Verbose] >
00:01:32 #3188 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3189 [Verbose] > let inline readAllTextAsync path =
00:01:32 #3190 [Verbose] > path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
00:01:32 #3191 [Verbose] >
00:01:32 #3192 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #3193 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #3194 [Verbose] > │ ## fileExistsContent │
00:01:32 #3195 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3196 [Verbose] >
00:01:32 #3197 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3198 [Verbose] > let inline fileExistsContent path content = async {
00:01:32 #3199 [Verbose] > if path |> System.IO.File.Exists |> not
00:01:32 #3200 [Verbose] > then return false
00:01:32 #3201 [Verbose] > else
00:01:32 #3202 [Verbose] > let! existingContent = path |> readAllTextAsync
00:01:32 #3203 [Verbose] > return content = existingContent
00:01:32 #3204 [Verbose] > }
00:01:32 #3205 [Verbose] >
00:01:32 #3206 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #3207 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #3208 [Verbose] > │ ## writeAllTextAsync │
00:01:32 #3209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3210 [Verbose] >
00:01:32 #3211 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3212 [Verbose] > let inline writeAllTextAsync path contents =
00:01:32 #3213 [Verbose] > System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
00:01:32 #3214 [Verbose] >
00:01:32 #3215 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #3216 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #3217 [Verbose] > │ ## writeAllTextExists │
00:01:32 #3218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3219 [Verbose] >
00:01:32 #3220 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3221 [Verbose] > let inline writeAllTextExists path contents = async {
00:01:32 #3222 [Verbose] > let! exists = contents |> fileExistsContent path
00:01:32 #3223 [Verbose] > if not exists
00:01:32 #3224 [Verbose] > then do! contents |> writeAllTextAsync path
00:01:32 #3225 [Verbose] > }
00:01:32 #3226 [Verbose] >
00:01:32 #3227 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:32 #3228 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:32 #3229 [Verbose] > │ ## waitForFileAccess │
00:01:32 #3230 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:32 #3231 [Verbose] >
00:01:32 #3232 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3233 [Verbose] > let inline waitForFileAccess access path =
00:01:32 #3234 [Verbose] > let fileAccess, fileShare =
00:01:32 #3235 [Verbose] > access
00:01:32 #3236 [Verbose] > |> Option.defaultValue (System.IO.FileAccess.ReadWrite,
00:01:32 #3237 [Verbose] > System.IO.FileShare.Read)
00:01:32 #3238 [Verbose] >
00:01:32 #3239 [Verbose] > let rec loop retry = async {
00:01:32 #3240 [Verbose] > try
00:01:32 #3241 [Verbose] > use _ = new System.IO.FileStream (
00:01:32 #3242 [Verbose] > path,
00:01:32 #3243 [Verbose] > System.IO.FileMode.Open,
00:01:32 #3244 [Verbose] > fileAccess,
00:01:32 #3245 [Verbose] > fileShare
00:01:32 #3246 [Verbose] > )
00:01:32 #3247 [Verbose] > return retry
00:01:32 #3248 [Verbose] > with ex ->
00:01:32 #3249 [Verbose] > if retry % 100 = 0 then
00:01:32 #3250 [Verbose] > let getLocals () = $"path: {path |> System.IO.Path.GetFileName}
00:01:32 #3251 [Verbose] > / ex: {ex |> SpiralSm.format_exception} / {getLocals ()}"
00:01:32 #3252 [Verbose] > trace Debug (fun () -> "waitForFileAccess") getLocals
00:01:32 #3253 [Verbose] > do! Async.Sleep 10
00:01:32 #3254 [Verbose] > return! loop (retry + 1)
00:01:32 #3255 [Verbose] > }
00:01:32 #3256 [Verbose] > loop 0
00:01:32 #3257 [Verbose] >
00:01:32 #3258 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:32 #3259 [Verbose] > //// test
00:01:32 #3260 [Verbose] >
00:01:32 #3261 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()
00:01:32 #3262 [Verbose] > let path = tempFolder </> "test.txt"
00:01:32 #3263 [Verbose] >
00:01:32 #3264 [Verbose] > let inline lockFile () = async {
00:01:32 #3265 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:32 #3266 [Verbose] > use stream = new System.IO.FileStream (
00:01:32 #3267 [Verbose] > path,
00:01:32 #3268 [Verbose] > System.IO.FileMode.Open,
00:01:32 #3269 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:32 #3270 [Verbose] > System.IO.FileShare.None
00:01:32 #3271 [Verbose] > )
00:01:32 #3272 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:32 #3273 [Verbose] > do! Async.Sleep 2000
00:01:32 #3274 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:32 #3275 [Verbose] > stream.Seek (0L, SeekOrigin.Begin) |> ignore
00:01:32 #3276 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:01:32 #3277 [Verbose] > stream.WriteByte 49uy
00:01:32 #3278 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:01:32 #3279 [Verbose] > stream.Flush ()
00:01:32 #3280 [Verbose] > trace Debug (fun () -> "_6") getLocals
00:01:32 #3281 [Verbose] > }
00:01:32 #3282 [Verbose] >
00:01:32 #3283 [Verbose] > async {
00:01:32 #3284 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:32 #3285 [Verbose] > do! "0" |> writeAllTextAsync path
00:01:32 #3286 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:32 #3287 [Verbose] > let! child = lockFile () |> Async.StartChild
00:01:32 #3288 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:32 #3289 [Verbose] > do! Async.Sleep 1
00:01:32 #3290 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:32 #3291 [Verbose] > let! retries = path |> waitForFileAccess None
00:01:32 #3292 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:32 #3293 [Verbose] > let! text = path |> readAllTextAsync
00:01:32 #3294 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:32 #3295 [Verbose] > do! child
00:01:32 #3296 [Verbose] > trace Debug (fun () -> "7") getLocals
00:01:32 #3297 [Verbose] > return retries, text
00:01:32 #3298 [Verbose] > }
00:01:32 #3299 [Verbose] > |> Async.runWithTimeout 3000
00:01:32 #3300 [Verbose] > |> function
00:01:32 #3301 [Verbose] > | Some (retries, text) ->
00:01:32 #3302 [Verbose] > retries
00:01:32 #3303 [Verbose] > |> _isBetween
00:01:32 #3304 [Verbose] > (if Runtime.isWindows () then 50 else 100)
00:01:32 #3305 [Verbose] > (if Runtime.isWindows () then 150 else 200)
00:01:32 #3306 [Verbose] >
00:01:32 #3307 [Verbose] > text |> _assertEqual "1"
00:01:32 #3308 [Verbose] >
00:01:32 #3309 [Verbose] > true
00:01:32 #3310 [Verbose] > | _ -> false
00:01:32 #3311 [Verbose] > |> _assertEqual true
00:01:35 #3312 [Verbose] >
00:01:35 #3313 [Verbose] > ╭─[ 2.42s - stdout ]───────────────────────────────────────────────────────────╮
00:01:35 #3314 [Verbose] > │ 00:00:00 #1 [Debug] 1 │
00:01:35 #3315 [Verbose] > │ 00:00:00 #2 [Debug] 2 │
00:01:35 #3316 [Verbose] > │ 00:00:00 #4 [Debug] 3 │
00:01:35 #3317 [Verbose] > │ 00:00:00 #4 [Debug] _1 │
00:01:35 #3318 [Verbose] > │ 00:00:00 #5 [Debug] _2 │
00:01:35 #3319 [Verbose] > │ 00:00:00 #6 [Debug] 4 │
00:01:35 #3320 [Verbose] > │ 00:00:00 #7 [Debug] waitForFileAccess / path: test.txt / ex: │
00:01:35 #3321 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:35 #3322 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5140-4007-4e88 │
00:01:35 #3323 [Verbose] > │ fa8e13bf\test.txt' because it is being used by another process. │
00:01:35 #3324 [Verbose] > │ 00:00:01 #8 [Debug] waitForFileAccess / path: test.txt / ex: │
00:01:35 #3325 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:35 #3326 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5140-4007-4e88 │
00:01:35 #3327 [Verbose] > │ fa8e13bf\test.txt' because it is being used by another process. │
00:01:35 #3328 [Verbose] > │ 00:00:02 #9 [Debug] _3 │
00:01:35 #3329 [Verbose] > │ 00:00:02 #10 [Debug] _4 │
00:01:35 #3330 [Verbose] > │ 00:00:02 #11 [Debug] _5 │
00:01:35 #3331 [Verbose] > │ 00:00:02 #12 [Debug] _6 │
00:01:35 #3332 [Verbose] > │ 00:00:02 #13 [Debug] 5 │
00:01:35 #3333 [Verbose] > │ 00:00:02 #14 [Debug] 6 │
00:01:35 #3334 [Verbose] > │ 00:00:02 #15 [Debug] 7 │
00:01:35 #3335 [Verbose] > │ 128 │
00:01:35 #3336 [Verbose] > │ 128 │
00:01:35 #3337 [Verbose] > │ 128 │
00:01:35 #3338 [Verbose] > │ 1 │
00:01:35 #3339 [Verbose] > │ True │
00:01:35 #3340 [Verbose] > │ │
00:01:35 #3341 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:35 #3342 [Verbose] >
00:01:35 #3343 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:35 #3344 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:35 #3345 [Verbose] > │ ## readAllTextRetryAsync │
00:01:35 #3346 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:35 #3347 [Verbose] >
00:01:35 #3348 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:35 #3349 [Verbose] > let inline readAllTextRetryAsync fullPath =
00:01:35 #3350 [Verbose] > let rec loop retry = async {
00:01:35 #3351 [Verbose] > try
00:01:35 #3352 [Verbose] > if retry > 0
00:01:35 #3353 [Verbose] > then do!
00:01:35 #3354 [Verbose] > fullPath
00:01:35 #3355 [Verbose] > |> waitForFileAccess (Some (
00:01:35 #3356 [Verbose] > System.IO.FileAccess.Read,
00:01:35 #3357 [Verbose] > System.IO.FileShare.Read
00:01:35 #3358 [Verbose] > ))
00:01:35 #3359 [Verbose] > |> Async.runWithTimeoutAsync 1000
00:01:35 #3360 [Verbose] > |> Async.Ignore
00:01:35 #3361 [Verbose] > return! fullPath |> readAllTextAsync |> Async.map Some
00:01:35 #3362 [Verbose] > with ex ->
00:01:35 #3363 [Verbose] > let getLocals () = $"retry: {retry} / ex: {ex |>
00:01:35 #3364 [Verbose] > SpiralSm.format_exception} / {getLocals ()}"
00:01:35 #3365 [Verbose] > trace Debug (fun () -> $"watchWithFilter / readContent") getLocals
00:01:35 #3366 [Verbose] > if retry = 0
00:01:35 #3367 [Verbose] > then return! loop (retry + 1)
00:01:35 #3368 [Verbose] > else return None
00:01:35 #3369 [Verbose] > }
00:01:35 #3370 [Verbose] > loop 0
00:01:35 #3371 [Verbose] >
00:01:35 #3372 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:35 #3373 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:35 #3374 [Verbose] > │ ## deleteDirectoryAsync │
00:01:35 #3375 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:35 #3376 [Verbose] >
00:01:35 #3377 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:35 #3378 [Verbose] > let inline deleteDirectoryAsync path =
00:01:35 #3379 [Verbose] > let rec loop retry = async {
00:01:35 #3380 [Verbose] > try
00:01:35 #3381 [Verbose] > System.IO.Directory.Delete (path, true)
00:01:35 #3382 [Verbose] > return retry
00:01:35 #3383 [Verbose] > with ex ->
00:01:35 #3384 [Verbose] > if retry % 100 = 0 then
00:01:35 #3385 [Verbose] > let getLocals () = $"path: {path |> System.IO.Path.GetFileName}
00:01:35 #3386 [Verbose] > / ex: {ex |> SpiralSm.format_exception} / {getLocals ()}"
00:01:35 #3387 [Verbose] > trace Debug (fun () -> "deleteDirectoryAsync") getLocals
00:01:35 #3388 [Verbose] > do! Async.Sleep 10
00:01:35 #3389 [Verbose] > return! loop (retry + 1)
00:01:35 #3390 [Verbose] > }
00:01:35 #3391 [Verbose] > loop 0
00:01:35 #3392 [Verbose] >
00:01:35 #3393 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:35 #3394 [Verbose] > //// test
00:01:35 #3395 [Verbose] >
00:01:35 #3396 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()
00:01:35 #3397 [Verbose] > let path = tempFolder </> "test"
00:01:35 #3398 [Verbose] >
00:01:35 #3399 [Verbose] > let inline lockDirectory () = async {
00:01:35 #3400 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:35 #3401 [Verbose] > System.IO.File.WriteAllText (path </> "test.txt", "0")
00:01:35 #3402 [Verbose] > use _ = new System.IO.FileStream (
00:01:35 #3403 [Verbose] > path </> "test.txt",
00:01:35 #3404 [Verbose] > System.IO.FileMode.Open,
00:01:35 #3405 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:35 #3406 [Verbose] > System.IO.FileShare.None
00:01:35 #3407 [Verbose] > )
00:01:35 #3408 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:35 #3409 [Verbose] > do! Async.Sleep 2000
00:01:35 #3410 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:35 #3411 [Verbose] > }
00:01:35 #3412 [Verbose] >
00:01:35 #3413 [Verbose] > async {
00:01:35 #3414 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:35 #3415 [Verbose] > Directory.CreateDirectory path |> ignore
00:01:35 #3416 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:35 #3417 [Verbose] > let! child = lockDirectory () |> Async.StartChild
00:01:35 #3418 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:35 #3419 [Verbose] > do! Async.Sleep 60
00:01:35 #3420 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:35 #3421 [Verbose] > let! retries = deleteDirectoryAsync path
00:01:35 #3422 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:35 #3423 [Verbose] > do! child
00:01:35 #3424 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:35 #3425 [Verbose] > return retries
00:01:35 #3426 [Verbose] > }
00:01:35 #3427 [Verbose] > |> Async.runWithTimeout 3000
00:01:35 #3428 [Verbose] > |> function
00:01:35 #3429 [Verbose] > | Some retries ->
00:01:35 #3430 [Verbose] > retries
00:01:35 #3431 [Verbose] > |> _isBetween
00:01:35 #3432 [Verbose] > (if Runtime.isWindows () then 50 else 0)
00:01:35 #3433 [Verbose] > (if Runtime.isWindows () then 150 else 0)
00:01:35 #3434 [Verbose] >
00:01:35 #3435 [Verbose] > true
00:01:35 #3436 [Verbose] > | _ -> false
00:01:35 #3437 [Verbose] > |> _assertEqual true
00:01:37 #3438 [Verbose] >
00:01:37 #3439 [Verbose] > ╭─[ 2.30s - stdout ]───────────────────────────────────────────────────────────╮
00:01:37 #3440 [Verbose] > │ 00:00:02 #16 [Debug] 1 │
00:01:37 #3441 [Verbose] > │ 00:00:02 #17 [Debug] 2 │
00:01:37 #3442 [Verbose] > │ 00:00:02 #18 [Debug] 3 │
00:01:37 #3443 [Verbose] > │ 00:00:02 #19 [Debug] _1 │
00:01:37 #3444 [Verbose] > │ 00:00:02 #20 [Debug] _2 │
00:01:37 #3445 [Verbose] > │ 00:00:02 #21 [Debug] 4 │
00:01:37 #3446 [Verbose] > │ 00:00:02 #22 [Debug] deleteDirectoryAsync / path: test / ex: │
00:01:37 #3447 [Verbose] > │ System.IO.IOException: The process cannot access the file 'test.txt' because │
00:01:37 #3448 [Verbose] > │ it is being used by another process. │
00:01:37 #3449 [Verbose] > │ 00:00:04 #23 [Debug] deleteDirectoryAsync / path: test / ex: │
00:01:37 #3450 [Verbose] > │ System.IO.IOException: The process cannot access the file 'test.txt' because │
00:01:37 #3451 [Verbose] > │ it is being used by another process. │
00:01:37 #3452 [Verbose] > │ 00:00:04 #24 [Debug] _3 │
00:01:37 #3453 [Verbose] > │ 00:00:04 #25 [Debug] 5 │
00:01:37 #3454 [Verbose] > │ 00:00:04 #26 [Debug] 6 │
00:01:37 #3455 [Verbose] > │ 124 │
00:01:37 #3456 [Verbose] > │ 124 │
00:01:37 #3457 [Verbose] > │ 124 │
00:01:37 #3458 [Verbose] > │ True │
00:01:37 #3459 [Verbose] > │ │
00:01:37 #3460 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #3461 [Verbose] >
00:01:37 #3462 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:37 #3463 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:37 #3464 [Verbose] > │ ## deleteFileAsync │
00:01:37 #3465 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #3466 [Verbose] >
00:01:37 #3467 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:37 #3468 [Verbose] > let inline deleteFileAsync path =
00:01:37 #3469 [Verbose] > let rec loop retry = async {
00:01:37 #3470 [Verbose] > try
00:01:37 #3471 [Verbose] > System.IO.File.Delete path
00:01:37 #3472 [Verbose] > return retry
00:01:37 #3473 [Verbose] > with ex ->
00:01:37 #3474 [Verbose] > if retry % 100 = 0 then
00:01:37 #3475 [Verbose] > let getLocals () = $"path: {path |> System.IO.Path.GetFileName}
00:01:37 #3476 [Verbose] > / ex: {ex |> SpiralSm.format_exception} / {getLocals ()}"
00:01:37 #3477 [Verbose] > trace Warning (fun () -> "deleteFileAsync") getLocals
00:01:37 #3478 [Verbose] > do! Async.Sleep 10
00:01:37 #3479 [Verbose] > return! loop (retry + 1)
00:01:37 #3480 [Verbose] > }
00:01:37 #3481 [Verbose] > loop 0
00:01:37 #3482 [Verbose] >
00:01:37 #3483 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:37 #3484 [Verbose] > //// test
00:01:37 #3485 [Verbose] >
00:01:37 #3486 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()
00:01:37 #3487 [Verbose] > let path = tempFolder </> "test.txt"
00:01:37 #3488 [Verbose] >
00:01:37 #3489 [Verbose] > let inline lockFile () = async {
00:01:37 #3490 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:37 #3491 [Verbose] > use _ = new System.IO.FileStream (
00:01:37 #3492 [Verbose] > path,
00:01:37 #3493 [Verbose] > System.IO.FileMode.Open,
00:01:37 #3494 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:37 #3495 [Verbose] > System.IO.FileShare.None
00:01:37 #3496 [Verbose] > )
00:01:37 #3497 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:37 #3498 [Verbose] > do! Async.Sleep 2000
00:01:37 #3499 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:37 #3500 [Verbose] > }
00:01:37 #3501 [Verbose] >
00:01:37 #3502 [Verbose] > async {
00:01:37 #3503 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:37 #3504 [Verbose] > do! "0" |> writeAllTextAsync path
00:01:37 #3505 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:37 #3506 [Verbose] > let! child = lockFile () |> Async.StartChild
00:01:37 #3507 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:37 #3508 [Verbose] > do! Async.Sleep 1
00:01:37 #3509 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:37 #3510 [Verbose] > let! retries = deleteFileAsync path
00:01:37 #3511 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:37 #3512 [Verbose] > do! child
00:01:37 #3513 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:37 #3514 [Verbose] > return retries
00:01:37 #3515 [Verbose] > }
00:01:37 #3516 [Verbose] > |> Async.runWithTimeout 3000
00:01:37 #3517 [Verbose] > |> function
00:01:37 #3518 [Verbose] > | Some retries ->
00:01:37 #3519 [Verbose] > retries
00:01:37 #3520 [Verbose] > |> _isBetween
00:01:37 #3521 [Verbose] > (if Runtime.isWindows () then 50 else 0)
00:01:37 #3522 [Verbose] > (if Runtime.isWindows () then 150 else 0)
00:01:37 #3523 [Verbose] >
00:01:37 #3524 [Verbose] > true
00:01:37 #3525 [Verbose] > | _ -> false
00:01:37 #3526 [Verbose] > |> _assertEqual true
00:01:40 #3527 [Verbose] >
00:01:40 #3528 [Verbose] > ╭─[ 2.22s - stdout ]───────────────────────────────────────────────────────────╮
00:01:40 #3529 [Verbose] > │ 00:00:04 #27 [Debug] 1 │
00:01:40 #3530 [Verbose] > │ 00:00:04 #28 [Debug] 2 │
00:01:40 #3531 [Verbose] > │ 00:00:04 #29 [Debug] 3 │
00:01:40 #3532 [Verbose] > │ 00:00:04 #30 [Debug] _1 │
00:01:40 #3533 [Verbose] > │ 00:00:04 #31 [Debug] _2 │
00:01:40 #3534 [Verbose] > │ 00:00:04 #32 [Debug] 4 │
00:01:40 #3535 [Verbose] > │ 00:00:04 #33 [Warning] deleteFileAsync / path: test.txt / ex: │
00:01:40 #3536 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:40 #3537 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5638-3875-3e64 │
00:01:40 #3538 [Verbose] > │ 4450d5de\test.txt' because it is being used by another process. │
00:01:40 #3539 [Verbose] > │ 00:00:06 #34 [Warning] deleteFileAsync / path: test.txt / ex: │
00:01:40 #3540 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:01:40 #3541 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5638-3875-3e64 │
00:01:40 #3542 [Verbose] > │ 4450d5de\test.txt' because it is being used by another process. │
00:01:40 #3543 [Verbose] > │ 00:00:06 #35 [Debug] _3 │
00:01:40 #3544 [Verbose] > │ 00:00:06 #36 [Debug] 5 │
00:01:40 #3545 [Verbose] > │ 00:00:06 #37 [Debug] 6 │
00:01:40 #3546 [Verbose] > │ 128 │
00:01:40 #3547 [Verbose] > │ 128 │
00:01:40 #3548 [Verbose] > │ 128 │
00:01:40 #3549 [Verbose] > │ True │
00:01:40 #3550 [Verbose] > │ │
00:01:40 #3551 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #3552 [Verbose] >
00:01:40 #3553 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #3554 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #3555 [Verbose] > │ ## moveFileAsync │
00:01:40 #3556 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #3557 [Verbose] >
00:01:40 #3558 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:40 #3559 [Verbose] > let inline moveFileAsync newPath oldPath =
00:01:40 #3560 [Verbose] > let rec loop retry = async {
00:01:40 #3561 [Verbose] > try
00:01:40 #3562 [Verbose] > System.IO.File.Move (oldPath, newPath)
00:01:40 #3563 [Verbose] > return retry
00:01:40 #3564 [Verbose] > with ex ->
00:01:40 #3565 [Verbose] > if retry % 100 = 0 then
00:01:40 #3566 [Verbose] > let getLocals () =
00:01:40 #3567 [Verbose] > $"oldPath: {oldPath |> System.IO.Path.GetFileName}
00:01:40 #3568 [Verbose] > newPath: {newPath |> System.IO.Path.GetFileName} / ex: {ex |>
00:01:40 #3569 [Verbose] > SpiralSm.format_exception} / {getLocals ()}"
00:01:40 #3570 [Verbose] > trace Warning (fun () -> "moveFileAsync") getLocals
00:01:40 #3571 [Verbose] > do! Async.Sleep 10
00:01:40 #3572 [Verbose] > return! loop (retry + 1)
00:01:40 #3573 [Verbose] > }
00:01:40 #3574 [Verbose] > loop 0
00:01:40 #3575 [Verbose] >
00:01:40 #3576 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:40 #3577 [Verbose] > //// test
00:01:40 #3578 [Verbose] >
00:01:40 #3579 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()
00:01:40 #3580 [Verbose] > let path = tempFolder </> "test.txt"
00:01:40 #3581 [Verbose] > let newPath = tempFolder </> "test2.txt"
00:01:40 #3582 [Verbose] >
00:01:40 #3583 [Verbose] > let inline lockFile () = async {
00:01:40 #3584 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:01:40 #3585 [Verbose] > use _ = new System.IO.FileStream (
00:01:40 #3586 [Verbose] > path,
00:01:40 #3587 [Verbose] > System.IO.FileMode.Open,
00:01:40 #3588 [Verbose] > System.IO.FileAccess.ReadWrite,
00:01:40 #3589 [Verbose] > System.IO.FileShare.None
00:01:40 #3590 [Verbose] > )
00:01:40 #3591 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:01:40 #3592 [Verbose] > do! Async.Sleep 2000
00:01:40 #3593 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:01:40 #3594 [Verbose] > }
00:01:40 #3595 [Verbose] >
00:01:40 #3596 [Verbose] > async {
00:01:40 #3597 [Verbose] > trace Debug (fun () -> "1") getLocals
00:01:40 #3598 [Verbose] > do! "0" |> writeAllTextAsync path
00:01:40 #3599 [Verbose] > trace Debug (fun () -> "2") getLocals
00:01:40 #3600 [Verbose] > let! child = lockFile () |> Async.StartChild
00:01:40 #3601 [Verbose] > trace Debug (fun () -> "3") getLocals
00:01:40 #3602 [Verbose] > do! Async.Sleep 1
00:01:40 #3603 [Verbose] > trace Debug (fun () -> "4") getLocals
00:01:40 #3604 [Verbose] > let! retries1 = path |> moveFileAsync newPath
00:01:40 #3605 [Verbose] > trace Debug (fun () -> "5") getLocals
00:01:40 #3606 [Verbose] > let! retries2 = newPath |> waitForFileAccess None
00:01:40 #3607 [Verbose] > trace Debug (fun () -> "6") getLocals
00:01:40 #3608 [Verbose] > let! text = newPath |> readAllTextAsync
00:01:40 #3609 [Verbose] > trace Debug (fun () -> "7") getLocals
00:01:40 #3610 [Verbose] > do! child
00:01:40 #3611 [Verbose] > trace Debug (fun () -> "8") getLocals
00:01:40 #3612 [Verbose] > return retries1, retries2, text
00:01:40 #3613 [Verbose] > }
00:01:40 #3614 [Verbose] > |> Async.runWithTimeout 3000
00:01:40 #3615 [Verbose] > |> function
00:01:40 #3616 [Verbose] > | Some (retries1, retries2, text) ->
00:01:40 #3617 [Verbose] > retries1
00:01:40 #3618 [Verbose] > |> _isBetween
00:01:40 #3619 [Verbose] > (if Runtime.isWindows () then 50 else 0)
00:01:40 #3620 [Verbose] > (if Runtime.isWindows () then 150 else 0)
00:01:40 #3621 [Verbose] >
00:01:40 #3622 [Verbose] > retries2
00:01:40 #3623 [Verbose] > |> _isBetween
00:01:40 #3624 [Verbose] > (if Runtime.isWindows () then 0 else 100)
00:01:40 #3625 [Verbose] > (if Runtime.isWindows () then 0 else 200)
00:01:40 #3626 [Verbose] >
00:01:40 #3627 [Verbose] > text |> _assertEqual "0"
00:01:40 #3628 [Verbose] >
00:01:40 #3629 [Verbose] > true
00:01:40 #3630 [Verbose] > | _ -> false
00:01:40 #3631 [Verbose] > |> _assertEqual true
00:01:42 #3632 [Verbose] >
00:01:42 #3633 [Verbose] > ╭─[ 2.30s - stdout ]───────────────────────────────────────────────────────────╮
00:01:42 #3634 [Verbose] > │ 00:00:07 #38 [Debug] 1 │
00:01:42 #3635 [Verbose] > │ 00:00:07 #39 [Debug] 2 │
00:01:42 #3636 [Verbose] > │ 00:00:07 #40 [Debug] 3 │
00:01:42 #3637 [Verbose] > │ 00:00:07 #41 [Debug] _1 │
00:01:42 #3638 [Verbose] > │ 00:00:07 #42 [Debug] _2 │
00:01:42 #3639 [Verbose] > │ 00:00:07 #43 [Debug] 4 │
00:01:42 #3640 [Verbose] > │ 00:00:07 #44 [Warning] moveFileAsync / oldPath: test.txt / newPath: │
00:01:42 #3641 [Verbose] > │ test2.txt / ex: System.IO.IOException: The process cannot access the file │
00:01:42 #3642 [Verbose] > │ because it is being used by another process. │
00:01:42 #3643 [Verbose] > │ 00:00:08 #45 [Warning] moveFileAsync / oldPath: test.txt / newPath: │
00:01:42 #3644 [Verbose] > │ test2.txt / ex: System.IO.IOException: The process cannot access the file │
00:01:42 #3645 [Verbose] > │ because it is being used by another process. │
00:01:42 #3646 [Verbose] > │ 00:00:09 #46 [Debug] _3 │
00:01:42 #3647 [Verbose] > │ 00:00:09 #47 [Debug] 5 │
00:01:42 #3648 [Verbose] > │ 00:00:09 #48 [Debug] 6 │
00:01:42 #3649 [Verbose] > │ 00:00:09 #49 [Debug] 7 │
00:01:42 #3650 [Verbose] > │ 00:00:09 #50 [Debug] 8 │
00:01:42 #3651 [Verbose] > │ 128 │
00:01:42 #3652 [Verbose] > │ 128 │
00:01:42 #3653 [Verbose] > │ 128 │
00:01:42 #3654 [Verbose] > │ 0 │
00:01:42 #3655 [Verbose] > │ 0 │
00:01:42 #3656 [Verbose] > │ 0 │
00:01:42 #3657 [Verbose] > │ 0 │
00:01:42 #3658 [Verbose] > │ True │
00:01:42 #3659 [Verbose] > │ │
00:01:42 #3660 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #3661 [Verbose] >
00:01:42 #3662 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:42 #3663 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:42 #3664 [Verbose] > │ ## watchDirectory │
00:01:42 #3665 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #3666 [Verbose] >
00:01:42 #3667 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:42 #3668 [Verbose] > [[<RequireQualifiedAccess>]]
00:01:42 #3669 [Verbose] > type FileSystemChangeType =
00:01:42 #3670 [Verbose] > | Failure
00:01:42 #3671 [Verbose] > | Changed
00:01:42 #3672 [Verbose] > | Created
00:01:42 #3673 [Verbose] > | Deleted
00:01:42 #3674 [Verbose] > | Renamed
00:01:42 #3675 [Verbose] >
00:01:42 #3676 [Verbose] > [[<RequireQualifiedAccess>]]
00:01:42 #3677 [Verbose] > type FileSystemChange =
00:01:42 #3678 [Verbose] > | Failure of exn: exn
00:01:42 #3679 [Verbose] > | Changed of path: string * content: string option
00:01:42 #3680 [Verbose] > | Created of path: string * content: string option
00:01:42 #3681 [Verbose] > | Deleted of path: string
00:01:42 #3682 [Verbose] > | Renamed of oldPath: string * (string * string option)
00:01:42 #3683 [Verbose] >
00:01:42 #3684 [Verbose] >
00:01:42 #3685 [Verbose] > let inline watchDirectoryWithFilter filter shouldReadContent path =
00:01:42 #3686 [Verbose] > let fullPath = path |> System.IO.Path.GetFullPath
00:01:42 #3687 [Verbose] > let getLocals () = $"filter: {filter} / {getLocals ()}"
00:01:42 #3688 [Verbose] >
00:01:42 #3689 [Verbose] > let watcher =
00:01:42 #3690 [Verbose] > new System.IO.FileSystemWatcher (
00:01:42 #3691 [Verbose] > Path = fullPath,
00:01:42 #3692 [Verbose] > NotifyFilter = filter,
00:01:42 #3693 [Verbose] > EnableRaisingEvents = true,
00:01:42 #3694 [Verbose] > IncludeSubdirectories = true
00:01:42 #3695 [Verbose] > )
00:01:42 #3696 [Verbose] >
00:01:42 #3697 [Verbose] > let inline getEventPath (path : string) =
00:01:42 #3698 [Verbose] > path |> SpiralSm.trim |> SpiralSm.replace fullPath "" |>
00:01:42 #3699 [Verbose] > SpiralSm.trim_start [[| '/'; '\\' |]]
00:01:42 #3700 [Verbose] >
00:01:42 #3701 [Verbose] > let inline ticks () =
00:01:42 #3702 [Verbose] > System.DateTime.UtcNow.Ticks
00:01:42 #3703 [Verbose] >
00:01:42 #3704 [Verbose] > let changedStream =
00:01:42 #3705 [Verbose] > AsyncSeq.subscribeEvent
00:01:42 #3706 [Verbose] > watcher.Changed
00:01:42 #3707 [Verbose] > (fun event ->
00:01:42 #3708 [Verbose] > ticks (),
00:01:42 #3709 [Verbose] > [[ FileSystemChange.Changed (getEventPath event.FullPath, None)
00:01:42 #3710 [Verbose] > ]]
00:01:42 #3711 [Verbose] > )
00:01:42 #3712 [Verbose] >
00:01:42 #3713 [Verbose] > let deletedStream =
00:01:42 #3714 [Verbose] > AsyncSeq.subscribeEvent
00:01:42 #3715 [Verbose] > watcher.Deleted
00:01:42 #3716 [Verbose] > (fun event ->
00:01:42 #3717 [Verbose] > ticks (),
00:01:42 #3718 [Verbose] > [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]]
00:01:42 #3719 [Verbose] > )
00:01:42 #3720 [Verbose] >
00:01:42 #3721 [Verbose] > let createdStream =
00:01:42 #3722 [Verbose] > AsyncSeq.subscribeEvent
00:01:42 #3723 [Verbose] > watcher.Created
00:01:42 #3724 [Verbose] > (fun event ->
00:01:42 #3725 [Verbose] > let path = getEventPath event.FullPath
00:01:42 #3726 [Verbose] > ticks (), [[
00:01:42 #3727 [Verbose] > FileSystemChange.Created (path, None)
00:01:42 #3728 [Verbose] > if Runtime.isWindows () then
00:01:42 #3729 [Verbose] > FileSystemChange.Changed (path, None)
00:01:42 #3730 [Verbose] > ]])
00:01:42 #3731 [Verbose] >
00:01:42 #3732 [Verbose] > let renamedStream =
00:01:42 #3733 [Verbose] > AsyncSeq.subscribeEvent
00:01:42 #3734 [Verbose] > watcher.Renamed
00:01:42 #3735 [Verbose] > (fun event ->
00:01:42 #3736 [Verbose] > ticks (), [[
00:01:42 #3737 [Verbose] > FileSystemChange.Renamed (
00:01:42 #3738 [Verbose] > getEventPath event.OldFullPath,
00:01:42 #3739 [Verbose] > (getEventPath event.FullPath, None)
00:01:42 #3740 [Verbose] > )
00:01:42 #3741 [Verbose] > ]]
00:01:42 #3742 [Verbose] > )
00:01:42 #3743 [Verbose] >
00:01:42 #3744 [Verbose] > let failureStream =
00:01:42 #3745 [Verbose] > AsyncSeq.subscribeEvent
00:01:42 #3746 [Verbose] > watcher.Error
00:01:42 #3747 [Verbose] > (fun event -> ticks (), [[ FileSystemChange.Failure
00:01:42 #3748 [Verbose] > (event.GetException ()) ]])
00:01:42 #3749 [Verbose] >
00:01:42 #3750 [Verbose] > let stream =
00:01:42 #3751 [Verbose] > [[
00:01:42 #3752 [Verbose] > changedStream
00:01:42 #3753 [Verbose] > deletedStream
00:01:42 #3754 [Verbose] > createdStream
00:01:42 #3755 [Verbose] > renamedStream
00:01:42 #3756 [Verbose] > failureStream
00:01:42 #3757 [Verbose] > ]]
00:01:42 #3758 [Verbose] > |> FSharp.Control.AsyncSeq.mergeAll
00:01:42 #3759 [Verbose] > |> FSharp.Control.AsyncSeq.map (fun (t, events) ->
00:01:42 #3760 [Verbose] > events
00:01:42 #3761 [Verbose] > |> List.fold
00:01:42 #3762 [Verbose] > (fun (i, events) event ->
00:01:42 #3763 [Verbose] > i + 1L,
00:01:42 #3764 [Verbose] > (t + i, event) :: events)
00:01:42 #3765 [Verbose] > (0L, [[]])
00:01:42 #3766 [Verbose] > |> snd
00:01:42 #3767 [Verbose] > |> List.rev
00:01:42 #3768 [Verbose] > )
00:01:42 #3769 [Verbose] > |> FSharp.Control.AsyncSeq.concatSeq
00:01:42 #3770 [Verbose] > |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async {
00:01:42 #3771 [Verbose] > match shouldReadContent event, event with
00:01:42 #3772 [Verbose] > | true, FileSystemChange.Changed (path, _) ->
00:01:42 #3773 [Verbose] > do! Async.Sleep 5
00:01:42 #3774 [Verbose] > let! content = fullPath </> path |> readAllTextRetryAsync
00:01:42 #3775 [Verbose] > return t, FileSystemChange.Changed (path, content)
00:01:42 #3776 [Verbose] > | true, FileSystemChange.Created (path, _) ->
00:01:42 #3777 [Verbose] > do! Async.Sleep 5
00:01:42 #3778 [Verbose] > let! content = fullPath </> path |> readAllTextRetryAsync
00:01:42 #3779 [Verbose] > return t, FileSystemChange.Created (path, content)
00:01:42 #3780 [Verbose] > | true, FileSystemChange.Renamed (oldPath, (newPath, _)) ->
00:01:42 #3781 [Verbose] > let! content = fullPath </> newPath |> readAllTextRetryAsync
00:01:42 #3782 [Verbose] > return t, FileSystemChange.Renamed (oldPath, (newPath, content))
00:01:42 #3783 [Verbose] > | _ -> return t, event
00:01:42 #3784 [Verbose] > })
00:01:42 #3785 [Verbose] >
00:01:42 #3786 [Verbose] > let disposable =
00:01:42 #3787 [Verbose] > new_disposable (fun () ->
00:01:42 #3788 [Verbose] > trace Debug (fun () -> "watchWithFilter / Disposing watch stream")
00:01:42 #3789 [Verbose] > getLocals
00:01:42 #3790 [Verbose] > watcher.EnableRaisingEvents <- false
00:01:42 #3791 [Verbose] > watcher.Dispose ()
00:01:42 #3792 [Verbose] > )
00:01:42 #3793 [Verbose] >
00:01:42 #3794 [Verbose] > stream, disposable
00:01:42 #3795 [Verbose] >
00:01:42 #3796 [Verbose] > let inline watchDirectory path =
00:01:42 #3797 [Verbose] > watchDirectoryWithFilter
00:01:42 #3798 [Verbose] > (System.IO.NotifyFilters.FileName
00:01:42 #3799 [Verbose] > // ||| System.IO.NotifyFilters.DirectoryName
00:01:42 #3800 [Verbose] > // ||| System.IO.NotifyFilters.Attributes
00:01:42 #3801 [Verbose] > //// ||| System.IO.NotifyFilters.Size
00:01:42 #3802 [Verbose] > ||| System.IO.NotifyFilters.LastWrite
00:01:42 #3803 [Verbose] > //// ||| System.IO.NotifyFilters.LastAccess
00:01:42 #3804 [Verbose] > // ||| System.IO.NotifyFilters.CreationTime
00:01:42 #3805 [Verbose] > // ||| System.IO.NotifyFilters.Security
00:01:42 #3806 [Verbose] > )
00:01:42 #3807 [Verbose] > path
00:01:44 #3808 [Verbose] >
00:01:44 #3809 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:44 #3810 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:44 #3811 [Verbose] > │ ### testEventsRaw (test) │
00:01:44 #3812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #3813 [Verbose] >
00:01:44 #3814 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:44 #3815 [Verbose] > //// test
00:01:44 #3816 [Verbose] >
00:01:44 #3817 [Verbose] > let inline testEventsRaw
00:01:44 #3818 [Verbose] > (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 *
00:01:44 #3819 [Verbose] > FileSystemChange> * IDisposable)
00:01:44 #3820 [Verbose] > write
00:01:44 #3821 [Verbose] > =
00:01:44 #3822 [Verbose] > let tempDirectory = SpiralFileSystem.create_temp_directory ()
00:01:44 #3823 [Verbose] > let stream, disposable = watchFn (fun _ -> true) tempDirectory
00:01:44 #3824 [Verbose] >
00:01:44 #3825 [Verbose] > let events = System.Collections.Concurrent.ConcurrentBag ()
00:01:44 #3826 [Verbose] >
00:01:44 #3827 [Verbose] > let inline iter () =
00:01:44 #3828 [Verbose] > stream
00:01:44 #3829 [Verbose] > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {
00:01:44 #3830 [Verbose] > events.Add event })
00:01:44 #3831 [Verbose] >
00:01:44 #3832 [Verbose] > let run = async {
00:01:44 #3833 [Verbose] > let! _ = iter () |> Async.StartChild
00:01:44 #3834 [Verbose] > do! Async.Sleep 250
00:01:44 #3835 [Verbose] > return! write tempDirectory
00:01:44 #3836 [Verbose] > }
00:01:44 #3837 [Verbose] >
00:01:44 #3838 [Verbose] > try
00:01:44 #3839 [Verbose] > run
00:01:44 #3840 [Verbose] > |> Async.runWithTimeout 60000
00:01:44 #3841 [Verbose] > |> _assertEqual (Some ())
00:01:44 #3842 [Verbose] > finally
00:01:44 #3843 [Verbose] > disposable.Dispose ()
00:01:44 #3844 [Verbose] > deleteDirectoryAsync tempDirectory |> Async.Ignore |>
00:01:44 #3845 [Verbose] > Async.RunSynchronously
00:01:44 #3846 [Verbose] >
00:01:44 #3847 [Verbose] > let eventsLog =
00:01:44 #3848 [Verbose] > events
00:01:44 #3849 [Verbose] > |> Seq.toList
00:01:44 #3850 [Verbose] > |> List.sortBy fst
00:01:44 #3851 [Verbose] > |> List.fold
00:01:44 #3852 [Verbose] > (fun (prev, acc) (ticks, event) ->
00:01:44 #3853 [Verbose] > ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event)
00:01:44 #3854 [Verbose] > :: acc
00:01:44 #3855 [Verbose] > )
00:01:44 #3856 [Verbose] > (0L, [[]])
00:01:44 #3857 [Verbose] > |> snd
00:01:44 #3858 [Verbose] > |> List.rev
00:01:44 #3859 [Verbose] > |> List.map (fun (diff, n, event) -> $"{n} / {diff} / {event}" |>
00:01:44 #3860 [Verbose] > SpiralSm.ellipsis_end 100L)
00:01:44 #3861 [Verbose] > |> SpiralSm.concat "\n"
00:01:44 #3862 [Verbose] > let getLocals () = $"eventsLog: \n{eventsLog} / {getLocals ()}"
00:01:44 #3863 [Verbose] > trace Debug (fun () -> "testEventsRaw") getLocals
00:01:44 #3864 [Verbose] >
00:01:44 #3865 [Verbose] > events
00:01:44 #3866 [Verbose] > |> Seq.toList
00:01:44 #3867 [Verbose] > |> List.sortBy fst
00:01:44 #3868 [Verbose] > |> List.map snd
00:01:44 #3869 [Verbose] > |> List.fold
00:01:44 #3870 [Verbose] > (fun acc event ->
00:01:44 #3871 [Verbose] > match acc, event with
00:01:44 #3872 [Verbose] > | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent
00:01:44 #3873 [Verbose] > :: acc,
00:01:44 #3874 [Verbose] > FileSystemChange.Changed (path, Some content)
00:01:44 #3875 [Verbose] > when lastPath = path && content |> SpiralSm.starts_with
00:01:44 #3876 [Verbose] > lastContent
00:01:44 #3877 [Verbose] > ->
00:01:44 #3878 [Verbose] > event :: acc
00:01:44 #3879 [Verbose] > | _ -> event :: acc
00:01:44 #3880 [Verbose] > )
00:01:44 #3881 [Verbose] > [[]]
00:01:44 #3882 [Verbose] > |> List.rev
00:01:44 #3883 [Verbose] >
00:01:44 #3884 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:44 #3885 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:44 #3886 [Verbose] > │ #### fast (test) │
00:01:44 #3887 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #3888 [Verbose] >
00:01:44 #3889 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:44 #3890 [Verbose] > //// test
00:01:44 #3891 [Verbose] >
00:01:44 #3892 [Verbose] > let inline write path = async {
00:01:44 #3893 [Verbose] > let n = 2
00:01:44 #3894 [Verbose] >
00:01:44 #3895 [Verbose] > for i = 1 to n do
00:01:44 #3896 [Verbose] > do! $"a{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:01:44 #3897 [Verbose] >
00:01:44 #3898 [Verbose] > do! Async.Sleep 250
00:01:44 #3899 [Verbose] >
00:01:44 #3900 [Verbose] > for i = 1 to n do
00:01:44 #3901 [Verbose] > do! $"b{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:01:44 #3902 [Verbose] >
00:01:44 #3903 [Verbose] > do! Async.Sleep 250
00:01:44 #3904 [Verbose] >
00:01:44 #3905 [Verbose] > for i = 1 to n do
00:01:44 #3906 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:01:44 #3907 [Verbose] > |> Async.Ignore
00:01:44 #3908 [Verbose] >
00:01:44 #3909 [Verbose] > do! Async.Sleep 250
00:01:44 #3910 [Verbose] >
00:01:44 #3911 [Verbose] > for i = 1 to n do
00:01:44 #3912 [Verbose] > do! $"c{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")
00:01:44 #3913 [Verbose] >
00:01:44 #3914 [Verbose] > do! Async.Sleep 250
00:01:44 #3915 [Verbose] >
00:01:44 #3916 [Verbose] > for i = 1 to n do
00:01:44 #3917 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:01:44 #3918 [Verbose] >
00:01:44 #3919 [Verbose] > do! Async.Sleep 250
00:01:44 #3920 [Verbose] > }
00:01:44 #3921 [Verbose] >
00:01:44 #3922 [Verbose] > let inline run () =
00:01:44 #3923 [Verbose] > let events = testEventsRaw watchDirectory write
00:01:44 #3924 [Verbose] >
00:01:44 #3925 [Verbose] > events
00:01:44 #3926 [Verbose] > |> _sequenceEqual [[
00:01:44 #3927 [Verbose] > FileSystemChange.Created ("file1.txt", Some "a1")
00:01:44 #3928 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "a1")
00:01:44 #3929 [Verbose] > FileSystemChange.Created ("file2.txt", Some "a2")
00:01:44 #3930 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "a2")
00:01:44 #3931 [Verbose] >
00:01:44 #3932 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "b1")
00:01:44 #3933 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "b2")
00:01:44 #3934 [Verbose] >
00:01:44 #3935 [Verbose] > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1"))
00:01:44 #3936 [Verbose] > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2"))
00:01:44 #3937 [Verbose] >
00:01:44 #3938 [Verbose] > FileSystemChange.Changed ("file_1.txt", Some "c1")
00:01:44 #3939 [Verbose] > FileSystemChange.Changed ("file_2.txt", Some "c2")
00:01:44 #3940 [Verbose] >
00:01:44 #3941 [Verbose] > FileSystemChange.Deleted "file_1.txt"
00:01:44 #3942 [Verbose] > FileSystemChange.Deleted "file_2.txt"
00:01:44 #3943 [Verbose] > ]]
00:01:44 #3944 [Verbose] >
00:01:44 #3945 [Verbose] > run
00:01:44 #3946 [Verbose] > |> retry_fn 3
00:01:44 #3947 [Verbose] > |> _assertEqual (Some ())
00:01:49 #3948 [Verbose] >
00:01:49 #3949 [Verbose] > ╭─[ 4.83s - stdout ]───────────────────────────────────────────────────────────╮
00:01:49 #3950 [Verbose] > │ FSharpOption<Unit> │
00:01:49 #3951 [Verbose] > │ Value: <null> │
00:01:49 #3952 [Verbose] > │ 00:00:15 #51 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:01:49 #3953 [Verbose] > │ FileName, LastWrite │
00:01:49 #3954 [Verbose] > │ 00:00:15 #52 [Debug] testEventsRaw / eventsLog: │
00:01:49 #3955 [Verbose] > │ 0 / 638478460260441012 / Created ("file1.txt", Some "a1") │
00:01:49 #3956 [Verbose] > │ 1 / 638478460260441013 / Changed ("file1.txt", Some "a1") │
00:01:49 #3957 [Verbose] > │ 54963 / 638478460260495976 / Changed ("file1.txt", Some "a1") │
00:01:49 #3958 [Verbose] > │ 2122 / 638478460260498098 / Created ("file2.txt", Some "a2") │
00:01:49 #3959 [Verbose] > │ 1 / 638478460260498099 / Changed ("file2.txt", Some "a2") │
00:01:49 #3960 [Verbose] > │ 156 / 638478460260498255 / Changed ("file2.txt", Some "a2") │
00:01:49 #3961 [Verbose] > │ 2472908 / 638478460262971163 / Changed ("file1.txt", Some "b1") │
00:01:49 #3962 [Verbose] > │ 2334 / 638478460262973497 / Changed ("file1.txt", Some "b1") │
00:01:49 #3963 [Verbose] > │ 8237 / 638478460262981734 / Changed ("file2.txt", Some "b2") │
00:01:49 #3964 [Verbose] > │ 1890 / 638478460262983624 / Changed ("file2.txt", Some "b2") │
00:01:49 #3965 [Verbose] > │ 2511362 / 638478460265494986 / Renamed ("file1.txt", ("file_1.txt", Some │
00:01:49 #3966 [Verbose] > │ "b1")) │
00:01:49 #3967 [Verbose] > │ 3964 / 638478460265498950 / Renamed ("file2.txt", ("file_2.txt", Some "b2")) │
00:01:49 #3968 [Verbose] > │ 2533843 / 638478460268032793 / Changed ("file_1.txt", Some "c1") │
00:01:49 #3969 [Verbose] > │ 2087 / 638478460268034880 / Changed ("file_1.txt", Some "c1") │
00:01:49 #3970 [Verbose] > │ 8727 / 638478460268043607 / Changed ("file_2.txt", Some "c2") │
00:01:49 #3971 [Verbose] > │ 2093 / 638478460268045700 / Changed ("file_2.txt", Some "c2") │
00:01:49 #3972 [Verbose] > │ 2643769 / 638478460270689469 / Deleted "file_1.txt" │
00:01:49 #3973 [Verbose] > │ 1372 / 638478460270690841 / Deleted "file_2.txt" │
00:01:49 #3974 [Verbose] > │ FSharpList<FileSystemChange> │
00:01:49 #3975 [Verbose] > │ - path: file1.txt │
00:01:49 #3976 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #3977 [Verbose] > │ Value: a1 │
00:01:49 #3978 [Verbose] > │ IsFailure: False │
00:01:49 #3979 [Verbose] > │ IsChanged: False │
00:01:49 #3980 [Verbose] > │ IsCreated: True │
00:01:49 #3981 [Verbose] > │ IsDeleted: False │
00:01:49 #3982 [Verbose] > │ IsRenamed: False │
00:01:49 #3983 [Verbose] > │ - path: file1.txt │
00:01:49 #3984 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #3985 [Verbose] > │ Value: a1 │
00:01:49 #3986 [Verbose] > │ IsFailure: False │
00:01:49 #3987 [Verbose] > │ IsChanged: True │
00:01:49 #3988 [Verbose] > │ IsCreated: False │
00:01:49 #3989 [Verbose] > │ IsDeleted: False │
00:01:49 #3990 [Verbose] > │ IsRenamed: False │
00:01:49 #3991 [Verbose] > │ - path: file2.txt │
00:01:49 #3992 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #3993 [Verbose] > │ Value: a2 │
00:01:49 #3994 [Verbose] > │ IsFailure: False │
00:01:49 #3995 [Verbose] > │ IsChanged: False │
00:01:49 #3996 [Verbose] > │ IsCreated: True │
00:01:49 #3997 [Verbose] > │ IsDeleted: False │
00:01:49 #3998 [Verbose] > │ IsRenamed: False │
00:01:49 #3999 [Verbose] > │ - path: file2.txt │
00:01:49 #4000 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #4001 [Verbose] > │ Value: a2 │
00:01:49 #4002 [Verbose] > │ IsFailure: False │
00:01:49 #4003 [Verbose] > │ IsChanged: True │
00:01:49 #4004 [Verbose] > │ IsCreated: False │
00:01:49 #4005 [Verbose] > │ IsDeleted: False │
00:01:49 #4006 [Verbose] > │ IsRenamed: False │
00:01:49 #4007 [Verbose] > │ - path: file1.txt │
00:01:49 #4008 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #4009 [Verbose] > │ Value: b1 │
00:01:49 #4010 [Verbose] > │ IsFailure: False │
00:01:49 #4011 [Verbose] > │ IsChanged: True │
00:01:49 #4012 [Verbose] > │ IsCreated: False │
00:01:49 #4013 [Verbose] > │ IsDeleted: False │
00:01:49 #4014 [Verbose] > │ IsRenamed: False │
00:01:49 #4015 [Verbose] > │ - path: file2.txt │
00:01:49 #4016 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #4017 [Verbose] > │ Value: b2 │
00:01:49 #4018 [Verbose] > │ IsFailure: False │
00:01:49 #4019 [Verbose] > │ IsChanged: True │
00:01:49 #4020 [Verbose] > │ IsCreated: False │
00:01:49 #4021 [Verbose] > │ IsDeleted: False │
00:01:49 #4022 [Verbose] > │ IsRenamed: False │
00:01:49 #4023 [Verbose] > │ - oldPath: file1.txt │
00:01:49 #4024 [Verbose] > │ Item2: - file_1.txt │
00:01:49 #4025 [Verbose] > │ - FSharpOption<String> │
00:01:49 #4026 [Verbose] > │ Value: b1 │
00:01:49 #4027 [Verbose] > │ - IsFailure: False │
00:01:49 #4028 [Verbose] > │ IsChanged: False │
00:01:49 #4029 [Verbose] > │ IsCreated: False │
00:01:49 #4030 [Verbose] > │ IsDeleted: False │
00:01:49 #4031 [Verbose] > │ IsRenamed: True │
00:01:49 #4032 [Verbose] > │ - oldPath: file2.txt │
00:01:49 #4033 [Verbose] > │ Item2: - file_2.txt │
00:01:49 #4034 [Verbose] > │ - FSharpOption<String> │
00:01:49 #4035 [Verbose] > │ Value: b2 │
00:01:49 #4036 [Verbose] > │ - IsFailure: False │
00:01:49 #4037 [Verbose] > │ IsChanged: False │
00:01:49 #4038 [Verbose] > │ IsCreated: False │
00:01:49 #4039 [Verbose] > │ IsDeleted: False │
00:01:49 #4040 [Verbose] > │ IsRenamed: True │
00:01:49 #4041 [Verbose] > │ - path: file_1.txt │
00:01:49 #4042 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #4043 [Verbose] > │ Value: c1 │
00:01:49 #4044 [Verbose] > │ IsFailure: False │
00:01:49 #4045 [Verbose] > │ IsChanged: True │
00:01:49 #4046 [Verbose] > │ IsCreated: False │
00:01:49 #4047 [Verbose] > │ IsDeleted: False │
00:01:49 #4048 [Verbose] > │ IsRenamed: False │
00:01:49 #4049 [Verbose] > │ - path: file_2.txt │
00:01:49 #4050 [Verbose] > │ content: FSharpOption<String> │
00:01:49 #4051 [Verbose] > │ Value: c2 │
00:01:49 #4052 [Verbose] > │ IsFailure: False │
00:01:49 #4053 [Verbose] > │ IsChanged: True │
00:01:49 #4054 [Verbose] > │ IsCreated: False │
00:01:49 #4055 [Verbose] > │ IsDeleted: False │
00:01:49 #4056 [Verbose] > │ IsRenamed: False │
00:01:49 #4057 [Verbose] > │ - path: file_1.txt │
00:01:49 #4058 [Verbose] > │ IsFailure: False │
00:01:49 #4059 [Verbose] > │ IsChanged: False │
00:01:49 #4060 [Verbose] > │ IsCreated: False │
00:01:49 #4061 [Verbose] > │ IsDeleted: True │
00:01:49 #4062 [Verbose] > │ IsRenamed: False │
00:01:49 #4063 [Verbose] > │ - path: file_2.txt │
00:01:49 #4064 [Verbose] > │ IsFailure: False │
00:01:49 #4065 [Verbose] > │ IsChanged: False │
00:01:49 #4066 [Verbose] > │ IsCreated: False │
00:01:49 #4067 [Verbose] > │ IsDeleted: True │
00:01:49 #4068 [Verbose] > │ IsRenamed: False │
00:01:49 #4069 [Verbose] > │ FSharpOption<Unit> │
00:01:49 #4070 [Verbose] > │ Value: <null> │
00:01:49 #4071 [Verbose] > │ │
00:01:49 #4072 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4073 [Verbose] >
00:01:49 #4074 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:49 #4075 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:49 #4076 [Verbose] > │ #### slow (test) │
00:01:49 #4077 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #4078 [Verbose] >
00:01:49 #4079 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:49 #4080 [Verbose] > //// test
00:01:49 #4081 [Verbose] >
00:01:49 #4082 [Verbose] > let inline write path = async {
00:01:49 #4083 [Verbose] > let n = 2
00:01:49 #4084 [Verbose] >
00:01:49 #4085 [Verbose] > let contents =
00:01:49 #4086 [Verbose] > [[ 1 .. n ]]
00:01:49 #4087 [Verbose] > |> List.map (string >> String.replicate 1_000_000)
00:01:49 #4088 [Verbose] >
00:01:49 #4089 [Verbose] > for i = 1 to n do
00:01:49 #4090 [Verbose] > do! $"{contents.[[i - 1]]}a" |> writeAllTextAsync (path </>
00:01:49 #4091 [Verbose] > $"file{i}.txt")
00:01:49 #4092 [Verbose] >
00:01:49 #4093 [Verbose] > do! Async.Sleep 1500
00:01:49 #4094 [Verbose] >
00:01:49 #4095 [Verbose] > for i = 1 to n do
00:01:49 #4096 [Verbose] > do! $"{contents.[[i - 1]]}b" |> writeAllTextAsync (path </>
00:01:49 #4097 [Verbose] > $"file{i}.txt")
00:01:49 #4098 [Verbose] >
00:01:49 #4099 [Verbose] > do! Async.Sleep 1500
00:01:49 #4100 [Verbose] >
00:01:49 #4101 [Verbose] > for i = 1 to n do
00:01:49 #4102 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:01:49 #4103 [Verbose] > |> Async.Ignore
00:01:49 #4104 [Verbose] >
00:01:49 #4105 [Verbose] > do! Async.Sleep 1500
00:01:49 #4106 [Verbose] >
00:01:49 #4107 [Verbose] > for i = 1 to n do
00:01:49 #4108 [Verbose] > do! $"{contents.[[i - 1]]}c" |> writeAllTextAsync (path </>
00:01:49 #4109 [Verbose] > $"file_{i}.txt")
00:01:49 #4110 [Verbose] >
00:01:49 #4111 [Verbose] > do! Async.Sleep 1500
00:01:49 #4112 [Verbose] >
00:01:49 #4113 [Verbose] > for i = 1 to n do
00:01:49 #4114 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:01:49 #4115 [Verbose] >
00:01:49 #4116 [Verbose] > do! Async.Sleep 1500
00:01:49 #4117 [Verbose] > }
00:01:49 #4118 [Verbose] >
00:01:49 #4119 [Verbose] > let inline run () =
00:01:49 #4120 [Verbose] > let events =
00:01:49 #4121 [Verbose] > testEventsRaw watchDirectory write
00:01:49 #4122 [Verbose] > |> List.map (function
00:01:49 #4123 [Verbose] > | FileSystemChange.Changed (path, Some content) ->
00:01:49 #4124 [Verbose] > FileSystemChange.Changed (path, content |> Seq.distinct |>
00:01:49 #4125 [Verbose] > Seq.map string |> SpiralSm.concat "" |> Some)
00:01:49 #4126 [Verbose] > | FileSystemChange.Created (path, Some content) ->
00:01:49 #4127 [Verbose] > FileSystemChange.Created (path, content |> Seq.distinct |>
00:01:49 #4128 [Verbose] > Seq.map string |> SpiralSm.concat "" |> Some)
00:01:49 #4129 [Verbose] > | FileSystemChange.Renamed (oldPath, (newPath, Some content)) ->
00:01:49 #4130 [Verbose] > FileSystemChange.Renamed (
00:01:49 #4131 [Verbose] > oldPath,
00:01:49 #4132 [Verbose] > (newPath, content |> Seq.distinct |> Seq.map string |>
00:01:49 #4133 [Verbose] > SpiralSm.concat "" |> Some)
00:01:49 #4134 [Verbose] > )
00:01:49 #4135 [Verbose] > | event -> event
00:01:49 #4136 [Verbose] > )
00:01:49 #4137 [Verbose] >
00:01:49 #4138 [Verbose] > events
00:01:49 #4139 [Verbose] > |> _sequenceEqual [[
00:01:49 #4140 [Verbose] > FileSystemChange.Created ("file1.txt", Some "1a")
00:01:49 #4141 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "1a")
00:01:49 #4142 [Verbose] > FileSystemChange.Created ("file2.txt", Some "2a")
00:01:49 #4143 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "2a")
00:01:49 #4144 [Verbose] >
00:01:49 #4145 [Verbose] > FileSystemChange.Changed ("file1.txt", Some "1b")
00:01:49 #4146 [Verbose] > FileSystemChange.Changed ("file2.txt", Some "2b")
00:01:49 #4147 [Verbose] >
00:01:49 #4148 [Verbose] > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b"))
00:01:49 #4149 [Verbose] > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b"))
00:01:49 #4150 [Verbose] >
00:01:49 #4151 [Verbose] > FileSystemChange.Changed ("file_1.txt", Some "1c")
00:01:49 #4152 [Verbose] > FileSystemChange.Changed ("file_2.txt", Some "2c")
00:01:49 #4153 [Verbose] >
00:01:49 #4154 [Verbose] > FileSystemChange.Deleted "file_1.txt"
00:01:49 #4155 [Verbose] > FileSystemChange.Deleted "file_2.txt"
00:01:49 #4156 [Verbose] > ]]
00:01:49 #4157 [Verbose] >
00:01:49 #4158 [Verbose] > run
00:01:49 #4159 [Verbose] > |> retry_fn 5
00:01:49 #4160 [Verbose] > |> _assertEqual (Some ())
00:02:01 #4161 [Verbose] >
00:02:01 #4162 [Verbose] > ╭─[ 12.28s - stdout ]──────────────────────────────────────────────────────────╮
00:02:01 #4163 [Verbose] > │ 00:00:21 #53 [Debug] watchWithFilter / readContent / retry: 0 / ex: │
00:02:01 #4164 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot │
00:02:01 #4165 [Verbose] > │ access the file │
00:02:01 #4166 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │
00:02:01 #4167 [Verbose] > │ 993b4611\file1.txt' because it is being used by another process.) │
00:02:01 #4168 [Verbose] > │ 00:00:21 #54 [Debug] watchWithFilter / readContent / retry: 0 / ex: │
00:02:01 #4169 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot │
00:02:01 #4170 [Verbose] > │ access the file │
00:02:01 #4171 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │
00:02:01 #4172 [Verbose] > │ 993b4611\file2.txt' because it is being used by another process.) │
00:02:01 #4173 [Verbose] > │ 00:00:21 #55 [Debug] waitForFileAccess / path: file2.txt / ex: │
00:02:01 #4174 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:02:01 #4175 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │
00:02:01 #4176 [Verbose] > │ 993b4611\file2.txt' because it is being used by another process. │
00:02:01 #4177 [Verbose] > │ 00:00:24 #56 [Debug] watchWithFilter / readContent / retry: 0 / ex: │
00:02:01 #4178 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot │
00:02:01 #4179 [Verbose] > │ access the file │
00:02:01 #4180 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │
00:02:01 #4181 [Verbose] > │ 993b4611\file_1.txt' because it is being used by another process.) │
00:02:01 #4182 [Verbose] > │ 00:00:24 #57 [Debug] waitForFileAccess / path: file_1.txt / ex: │
00:02:01 #4183 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:02:01 #4184 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │
00:02:01 #4185 [Verbose] > │ 993b4611\file_1.txt' because it is being used by another process. │
00:02:01 #4186 [Verbose] > │ 00:00:24 #58 [Debug] watchWithFilter / readContent / retry: 0 / ex: │
00:02:01 #4187 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot │
00:02:01 #4188 [Verbose] > │ access the file │
00:02:01 #4189 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │
00:02:01 #4190 [Verbose] > │ 993b4611\file_2.txt' because it is being used by another process.) │
00:02:01 #4191 [Verbose] > │ 00:00:24 #59 [Debug] waitForFileAccess / path: file_2.txt / ex: │
00:02:01 #4192 [Verbose] > │ System.IO.IOException: The process cannot access the file │
00:02:01 #4193 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │
00:02:01 #4194 [Verbose] > │ 993b4611\file_2.txt' because it is being used by another process. │
00:02:01 #4195 [Verbose] > │ FSharpOption<Unit> │
00:02:01 #4196 [Verbose] > │ Value: <null> │
00:02:01 #4197 [Verbose] > │ 00:00:27 #60 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:01 #4198 [Verbose] > │ FileName, LastWrite │
00:02:01 #4199 [Verbose] > │ 00:00:28 #61 [Debug] testEventsRaw / eventsLog: │
00:02:01 #4200 [Verbose] > │ 0 / 638478460316541646 / Created │
00:02:01 #4201 [Verbose] > │ ("file1.txt", │
00:02:01 #4202 [Verbose] > │ ...11111111111111111111111111111111111111111111111a") │
00:02:01 #4203 [Verbose] > │ 1 / 638478460316541647 / Changed │
00:02:01 #4204 [Verbose] > │ ("file1.txt", │
00:02:01 #4205 [Verbose] > │ ...11111111111111111111111111111111111111111111111a") │
00:02:01 #4206 [Verbose] > │ 51698 / 638478460316593345 / Changed │
00:02:01 #4207 [Verbose] > │ ("file1.txt...11111111111111111111111111111111111111111111111a") │
00:02:01 #4208 [Verbose] > │ 15224 / 638478460316608569 / Created │
00:02:01 #4209 [Verbose] > │ ("file2.txt...22222222222222222222222222222222222222222222222a") │
00:02:01 #4210 [Verbose] > │ 1 / 638478460316608570 / Changed │
00:02:01 #4211 [Verbose] > │ ("file2.txt", │
00:02:01 #4212 [Verbose] > │ ...22222222222222222222222222222222222222222222222a") │
00:02:01 #4213 [Verbose] > │ 48585 / 638478460316657155 / Changed │
00:02:01 #4214 [Verbose] > │ ("file2.txt...22222222222222222222222222222222222222222222222a") │
00:02:01 #4215 [Verbose] > │ 15164275 / 638478460331821430 / Changed │
00:02:01 #4216 [Verbose] > │ ("file1....11111111111111111111111111111111111111111111111b") │
00:02:01 #4217 [Verbose] > │ 230164 / 638478460332051594 / Changed │
00:02:01 #4218 [Verbose] > │ ("file1.tx...11111111111111111111111111111111111111111111111b") │
00:02:01 #4219 [Verbose] > │ 198510 / 638478460332250104 / Changed │
00:02:01 #4220 [Verbose] > │ ("file2.tx...22222222222222222222222222222222222222222222222b") │
00:02:01 #4221 [Verbose] > │ 122158 / 638478460332372262 / Changed │
00:02:01 #4222 [Verbose] > │ ("file2.tx...22222222222222222222222222222222222222222222222b") │
00:02:01 #4223 [Verbose] > │ 15109884 / 638478460347482146 / Renamed │
00:02:01 #4224 [Verbose] > │ ("file1....1111111111111111111111111111111111111111111111b")) │
00:02:01 #4225 [Verbose] > │ 15217 / 638478460347497363 / Renamed │
00:02:01 #4226 [Verbose] > │ ("file2.txt...2222222222222222222222222222222222222222222222b")) │
00:02:01 #4227 [Verbose] > │ 15160055 / 638478460362657418 / Changed │
00:02:01 #4228 [Verbose] > │ ("file_1...11111111111111111111111111111111111111111111111c") │
00:02:01 #4229 [Verbose] > │ 207679 / 638478460362865097 / Changed │
00:02:01 #4230 [Verbose] > │ ("file_1.t...11111111111111111111111111111111111111111111111c") │
00:02:01 #4231 [Verbose] > │ 60562 / 638478460362925659 / Changed │
00:02:01 #4232 [Verbose] > │ ("file_2.tx...22222222222222222222222222222222222222222222222c") │
00:02:01 #4233 [Verbose] > │ 142587 / 638478460363068246 / Changed │
00:02:01 #4234 [Verbose] > │ ("file_2.t...22222222222222222222222222222222222222222222222c") │
00:02:01 #4235 [Verbose] > │ 15027857 / 638478460378096103 / Deleted "file_1.txt" │
00:02:01 #4236 [Verbose] > │ 12437 / 638478460378108540 / Deleted "file_2.txt" │
00:02:01 #4237 [Verbose] > │ FSharpList<FileSystemChange> │
00:02:01 #4238 [Verbose] > │ - path: file1.txt │
00:02:01 #4239 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4240 [Verbose] > │ Value: 1a │
00:02:01 #4241 [Verbose] > │ IsFailure: False │
00:02:01 #4242 [Verbose] > │ IsChanged: False │
00:02:01 #4243 [Verbose] > │ IsCreated: True │
00:02:01 #4244 [Verbose] > │ IsDeleted: False │
00:02:01 #4245 [Verbose] > │ IsRenamed: False │
00:02:01 #4246 [Verbose] > │ - path: file1.txt │
00:02:01 #4247 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4248 [Verbose] > │ Value: 1a │
00:02:01 #4249 [Verbose] > │ IsFailure: False │
00:02:01 #4250 [Verbose] > │ IsChanged: True │
00:02:01 #4251 [Verbose] > │ IsCreated: False │
00:02:01 #4252 [Verbose] > │ IsDeleted: False │
00:02:01 #4253 [Verbose] > │ IsRenamed: False │
00:02:01 #4254 [Verbose] > │ - path: file2.txt │
00:02:01 #4255 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4256 [Verbose] > │ Value: 2a │
00:02:01 #4257 [Verbose] > │ IsFailure: False │
00:02:01 #4258 [Verbose] > │ IsChanged: False │
00:02:01 #4259 [Verbose] > │ IsCreated: True │
00:02:01 #4260 [Verbose] > │ IsDeleted: False │
00:02:01 #4261 [Verbose] > │ IsRenamed: False │
00:02:01 #4262 [Verbose] > │ - path: file2.txt │
00:02:01 #4263 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4264 [Verbose] > │ Value: 2a │
00:02:01 #4265 [Verbose] > │ IsFailure: False │
00:02:01 #4266 [Verbose] > │ IsChanged: True │
00:02:01 #4267 [Verbose] > │ IsCreated: False │
00:02:01 #4268 [Verbose] > │ IsDeleted: False │
00:02:01 #4269 [Verbose] > │ IsRenamed: False │
00:02:01 #4270 [Verbose] > │ - path: file1.txt │
00:02:01 #4271 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4272 [Verbose] > │ Value: 1b │
00:02:01 #4273 [Verbose] > │ IsFailure: False │
00:02:01 #4274 [Verbose] > │ IsChanged: True │
00:02:01 #4275 [Verbose] > │ IsCreated: False │
00:02:01 #4276 [Verbose] > │ IsDeleted: False │
00:02:01 #4277 [Verbose] > │ IsRenamed: False │
00:02:01 #4278 [Verbose] > │ - path: file2.txt │
00:02:01 #4279 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4280 [Verbose] > │ Value: 2b │
00:02:01 #4281 [Verbose] > │ IsFailure: False │
00:02:01 #4282 [Verbose] > │ IsChanged: True │
00:02:01 #4283 [Verbose] > │ IsCreated: False │
00:02:01 #4284 [Verbose] > │ IsDeleted: False │
00:02:01 #4285 [Verbose] > │ IsRenamed: False │
00:02:01 #4286 [Verbose] > │ - oldPath: file1.txt │
00:02:01 #4287 [Verbose] > │ Item2: - file_1.txt │
00:02:01 #4288 [Verbose] > │ - FSharpOption<String> │
00:02:01 #4289 [Verbose] > │ Value: 1b │
00:02:01 #4290 [Verbose] > │ - IsFailure: False │
00:02:01 #4291 [Verbose] > │ IsChanged: False │
00:02:01 #4292 [Verbose] > │ IsCreated: False │
00:02:01 #4293 [Verbose] > │ IsDeleted: False │
00:02:01 #4294 [Verbose] > │ IsRenamed: True │
00:02:01 #4295 [Verbose] > │ - oldPath: file2.txt │
00:02:01 #4296 [Verbose] > │ Item2: - file_2.txt │
00:02:01 #4297 [Verbose] > │ - FSharpOption<String> │
00:02:01 #4298 [Verbose] > │ Value: 2b │
00:02:01 #4299 [Verbose] > │ - IsFailure: False │
00:02:01 #4300 [Verbose] > │ IsChanged: False │
00:02:01 #4301 [Verbose] > │ IsCreated: False │
00:02:01 #4302 [Verbose] > │ IsDeleted: False │
00:02:01 #4303 [Verbose] > │ IsRenamed: True │
00:02:01 #4304 [Verbose] > │ - path: file_1.txt │
00:02:01 #4305 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4306 [Verbose] > │ Value: 1c │
00:02:01 #4307 [Verbose] > │ IsFailure: False │
00:02:01 #4308 [Verbose] > │ IsChanged: True │
00:02:01 #4309 [Verbose] > │ IsCreated: False │
00:02:01 #4310 [Verbose] > │ IsDeleted: False │
00:02:01 #4311 [Verbose] > │ IsRenamed: False │
00:02:01 #4312 [Verbose] > │ - path: file_2.txt │
00:02:01 #4313 [Verbose] > │ content: FSharpOption<String> │
00:02:01 #4314 [Verbose] > │ Value: 2c │
00:02:01 #4315 [Verbose] > │ IsFailure: False │
00:02:01 #4316 [Verbose] > │ IsChanged: True │
00:02:01 #4317 [Verbose] > │ IsCreated: False │
00:02:01 #4318 [Verbose] > │ IsDeleted: False │
00:02:01 #4319 [Verbose] > │ IsRenamed: False │
00:02:01 #4320 [Verbose] > │ - path: file_1.txt │
00:02:01 #4321 [Verbose] > │ IsFailure: False │
00:02:01 #4322 [Verbose] > │ IsChanged: False │
00:02:01 #4323 [Verbose] > │ IsCreated: False │
00:02:01 #4324 [Verbose] > │ IsDeleted: True │
00:02:01 #4325 [Verbose] > │ IsRenamed: False │
00:02:01 #4326 [Verbose] > │ - path: file_2.txt │
00:02:01 #4327 [Verbose] > │ IsFailure: False │
00:02:01 #4328 [Verbose] > │ IsChanged: False │
00:02:01 #4329 [Verbose] > │ IsCreated: False │
00:02:01 #4330 [Verbose] > │ IsDeleted: True │
00:02:01 #4331 [Verbose] > │ IsRenamed: False │
00:02:01 #4332 [Verbose] > │ FSharpOption<Unit> │
00:02:01 #4333 [Verbose] > │ Value: <null> │
00:02:01 #4334 [Verbose] > │ │
00:02:01 #4335 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #4336 [Verbose] >
00:02:01 #4337 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:01 #4338 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:01 #4339 [Verbose] > │ ### testEventsSorted (test) │
00:02:01 #4340 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #4341 [Verbose] >
00:02:01 #4342 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:01 #4343 [Verbose] > //// test
00:02:01 #4344 [Verbose] >
00:02:01 #4345 [Verbose] > let inline sortEvent event =
00:02:01 #4346 [Verbose] > match event with
00:02:01 #4347 [Verbose] > | FileSystemChange.Failure _ -> 0
00:02:01 #4348 [Verbose] > | FileSystemChange.Created _ -> 1
00:02:01 #4349 [Verbose] > | FileSystemChange.Changed _ -> 2
00:02:01 #4350 [Verbose] > | FileSystemChange.Renamed (_oldPath, _) -> 3
00:02:01 #4351 [Verbose] > | FileSystemChange.Deleted _ -> 4
00:02:01 #4352 [Verbose] >
00:02:01 #4353 [Verbose] > let inline formatEvents events =
00:02:01 #4354 [Verbose] > events
00:02:01 #4355 [Verbose] > |> Seq.toList
00:02:01 #4356 [Verbose] > |> List.sortBy (snd >> sortEvent)
00:02:01 #4357 [Verbose] > |> List.choose (fun (ticks, event) ->
00:02:01 #4358 [Verbose] > match event with
00:02:01 #4359 [Verbose] > | FileSystemChange.Failure _ ->
00:02:01 #4360 [Verbose] > None
00:02:01 #4361 [Verbose] > | FileSystemChange.Changed (path, _) ->
00:02:01 #4362 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:02:01 #4363 [Verbose] > FileSystemChangeType.Changed)
00:02:01 #4364 [Verbose] > | FileSystemChange.Created (path, _) ->
00:02:01 #4365 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:02:01 #4366 [Verbose] > FileSystemChangeType.Created)
00:02:01 #4367 [Verbose] > | FileSystemChange.Deleted path ->
00:02:01 #4368 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:02:01 #4369 [Verbose] > FileSystemChangeType.Deleted)
00:02:01 #4370 [Verbose] > | FileSystemChange.Renamed (_oldPath, (path, _)) ->
00:02:01 #4371 [Verbose] > Some (ticks, System.IO.Path.GetFileName path, nameof
00:02:01 #4372 [Verbose] > FileSystemChangeType.Renamed)
00:02:01 #4373 [Verbose] > )
00:02:01 #4374 [Verbose] > |> List.sortBy (fun (_, path, _) -> path)
00:02:01 #4375 [Verbose] > |> List.distinctBy (fun (_, path, event) -> path, event)
00:02:01 #4376 [Verbose] >
00:02:01 #4377 [Verbose] > let inline testEventsSorted
00:02:01 #4378 [Verbose] > (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> *
00:02:01 #4379 [Verbose] > IDisposable)
00:02:01 #4380 [Verbose] > write
00:02:01 #4381 [Verbose] > =
00:02:01 #4382 [Verbose] > let path = SpiralFileSystem.create_temp_directory ()
00:02:01 #4383 [Verbose] > let stream, disposable = watchFn path
00:02:01 #4384 [Verbose] >
00:02:01 #4385 [Verbose] > let events = System.Collections.Concurrent.ConcurrentBag ()
00:02:01 #4386 [Verbose] >
00:02:01 #4387 [Verbose] > let inline iter () =
00:02:01 #4388 [Verbose] > stream
00:02:01 #4389 [Verbose] > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {
00:02:01 #4390 [Verbose] > events.Add event })
00:02:01 #4391 [Verbose] >
00:02:01 #4392 [Verbose] > let run = async {
00:02:01 #4393 [Verbose] > let! _ = iter () |> Async.StartChild
00:02:01 #4394 [Verbose] > do! Async.Sleep 250
00:02:01 #4395 [Verbose] > return! write path
00:02:01 #4396 [Verbose] > }
00:02:01 #4397 [Verbose] >
00:02:01 #4398 [Verbose] > try
00:02:01 #4399 [Verbose] > run
00:02:01 #4400 [Verbose] > |> Async.runWithTimeout 5000
00:02:01 #4401 [Verbose] > |> _assertEqual (Some ())
00:02:01 #4402 [Verbose] > finally
00:02:01 #4403 [Verbose] > disposable.Dispose ()
00:02:01 #4404 [Verbose] > deleteDirectoryAsync path |> Async.Ignore |> Async.RunSynchronously
00:02:01 #4405 [Verbose] >
00:02:01 #4406 [Verbose] > let events = formatEvents events
00:02:01 #4407 [Verbose] >
00:02:01 #4408 [Verbose] > let eventMap =
00:02:01 #4409 [Verbose] > events
00:02:01 #4410 [Verbose] > |> List.map (fun (ticks, path, event) -> path, (event, ticks))
00:02:01 #4411 [Verbose] > |> List.groupBy fst
00:02:01 #4412 [Verbose] > |> List.map (fun (path, events) ->
00:02:01 #4413 [Verbose] > let event, _ticks =
00:02:01 #4414 [Verbose] > events
00:02:01 #4415 [Verbose] > |> List.map snd
00:02:01 #4416 [Verbose] > |> List.sortByDescending snd
00:02:01 #4417 [Verbose] > |> List.head
00:02:01 #4418 [Verbose] >
00:02:01 #4419 [Verbose] > path, event
00:02:01 #4420 [Verbose] > )
00:02:01 #4421 [Verbose] > |> Map.ofList
00:02:01 #4422 [Verbose] >
00:02:01 #4423 [Verbose] > let eventList =
00:02:01 #4424 [Verbose] > events
00:02:01 #4425 [Verbose] > |> List.map (fun (_ticks, path, event) -> path, event)
00:02:01 #4426 [Verbose] >
00:02:01 #4427 [Verbose] > eventMap, eventList
00:02:01 #4428 [Verbose] >
00:02:01 #4429 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:01 #4430 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:01 #4431 [Verbose] > │ #### create and delete (test) │
00:02:01 #4432 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #4433 [Verbose] >
00:02:01 #4434 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:01 #4435 [Verbose] > //// test
00:02:01 #4436 [Verbose] >
00:02:01 #4437 [Verbose] > let inline write path = async {
00:02:01 #4438 [Verbose] > let n = 3
00:02:01 #4439 [Verbose] >
00:02:01 #4440 [Verbose] > for i = 1 to n do
00:02:01 #4441 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:01 #4442 [Verbose] >
00:02:01 #4443 [Verbose] > for i = 1 to n do
00:02:01 #4444 [Verbose] > do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore
00:02:01 #4445 [Verbose] >
00:02:01 #4446 [Verbose] > do! Async.Sleep 150
00:02:01 #4447 [Verbose] > }
00:02:01 #4448 [Verbose] >
00:02:01 #4449 [Verbose] > let inline run () =
00:02:01 #4450 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:02:01 #4451 [Verbose] > write
00:02:01 #4452 [Verbose] >
00:02:01 #4453 [Verbose] > [[
00:02:01 #4454 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:02:01 #4455 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:01 #4456 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4457 [Verbose] >
00:02:01 #4458 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:02:01 #4459 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:01 #4460 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4461 [Verbose] >
00:02:01 #4462 [Verbose] > "file3.txt", nameof FileSystemChangeType.Created
00:02:01 #4463 [Verbose] > "file3.txt", nameof FileSystemChangeType.Changed
00:02:01 #4464 [Verbose] > "file3.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4465 [Verbose] > ]]
00:02:01 #4466 [Verbose] > |> _sequenceEqual eventList
00:02:01 #4467 [Verbose] >
00:02:01 #4468 [Verbose] > [[
00:02:01 #4469 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4470 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4471 [Verbose] > "file3.txt", nameof FileSystemChangeType.Deleted
00:02:01 #4472 [Verbose] > ]]
00:02:01 #4473 [Verbose] > |> Map.ofList
00:02:01 #4474 [Verbose] > |> _sequenceEqual eventMap
00:02:01 #4475 [Verbose] >
00:02:01 #4476 [Verbose] > run
00:02:01 #4477 [Verbose] > |> retry_fn 3
00:02:01 #4478 [Verbose] > |> _assertEqual (Some ())
00:02:05 #4479 [Verbose] >
00:02:05 #4480 [Verbose] > ╭─[ 3.28s - stdout ]───────────────────────────────────────────────────────────╮
00:02:05 #4481 [Verbose] > │ FSharpOption<Unit> │
00:02:05 #4482 [Verbose] > │ Value: <null> │
00:02:05 #4483 [Verbose] > │ 00:00:31 #62 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:05 #4484 [Verbose] > │ FileName, LastWrite │
00:02:05 #4485 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:05 #4486 [Verbose] > │ ( file1.txt, Created ) │
00:02:05 #4487 [Verbose] > │ ( file1.txt, Changed ) │
00:02:05 #4488 [Verbose] > │ ( file1.txt, Deleted ) │
00:02:05 #4489 [Verbose] > │ ( file2.txt, Created ) │
00:02:05 #4490 [Verbose] > │ ( file2.txt, Changed ) │
00:02:05 #4491 [Verbose] > │ ( file2.txt, Deleted ) │
00:02:05 #4492 [Verbose] > │ ( file3.txt, Created ) │
00:02:05 #4493 [Verbose] > │ ( file3.txt, Changed ) │
00:02:05 #4494 [Verbose] > │ ( file3.txt, Deleted ) │
00:02:05 #4495 [Verbose] > │ FSharpMap<String,String> │
00:02:05 #4496 [Verbose] > │ - Key: file1.txt │
00:02:05 #4497 [Verbose] > │ Value: Deleted │
00:02:05 #4498 [Verbose] > │ - Key: file2.txt │
00:02:05 #4499 [Verbose] > │ Value: Deleted │
00:02:05 #4500 [Verbose] > │ - Key: file3.txt │
00:02:05 #4501 [Verbose] > │ Value: Deleted │
00:02:05 #4502 [Verbose] > │ FSharpOption<Unit> │
00:02:05 #4503 [Verbose] > │ Value: <null> │
00:02:05 #4504 [Verbose] > │ │
00:02:05 #4505 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4506 [Verbose] >
00:02:05 #4507 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:05 #4508 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:05 #4509 [Verbose] > │ #### change (test) │
00:02:05 #4510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #4511 [Verbose] >
00:02:05 #4512 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:05 #4513 [Verbose] > //// test
00:02:05 #4514 [Verbose] >
00:02:05 #4515 [Verbose] > let inline write path = async {
00:02:05 #4516 [Verbose] > let n = 2
00:02:05 #4517 [Verbose] >
00:02:05 #4518 [Verbose] > for i = 1 to n do
00:02:05 #4519 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:05 #4520 [Verbose] >
00:02:05 #4521 [Verbose] > for i = 1 to n do
00:02:05 #4522 [Verbose] > do! "" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:05 #4523 [Verbose] >
00:02:05 #4524 [Verbose] > for i = 1 to n do
00:02:05 #4525 [Verbose] > do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore
00:02:05 #4526 [Verbose] >
00:02:05 #4527 [Verbose] > do! Async.Sleep 150
00:02:05 #4528 [Verbose] > }
00:02:05 #4529 [Verbose] >
00:02:05 #4530 [Verbose] > let inline run () =
00:02:05 #4531 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:02:05 #4532 [Verbose] > write
00:02:05 #4533 [Verbose] >
00:02:05 #4534 [Verbose] > [[
00:02:05 #4535 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:02:05 #4536 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:05 #4537 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4538 [Verbose] >
00:02:05 #4539 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:02:05 #4540 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:05 #4541 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4542 [Verbose] > ]]
00:02:05 #4543 [Verbose] > |> _sequenceEqual eventList
00:02:05 #4544 [Verbose] >
00:02:05 #4545 [Verbose] > [[
00:02:05 #4546 [Verbose] > "file1.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4547 [Verbose] > "file2.txt", nameof FileSystemChangeType.Deleted
00:02:05 #4548 [Verbose] > ]]
00:02:05 #4549 [Verbose] > |> Map.ofList
00:02:05 #4550 [Verbose] > |> _sequenceEqual eventMap
00:02:05 #4551 [Verbose] >
00:02:05 #4552 [Verbose] > run
00:02:05 #4553 [Verbose] > |> retry_fn 3
00:02:05 #4554 [Verbose] > |> _assertEqual (Some ())
00:02:08 #4555 [Verbose] >
00:02:08 #4556 [Verbose] > ╭─[ 3.89s - stdout ]───────────────────────────────────────────────────────────╮
00:02:08 #4557 [Verbose] > │ FSharpOption<Unit> │
00:02:08 #4558 [Verbose] > │ Value: <null> │
00:02:08 #4559 [Verbose] > │ 00:00:35 #63 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:08 #4560 [Verbose] > │ FileName, LastWrite │
00:02:08 #4561 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:08 #4562 [Verbose] > │ ( file1.txt, Created ) │
00:02:08 #4563 [Verbose] > │ ( file1.txt, Changed ) │
00:02:08 #4564 [Verbose] > │ ( file1.txt, Deleted ) │
00:02:08 #4565 [Verbose] > │ ( file2.txt, Created ) │
00:02:08 #4566 [Verbose] > │ ( file2.txt, Changed ) │
00:02:08 #4567 [Verbose] > │ ( file2.txt, Deleted ) │
00:02:08 #4568 [Verbose] > │ FSharpMap<String,String> │
00:02:08 #4569 [Verbose] > │ - Key: file1.txt │
00:02:08 #4570 [Verbose] > │ Value: Deleted │
00:02:08 #4571 [Verbose] > │ - Key: file2.txt │
00:02:08 #4572 [Verbose] > │ Value: Deleted │
00:02:08 #4573 [Verbose] > │ FSharpOption<Unit> │
00:02:08 #4574 [Verbose] > │ Value: <null> │
00:02:08 #4575 [Verbose] > │ │
00:02:08 #4576 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #4577 [Verbose] >
00:02:08 #4578 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #4579 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #4580 [Verbose] > │ #### rename (test) │
00:02:08 #4581 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #4582 [Verbose] >
00:02:08 #4583 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:08 #4584 [Verbose] > //// test
00:02:08 #4585 [Verbose] >
00:02:08 #4586 [Verbose] > let inline write path = async {
00:02:08 #4587 [Verbose] > let n = 2
00:02:08 #4588 [Verbose] >
00:02:08 #4589 [Verbose] > for i = 1 to n do
00:02:08 #4590 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:08 #4591 [Verbose] >
00:02:08 #4592 [Verbose] > for i = 1 to n do
00:02:08 #4593 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:02:08 #4594 [Verbose] > |> Async.Ignore
00:02:08 #4595 [Verbose] >
00:02:08 #4596 [Verbose] > for i = 1 to n do
00:02:08 #4597 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:02:08 #4598 [Verbose] >
00:02:08 #4599 [Verbose] > do! Async.Sleep 150
00:02:08 #4600 [Verbose] > }
00:02:08 #4601 [Verbose] >
00:02:08 #4602 [Verbose] > let inline run () =
00:02:08 #4603 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:02:08 #4604 [Verbose] > write
00:02:08 #4605 [Verbose] >
00:02:08 #4606 [Verbose] > [[
00:02:08 #4607 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:02:08 #4608 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:08 #4609 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:02:08 #4610 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:08 #4611 [Verbose] >
00:02:08 #4612 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Renamed
00:02:08 #4613 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:08 #4614 [Verbose] >
00:02:08 #4615 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Renamed
00:02:08 #4616 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:08 #4617 [Verbose] > ]]
00:02:08 #4618 [Verbose] > |> _sequenceEqual eventList
00:02:08 #4619 [Verbose] >
00:02:08 #4620 [Verbose] > [[
00:02:08 #4621 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:08 #4622 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:08 #4623 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:08 #4624 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:08 #4625 [Verbose] > ]]
00:02:08 #4626 [Verbose] > |> Map.ofList
00:02:08 #4627 [Verbose] > |> _sequenceEqual eventMap
00:02:08 #4628 [Verbose] >
00:02:08 #4629 [Verbose] > run
00:02:08 #4630 [Verbose] > |> retry_fn 3
00:02:08 #4631 [Verbose] > |> _assertEqual (Some ())
00:02:13 #4632 [Verbose] >
00:02:13 #4633 [Verbose] > ╭─[ 4.20s - stdout ]───────────────────────────────────────────────────────────╮
00:02:13 #4634 [Verbose] > │ FSharpOption<Unit> │
00:02:13 #4635 [Verbose] > │ Value: <null> │
00:02:13 #4636 [Verbose] > │ 00:00:40 #64 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:13 #4637 [Verbose] > │ FileName, LastWrite │
00:02:13 #4638 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:13 #4639 [Verbose] > │ ( file1.txt, Created ) │
00:02:13 #4640 [Verbose] > │ ( file1.txt, Changed ) │
00:02:13 #4641 [Verbose] > │ ( file2.txt, Created ) │
00:02:13 #4642 [Verbose] > │ ( file2.txt, Changed ) │
00:02:13 #4643 [Verbose] > │ ( file_1.txt, Renamed ) │
00:02:13 #4644 [Verbose] > │ ( file_1.txt, Deleted ) │
00:02:13 #4645 [Verbose] > │ ( file_2.txt, Renamed ) │
00:02:13 #4646 [Verbose] > │ ( file_2.txt, Deleted ) │
00:02:13 #4647 [Verbose] > │ FSharpMap<String,String> │
00:02:13 #4648 [Verbose] > │ - Key: file1.txt │
00:02:13 #4649 [Verbose] > │ Value: Changed │
00:02:13 #4650 [Verbose] > │ - Key: file2.txt │
00:02:13 #4651 [Verbose] > │ Value: Changed │
00:02:13 #4652 [Verbose] > │ - Key: file_1.txt │
00:02:13 #4653 [Verbose] > │ Value: Deleted │
00:02:13 #4654 [Verbose] > │ - Key: file_2.txt │
00:02:13 #4655 [Verbose] > │ Value: Deleted │
00:02:13 #4656 [Verbose] > │ FSharpOption<Unit> │
00:02:13 #4657 [Verbose] > │ Value: <null> │
00:02:13 #4658 [Verbose] > │ │
00:02:13 #4659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:13 #4660 [Verbose] >
00:02:13 #4661 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:13 #4662 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:13 #4663 [Verbose] > │ #### full (test) │
00:02:13 #4664 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:13 #4665 [Verbose] >
00:02:13 #4666 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:13 #4667 [Verbose] > //// test
00:02:13 #4668 [Verbose] >
00:02:13 #4669 [Verbose] > let inline write path = async {
00:02:13 #4670 [Verbose] > let n = 2
00:02:13 #4671 [Verbose] >
00:02:13 #4672 [Verbose] > for i = 1 to n do
00:02:13 #4673 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:13 #4674 [Verbose] >
00:02:13 #4675 [Verbose] > for i = 1 to n do
00:02:13 #4676 [Verbose] > do! "" |> writeAllTextAsync (path </> $"file{i}.txt")
00:02:13 #4677 [Verbose] >
00:02:13 #4678 [Verbose] > for i = 1 to n do
00:02:13 #4679 [Verbose] > do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")
00:02:13 #4680 [Verbose] > |> Async.Ignore
00:02:13 #4681 [Verbose] >
00:02:13 #4682 [Verbose] > for i = 1 to n do
00:02:13 #4683 [Verbose] > do! $"{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")
00:02:13 #4684 [Verbose] >
00:02:13 #4685 [Verbose] > for i = 1 to n do
00:02:13 #4686 [Verbose] > do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore
00:02:13 #4687 [Verbose] >
00:02:13 #4688 [Verbose] > do! Async.Sleep 150
00:02:13 #4689 [Verbose] > }
00:02:13 #4690 [Verbose] >
00:02:13 #4691 [Verbose] > let inline run () =
00:02:13 #4692 [Verbose] > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))
00:02:13 #4693 [Verbose] > write
00:02:13 #4694 [Verbose] >
00:02:13 #4695 [Verbose] > [[
00:02:13 #4696 [Verbose] > "file1.txt", nameof FileSystemChangeType.Created
00:02:13 #4697 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:13 #4698 [Verbose] > "file2.txt", nameof FileSystemChangeType.Created
00:02:13 #4699 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:13 #4700 [Verbose] >
00:02:13 #4701 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Changed
00:02:13 #4702 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Renamed
00:02:13 #4703 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:13 #4704 [Verbose] >
00:02:13 #4705 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Changed
00:02:13 #4706 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Renamed
00:02:13 #4707 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:13 #4708 [Verbose] > ]]
00:02:13 #4709 [Verbose] > |> _sequenceEqual eventList
00:02:13 #4710 [Verbose] >
00:02:13 #4711 [Verbose] > [[
00:02:13 #4712 [Verbose] > "file1.txt", nameof FileSystemChangeType.Changed
00:02:13 #4713 [Verbose] > "file2.txt", nameof FileSystemChangeType.Changed
00:02:13 #4714 [Verbose] > "file_1.txt", nameof FileSystemChangeType.Deleted
00:02:13 #4715 [Verbose] > "file_2.txt", nameof FileSystemChangeType.Deleted
00:02:13 #4716 [Verbose] > ]]
00:02:13 #4717 [Verbose] > |> Map.ofList
00:02:13 #4718 [Verbose] > |> _sequenceEqual eventMap
00:02:13 #4719 [Verbose] >
00:02:13 #4720 [Verbose] > run
00:02:13 #4721 [Verbose] > |> retry_fn 3
00:02:13 #4722 [Verbose] > |> _assertEqual (Some ())
00:02:18 #4723 [Verbose] >
00:02:18 #4724 [Verbose] > ╭─[ 5.43s - stdout ]───────────────────────────────────────────────────────────╮
00:02:18 #4725 [Verbose] > │ FSharpOption<Unit> │
00:02:18 #4726 [Verbose] > │ Value: <null> │
00:02:18 #4727 [Verbose] > │ 00:00:45 #65 [Debug] watchWithFilter / Disposing watch stream / filter: │
00:02:18 #4728 [Verbose] > │ FileName, LastWrite │
00:02:18 #4729 [Verbose] > │ FSharpList<Tuple<String,String>> │
00:02:18 #4730 [Verbose] > │ ( file1.txt, Created ) │
00:02:18 #4731 [Verbose] > │ ( file1.txt, Changed ) │
00:02:18 #4732 [Verbose] > │ ( file2.txt, Created ) │
00:02:18 #4733 [Verbose] > │ ( file2.txt, Changed ) │
00:02:18 #4734 [Verbose] > │ ( file_1.txt, Changed ) │
00:02:18 #4735 [Verbose] > │ ( file_1.txt, Renamed ) │
00:02:18 #4736 [Verbose] > │ ( file_1.txt, Deleted ) │
00:02:18 #4737 [Verbose] > │ ( file_2.txt, Changed ) │
00:02:18 #4738 [Verbose] > │ ( file_2.txt, Renamed ) │
00:02:18 #4739 [Verbose] > │ ( file_2.txt, Deleted ) │
00:02:18 #4740 [Verbose] > │ FSharpMap<String,String> │
00:02:18 #4741 [Verbose] > │ - Key: file1.txt │
00:02:18 #4742 [Verbose] > │ Value: Changed │
00:02:18 #4743 [Verbose] > │ - Key: file2.txt │
00:02:18 #4744 [Verbose] > │ Value: Changed │
00:02:18 #4745 [Verbose] > │ - Key: file_1.txt │
00:02:18 #4746 [Verbose] > │ Value: Deleted │
00:02:18 #4747 [Verbose] > │ - Key: file_2.txt │
00:02:18 #4748 [Verbose] > │ Value: Deleted │
00:02:18 #4749 [Verbose] > │ FSharpOption<Unit> │
00:02:18 #4750 [Verbose] > │ Value: <null> │
00:02:18 #4751 [Verbose] > │ │
00:02:18 #4752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #4753 [Verbose] > [NbConvertApp] Converting notebook FileSystem.dib.ipynb to html
00:02:20 #4754 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:20 #4755 [Verbose] > validate(nb)
00:02:20 #4756 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:20 #4757 [Verbose] > return _pygments_highlight(
00:02:21 #4758 [Verbose] > [NbConvertApp] Writing 451681 bytes to FileSystem.dib.html
00:02:22 #4759 [Debug] executeAsync / exitCode: 0 / output.Length: 89586
00:02:22 #4760 [Debug] main / executeCommand / exitCode: 0
00:02:22 #4761 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Networking.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:24 #4762 [Verbose] >
00:02:24 #4763 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:24 #4764 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:24 #4765 [Verbose] > │ # Networking (Polyglot) │
00:02:24 #4766 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:24 #4767 [Verbose] >
00:02:24 #4768 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:24 #4769 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:02:24 #4770 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:02:24 #4771 [Verbose] >
00:02:24 #4772 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:24 #4773 [Verbose] > #r
00:02:24 #4774 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:02:24 #4775 [Verbose] > spNetCore.Html.Abstractions.dll"
00:02:24 #4776 [Verbose] > #r
00:02:24 #4777 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:24 #4778 [Verbose] > otNet.Interactive.dll"
00:02:24 #4779 [Verbose] > #r
00:02:24 #4780 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:24 #4781 [Verbose] > otNet.Interactive.FSharp.dll"
00:02:24 #4782 [Verbose] > #r
00:02:24 #4783 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:24 #4784 [Verbose] > otNet.Interactive.Formatting.dll"
00:02:24 #4785 [Verbose] > open System
00:02:24 #4786 [Verbose] > open System.IO
00:02:24 #4787 [Verbose] > open System.Text
00:02:24 #4788 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:02:28 #4789 [Verbose] >
00:02:28 #4790 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:28 #4791 [Verbose] > #r
00:02:28 #4792 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:28 #4793 [Verbose] > otNet.Interactive.FSharp.dll"
00:02:28 #4794 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:02:28 #4795 [Verbose] > #r
00:02:28 #4796 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:02:28 #4797 [Verbose] > otNet.Interactive.dll"
00:02:28 #4798 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:02:28 #4799 [Verbose] >
00:02:28 #4800 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:28 #4801 [Verbose] > //// test
00:02:28 #4802 [Verbose] >
00:02:28 #4803 [Verbose] > Formatter.ListExpansionLimit <- 100
00:02:28 #4804 [Verbose] >
00:02:28 #4805 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:28 #4806 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:02:28 #4807 [Verbose] >
00:02:28 #4808 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:28 #4809 [Verbose] > //// test
00:02:28 #4810 [Verbose] >
00:02:28 #4811 [Verbose] > type AssertExceptionFormatter (ex) =
00:02:28 #4812 [Verbose] > member _.Text =
00:02:28 #4813 [Verbose] > ex.ToString()
00:02:28 #4814 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:02:28 #4815 [Verbose] > .Replace("36m", "</span>")
00:02:28 #4816 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:02:28 #4817 [Verbose] > .Replace("\n", "<br/>\n")
00:02:28 #4818 [Verbose] >
00:02:28 #4819 [Verbose] >
00:02:28 #4820 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:02:28 #4821 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:02:29 #4822 [Verbose] >
00:02:29 #4823 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:29 #4824 [Verbose] > //// test
00:02:29 #4825 [Verbose] >
00:02:29 #4826 [Verbose] > let inline __expect fn log expected actual =
00:02:29 #4827 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:02:29 #4828 [Verbose] > try
00:02:29 #4829 [Verbose] > "Testing.__expect" |> fn actual expected
00:02:29 #4830 [Verbose] > with :? Expecto.AssertException as ex ->
00:02:29 #4831 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:02:29 #4832 [Verbose] > failwith (ex.GetType().FullName)
00:02:29 #4833 [Verbose] >
00:02:29 #4834 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:02:29 #4835 [Verbose] > expected actual
00:02:29 #4836 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:02:29 #4837 [Verbose] >
00:02:29 #4838 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:02:29 #4839 [Verbose] > expected actual
00:02:29 #4840 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:02:29 #4841 [Verbose] >
00:02:29 #4842 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:02:29 #4843 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:02:29 #4844 [Verbose] >
00:02:29 #4845 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:29 #4846 [Verbose] > //// test
00:02:29 #4847 [Verbose] >
00:02:29 #4848 [Verbose] > let inline __isBetween log a b actual =
00:02:29 #4849 [Verbose] > let inline isBetween actual (a, b) _ =
00:02:29 #4850 [Verbose] > __isGreaterThanOrEqual log a actual
00:02:29 #4851 [Verbose] > __isLessThanOrEqual log b actual
00:02:29 #4852 [Verbose] > __expect isBetween log (a, b) actual
00:02:29 #4853 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:02:29 #4854 [Verbose] >
00:02:29 #4855 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:29 #4856 [Verbose] > #r
00:02:29 #4857 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:02:29 #4858 [Verbose] > #r
00:02:29 #4859 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:02:29 #4860 [Verbose] > b/net6.0/System.CommandLine.dll"
00:02:30 #4861 [Verbose] >
00:02:30 #4862 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:30 #4863 [Verbose] > #!import ../../lib/spiral/common.fsx
00:02:30 #4864 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:02:30 #4865 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:02:30 #4866 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:02:30 #4867 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:02:30 #4868 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:02:30 #4869 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs
00:02:30 #4870 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:02:30 #4871 [Verbose] > #!import ../../lib/fsharp/Runtime.fs
00:02:30 #4872 [Verbose] >
00:02:30 #4873 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:30 #4874 [Verbose] > type [[<Struct>]] US0 =
00:02:30 #4875 [Verbose] > | US0_0
00:02:30 #4876 [Verbose] > | US0_1
00:02:30 #4877 [Verbose] > | US0_2
00:02:30 #4878 [Verbose] > | US0_3
00:02:30 #4879 [Verbose] > and [[<Struct>]] US1 =
00:02:30 #4880 [Verbose] > | US1_0 of f0_0 : US0
00:02:30 #4881 [Verbose] > | US1_1 of f1_0 : US0
00:02:30 #4882 [Verbose] > and [[<Struct>]] US2 =
00:02:30 #4883 [Verbose] > | US2_0
00:02:30 #4884 [Verbose] > | US2_1
00:02:30 #4885 [Verbose] > and [[<Struct>]] US3 =
00:02:30 #4886 [Verbose] > | US3_0 of f0_0 : US2
00:02:30 #4887 [Verbose] > | US3_1
00:02:30 #4888 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:02:30 #4889 [Verbose] > let v1 : System.IDisposable option = None
00:02:30 #4890 [Verbose] > let mutable _v1 = v1
00:02:30 #4891 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:02:30 #4892 [Verbose] > let v2 : US0 = US0_0
00:02:30 #4893 [Verbose] > let v3 : US1 = US1_0(v2)
00:02:30 #4894 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:02:30 #4895 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:02:30 #4896 [Verbose] > v5
00:02:30 #4897 [Verbose] > #endif
00:02:30 #4898 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:02:30 #4899 [Verbose] > let v6 : US0 = US0_2
00:02:30 #4900 [Verbose] > let v7 : US1 = US1_0(v6)
00:02:30 #4901 [Verbose] > let v8 : string = $"new_dispos...
00:02:30 #4902 [Verbose] >
00:02:30 #4903 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:30 #4904 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:02:30 #4905 [Verbose] > and Mut1 = {mutable l0 : int32}
00:02:30 #4906 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:02:30 #4907 [Verbose] > let v2 : bool = v1.Contains v0
00:02:30 #4908 [Verbose] > v2
00:02:30 #4909 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:02:30 #4910 [Verbose] > closure1(v0)
00:02:30 #4911 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:02:30 #4912 [Verbose] > let v2 : bool = v1.EndsWith v0
00:02:30 #4913 [Verbose] > v2
00:02:30 #4914 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:02:30 #4915 [Verbose] > closure3(v0)
00:02:30 #4916 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:02:30 #4917 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:02:30 #4918 [Verbose] > v3
00:02:30 #4919 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:02:30 #4920 [Verbose] > closure6(v0, v1)
00:02:30 #4921 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:02:30 #4922 [Verbose] > closure5(v0)
00:02:30 #4923 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:02:30 #4924 [Verbose] > let v2 : stri...
00:02:31 #4925 [Verbose] >
00:02:31 #4926 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:31 #4927 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:02:31 #4928 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:02:31 #4929 [Verbose] > let v3 : string = v2 v0
00:02:31 #4930 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:02:31 #4931 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:02:31 #4932 [Verbose] > v5
00:02:31 #4933 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:02:31 #4934 [Verbose] > closure1(v0)
00:02:31 #4935 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:02:31 #4936 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:02:31 #4937 [Verbose] > v3
00:02:31 #4938 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:02:31 #4939 [Verbose] > closure5(v0, v1)
00:02:31 #4940 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:02:31 #4941 [Verbose] > closure4(v0)
00:02:31 #4942 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:02:31 #4943 [Verbose] > closure3()
00:02:31 #4944 [Verbose] > and closure2 (...
00:02:31 #4945 [Verbose] >
00:02:31 #4946 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:31 #4947 [Verbose] > #if FABLE_COMPILER // file_system.types
00:02:31 #4948 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:02:31 #4949 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:02:31 #4950 [Verbose] > base64_DecodeError = class end
00:02:31 #4951 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:02:31 #4952 [Verbose] > = class end
00:02:31 #4953 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:02:31 #4954 [Verbose] > = class end
00:02:31 #4955 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:02:31 #4956 [Verbose] > serde_json_Error = class end
00:02:31 #4957 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:02:31 #4958 [Verbose] > serde_json_Value = class end
00:02:31 #4959 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:02:31 #4960 [Verbose] > serde_wasm_bindgen_Error = class end
00:02:31 #4961 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:02:31 #4962 [Verbose] >
00:02:31 #4963 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:31 #4964 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:02:31 #4965 [Verbose] > module SpiralDateTime =
00:02:31 #4966 [Verbose] > let format x =
00:02:31 #4967 [Verbose] > #if !INTERACTIVE
00:02:31 #4968 [Verbose] > Date_time.format x
00:02:31 #4969 [Verbose] > #else
00:02:31 #4970 [Verbose] > format x
00:02:31 #4971 [Verbose] > #endif
00:02:31 #4972 [Verbose] >
00:02:31 #4973 [Verbose] > let format_iso8601 x =
00:02:31 #4974 [Verbose] > #if !INTERACTIVE
00:02:31 #4975 [Verbose] > Date_time.format_iso8601 x
00:02:31 #4976 [Verbose] > #else
00:02:31 #4977 [Verbose] > format_iso8601 x
00:02:31 #4978 [Verbose] > #endif
00:02:31 #4979 [Verbose] >
00:02:31 #4980 [Verbose] > let new_guid_from_date_time x =
00:02:31 #4981 [Verbose] > #if !INTERACTIVE
00:02:31 #4982 [Verbose] > Date_time.new_guid_from_date_time x
00:02:31 #4983 [Verbose] > #else
00:02:31 #4984 [Verbose] > new_guid_from_date_time x
00:02:31 #4985 [Verbose] > #endif
00:02:31 #4986 [Verbose] >
00:02:31 #4987 [Verbose] > #endif
00:02:31 #4988 [Verbose] >
00:02:31 #4989 [Verbose] > module SpiralSm =
00:02:31 #4990 [Verbose] > let concat x =
00:02:31 #4991 [Verbose] > #if !INTERACTIVE
00:02:31 #4992 [Verbose] > Sm.concat x
00:02:31 #4993 [Verbose] > #else
00:02:31 #4994 [Verbose] > concat x
00:02:31 #4995 [Verbose] > #endif
00:02:31 #4996 [Verbose] >
00:02:31 #4997 [Verbose] > let contains x =
00:02:31 #4998 [Verbose] > #if !INTERACTIVE
00:02:31 #4999 [Verbose] > Sm.contains x
00:02:31 #5000 [Verbose] > #else
00:02:31 #5001 [Verbose] > contains x
00:02:31 #5002 [Verbose] > #endif
00:02:31 #5003 [Verbose] >
00:02:31 #5004 [Verbose] > let ellipsis x =
00:02:31 #5005 [Verbose] > #if !INTERACTIVE
00:02:31 #5006 [Verbose] > Sm.ellipsis x
00:02:31 #5007 [Verbose] > #else
00:02:31 #5008 [Verbose] > ellipsis x
00:02:31 #5009 [Verbose] > #endif
00:02:31 #5010 [Verbose] >
00:02:31 #5011 [Verbose] > let ellipsis_end x =
00:02:31 #5012 [Verbose] > #if...
00:02:31 #5013 [Verbose] >
00:02:31 #5014 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:31 #5015 [Verbose] > #if !INTERACTIVE
00:02:31 #5016 [Verbose] > namespace Polyglot
00:02:31 #5017 [Verbose] > #endif
00:02:31 #5018 [Verbose] >
00:02:31 #5019 [Verbose] > module Common =
00:02:31 #5020 [Verbose] >
00:02:31 #5021 [Verbose] > #if !INTERACTIVE
00:02:31 #5022 [Verbose] > open Lib
00:02:31 #5023 [Verbose] > #endif
00:02:31 #5024 [Verbose] >
00:02:31 #5025 [Verbose] > let nl = System.Environment.NewLine
00:02:31 #5026 [Verbose] > let q = @""""
00:02:31 #5027 [Verbose] >
00:02:31 #5028 [Verbose] > let inline cons head tail = head :: tail
00:02:31 #5029 [Verbose] >
00:02:31 #5030 [Verbose] > /// ## memoize
00:02:31 #5031 [Verbose] >
00:02:31 #5032 [Verbose] > let inline memoize fn =
00:02:31 #5033 [Verbose] > let result = lazy fn ()
00:02:31 #5034 [Verbose] > fun () -> result.Value
00:02:31 #5035 [Verbose] >
00:02:31 #5036 [Verbose] > /// ## TraceLevel
00:02:31 #5037 [Verbose] >
00:02:31 #5038 [Verbose] > type TraceLevel =
00:02:31 #5039 [Verbose] > | Verbose
00:02:31 #5040 [Verbose] > | Debug
00:02:31 #5041 [Verbose] > | Info
00:02:31 #5042 [Verbose] > | Warning
00:02:31 #5043 [Verbose] > | Critical
00:02:31 #5044 [Verbose] >
00:02:31 #5045 [Verbose] > let inline getLocals () = ""
00:02:31 #5046 [Verbose] >
00:02:31 #5047 [Verbose] > let mutable traceEnabled = true
00:02:31 #5048 [Verbose] > let mutable traceCount = 0
00:02:31 #5049 [Verbose] > let mutable traceLevel = Verbose
00:02:31 #5050 [Verbose] > let mutable traceDump = false
00:02:31 #5051 [Verbose] >
00:02:31 #5052 [Verbose] > let testTraceLevel level =
00:02:31 #5053 [Verbose] > traceEnabled && level >= traceLevel
00:02:31 #5054 [Verbose] >
00:02:31 #5055 [Verbose] > /// ## traceRaw
00:02:31 #5056 [Verbose] >
00:02:31 #5057 [Verbose] > let rec traceRaw level fn =
00:02:31 #5058 [Verbose] > ...
00:02:32 #5059 [Verbose] >
00:02:32 #5060 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:32 #5061 [Verbose] > #if !INTERACTIVE
00:02:32 #5062 [Verbose] > namespace Polyglot
00:02:32 #5063 [Verbose] > #endif
00:02:32 #5064 [Verbose] >
00:02:32 #5065 [Verbose] > module CommonFSharp =
00:02:32 #5066 [Verbose] >
00:02:32 #5067 [Verbose] > open Common
00:02:32 #5068 [Verbose] >
00:02:32 #5069 [Verbose] > /// ## getUnionCaseName
00:02:32 #5070 [Verbose] >
00:02:32 #5071 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:02:32 #5072 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:02:32 #5073 [Verbose] > | case, _ -> case.Name
00:02:32 #5074 [Verbose] >
00:02:32 #5075 [Verbose] >
00:02:32 #5076 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:32 #5077 [Verbose] > #if !INTERACTIVE
00:02:32 #5078 [Verbose] > namespace Polyglot
00:02:32 #5079 [Verbose] > #endif
00:02:32 #5080 [Verbose] >
00:02:32 #5081 [Verbose] > module Async =
00:02:32 #5082 [Verbose] >
00:02:32 #5083 [Verbose] > #if !INTERACTIVE
00:02:32 #5084 [Verbose] > open Lib
00:02:32 #5085 [Verbose] > #endif
00:02:32 #5086 [Verbose] >
00:02:32 #5087 [Verbose] > open Common
00:02:32 #5088 [Verbose] >
00:02:32 #5089 [Verbose] > /// ## choice
00:02:32 #5090 [Verbose] >
00:02:32 #5091 [Verbose] > let inline choice asyncs = async {
00:02:32 #5092 [Verbose] > let e = Event<_> ()
00:02:32 #5093 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:02:32 #5094 [Verbose] > let fn =
00:02:32 #5095 [Verbose] > asyncs
00:02:32 #5096 [Verbose] > |> Seq.map (fun a -> async {
00:02:32 #5097 [Verbose] > let! x = a
00:02:32 #5098 [Verbose] > e.Trigger x
00:02:32 #5099 [Verbose] > })
00:02:32 #5100 [Verbose] > |> Async.Parallel
00:02:32 #5101 [Verbose] > |> Async.Ignore
00:02:32 #5102 [Verbose] > Async.Start (fn, cts.Token)
00:02:32 #5103 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:02:32 #5104 [Verbose] > cts.Cancel ()
00:02:32 #5105 [Verbose] > return result
00:02:32 #5106 [Verbose] > }
00:02:32 #5107 [Verbose] >
00:02:32 #5108 [Verbose] > /// ## map
00:02:32 #5109 [Verbose] >
00:02:32 #5110 [Verbose] > let inline map fn a = async {
00:02:32 #5111 [Verbose] > let! x = a
00:02:32 #5112 [Verbose] > return fn x
00:02:32 #5113 [Verbose] > }
00:02:32 #5114 [Verbose] >
00:02:32 #5115 [Verbose] > /// ## catch
00:02:32 #5116 [Verbose] >
00:02:32 #5117 [Verbose] > let inline catch a =
00:02:32 #5118 [Verbose] > ...
00:02:32 #5119 [Verbose] >
00:02:32 #5120 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:02:32 #5121 [Verbose] > #if !INTERACTIVE
00:02:32 #5122 [Verbose] > namespace Polyglot
00:02:32 #5123 [Verbose] > #endif
00:02:32 #5124 [Verbose] >
00:02:32 #5125 [Verbose] > module Runtime =
00:02:32 #5126 [Verbose] >
00:02:32 #5127 [Verbose] > #if !INTERACTIVE
00:02:32 #5128 [Verbose] > open Lib
00:02:32 #5129 [Verbose] > #endif
00:02:32 #5130 [Verbose] >
00:02:32 #5131 [Verbose] > open Common
00:02:32 #5132 [Verbose] >
00:02:32 #5133 [Verbose] > /// ## isWindows
00:02:32 #5134 [Verbose] >
00:02:32 #5135 [Verbose] > let isWindows =
00:02:32 #5136 [Verbose] > fun () ->
00:02:32 #5137 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:02:32 #5138 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:02:32 #5139 [Verbose] > |> memoize
00:02:32 #5140 [Verbose] >
00:02:32 #5141 [Verbose] > /// ## getExecutableSuffix
00:02:32 #5142 [Verbose] >
00:02:32 #5143 [Verbose] > let inline getExecutableSuffix () =
00:02:32 #5144 [Verbose] > if isWindows ()
00:02:32 #5145 [Verbose] > then ".exe"
00:02:32 #5146 [Verbose] > else ""
00:02:32 #5147 [Verbose] >
00:02:32 #5148 [Verbose] > /// ## splitCommand
00:02:32 #5149 [Verbose] >
00:02:32 #5150 [Verbose] > type private CommandParseStep =
00:02:32 #5151 [Verbose] > | Start
00:02:32 #5152 [Verbose] > | Path of quoted: bool
00:02:32 #5153 [Verbose] > | Arguments
00:02:32 #5154 [Verbose] >
00:02:32 #5155 [Verbose] > let splitCommand (command: string) =
00:02:32 #5156 [Verbose] > let rec loop (path, args) chars step =
00:02:32 #5157 [Verbose] > match chars, step with
00:02:32 #5158 [Verbose] > | ('"' | '\'') ...
00:02:33 #5159 [Verbose] >
00:02:33 #5160 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:33 #5161 [Verbose] > #if !INTERACTIVE
00:02:33 #5162 [Verbose] > open Lib
00:02:33 #5163 [Verbose] > #endif
00:02:33 #5164 [Verbose] >
00:02:33 #5165 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:33 #5166 [Verbose] > open Common
00:02:33 #5167 [Verbose] >
00:02:33 #5168 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:33 #5169 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:33 #5170 [Verbose] > │ ## testPortOpen │
00:02:33 #5171 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #5172 [Verbose] >
00:02:33 #5173 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:33 #5174 [Verbose] > let inline testPortOpen port = async {
00:02:33 #5175 [Verbose] > let! ct = Async.CancellationToken
00:02:33 #5176 [Verbose] > use client = new System.Net.Sockets.TcpClient ()
00:02:33 #5177 [Verbose] > try
00:02:33 #5178 [Verbose] > do! client.ConnectAsync ("127.0.0.1", port, ct) |>
00:02:33 #5179 [Verbose] > Async.awaitValueTaskUnit
00:02:33 #5180 [Verbose] > return true
00:02:33 #5181 [Verbose] > with ex ->
00:02:33 #5182 [Verbose] > trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
00:02:33 #5183 [Verbose] > SpiralSm.format_exception}") getLocals
00:02:33 #5184 [Verbose] > return false
00:02:33 #5185 [Verbose] > }
00:02:33 #5186 [Verbose] >
00:02:33 #5187 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:33 #5188 [Verbose] > //// test
00:02:33 #5189 [Verbose] >
00:02:33 #5190 [Verbose] > testPortOpen 65536
00:02:33 #5191 [Verbose] > |> Async.runWithTimeout 120
00:02:33 #5192 [Verbose] > |> _assertEqual (Some false)
00:02:33 #5193 [Verbose] >
00:02:33 #5194 [Verbose] > ╭─[ 183.12ms - stdout ]────────────────────────────────────────────────────────╮
00:02:33 #5195 [Verbose] > │ 00:00:00 #1 [Verbose] testPortOpen / ex: System.ArgumentOutOfRangeException: │
00:02:33 #5196 [Verbose] > │ Specified argument was out of the range of valid values. (Parameter 'port') │
00:02:33 #5197 [Verbose] > │ FSharpOption<Boolean> │
00:02:33 #5198 [Verbose] > │ Value: False │
00:02:33 #5199 [Verbose] > │ │
00:02:33 #5200 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:33 #5201 [Verbose] >
00:02:33 #5202 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:33 #5203 [Verbose] > let inline testPortOpenTimeout timeout port = async {
00:02:33 #5204 [Verbose] > let! result =
00:02:33 #5205 [Verbose] > testPortOpen port
00:02:33 #5206 [Verbose] > |> Async.runWithTimeoutAsync timeout
00:02:33 #5207 [Verbose] > return
00:02:33 #5208 [Verbose] > match result with
00:02:33 #5209 [Verbose] > | None -> false
00:02:33 #5210 [Verbose] > | Some result -> result
00:02:33 #5211 [Verbose] > }
00:02:33 #5212 [Verbose] >
00:02:33 #5213 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:33 #5214 [Verbose] > //// test
00:02:33 #5215 [Verbose] >
00:02:33 #5216 [Verbose] > testPortOpenTimeout 120 65535
00:02:33 #5217 [Verbose] > |> Async.RunSynchronously
00:02:33 #5218 [Verbose] > |> _assertEqual false
00:02:34 #5219 [Verbose] >
00:02:34 #5220 [Verbose] > ╭─[ 235.59ms - stdout ]────────────────────────────────────────────────────────╮
00:02:34 #5221 [Verbose] > │ 00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 120 │
00:02:34 #5222 [Verbose] > │ False │
00:02:34 #5223 [Verbose] > │ │
00:02:34 #5224 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:34 #5225 [Verbose] >
00:02:34 #5226 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:34 #5227 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:34 #5228 [Verbose] > │ ## waitForPortAccess │
00:02:34 #5229 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:34 #5230 [Verbose] >
00:02:34 #5231 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:34 #5232 [Verbose] > let inline waitForPortAccess timeout status port =
00:02:34 #5233 [Verbose] > let rec loop retry = async {
00:02:34 #5234 [Verbose] > let! isPortOpen =
00:02:34 #5235 [Verbose] > match timeout with
00:02:34 #5236 [Verbose] > | None -> testPortOpen port
00:02:34 #5237 [Verbose] > | Some timeout -> testPortOpenTimeout timeout port
00:02:34 #5238 [Verbose] > if isPortOpen = status
00:02:34 #5239 [Verbose] > then return retry
00:02:34 #5240 [Verbose] > else
00:02:34 #5241 [Verbose] > if retry % 100 = 0 then
00:02:34 #5242 [Verbose] > let getLocals () = $"port: {port} / retry: {retry} / {getLocals
00:02:34 #5243 [Verbose] > ()}"
00:02:34 #5244 [Verbose] > trace Verbose (fun () -> "waitForPortAccess") getLocals
00:02:34 #5245 [Verbose] > do! Async.Sleep 10
00:02:34 #5246 [Verbose] > return! loop (retry + 1)
00:02:34 #5247 [Verbose] > }
00:02:34 #5248 [Verbose] > loop 0
00:02:34 #5249 [Verbose] >
00:02:34 #5250 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:34 #5251 [Verbose] > //// test
00:02:34 #5252 [Verbose] >
00:02:34 #5253 [Verbose] > let port = 5555
00:02:34 #5254 [Verbose] >
00:02:34 #5255 [Verbose] > let inline lockPort () = async {
00:02:34 #5256 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:34 #5257 [Verbose] > do! Async.Sleep 5000
00:02:34 #5258 [Verbose] > use listener = new System.Net.Sockets.TcpListener
00:02:34 #5259 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:34 #5260 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:34 #5261 [Verbose] > listener.Start ()
00:02:34 #5262 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:34 #5263 [Verbose] > do! Async.Sleep 2000
00:02:34 #5264 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:34 #5265 [Verbose] > listener.Stop ()
00:02:34 #5266 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:34 #5267 [Verbose] > }
00:02:34 #5268 [Verbose] >
00:02:34 #5269 [Verbose] > async {
00:02:34 #5270 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:34 #5271 [Verbose] > let! child = lockPort () |> Async.StartChild
00:02:34 #5272 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:34 #5273 [Verbose] > do! Async.Sleep 1
00:02:34 #5274 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:34 #5275 [Verbose] > let! retries1 = waitForPortAccess None true port
00:02:34 #5276 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:34 #5277 [Verbose] > let! retries2 = waitForPortAccess None false port
00:02:34 #5278 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:34 #5279 [Verbose] > do! child
00:02:34 #5280 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:34 #5281 [Verbose] > return retries1, retries2
00:02:34 #5282 [Verbose] > }
00:02:34 #5283 [Verbose] > |> Async.runWithTimeout 20000
00:02:34 #5284 [Verbose] > |> function
00:02:34 #5285 [Verbose] > | Some (retries1, retries2) ->
00:02:34 #5286 [Verbose] > retries1
00:02:34 #5287 [Verbose] > |> _isBetween
00:02:34 #5288 [Verbose] > (if Runtime.isWindows () then 2 else 2)
00:02:34 #5289 [Verbose] > (if Runtime.isWindows () then 5 else 1500)
00:02:34 #5290 [Verbose] >
00:02:34 #5291 [Verbose] > retries2
00:02:34 #5292 [Verbose] > |> _isBetween
00:02:34 #5293 [Verbose] > (if Runtime.isWindows () then 80 else 80)
00:02:34 #5294 [Verbose] > (if Runtime.isWindows () then 150 else 600)
00:02:34 #5295 [Verbose] >
00:02:34 #5296 [Verbose] > true
00:02:34 #5297 [Verbose] > | _ -> false
00:02:34 #5298 [Verbose] > |> _assertEqual true
00:02:43 #5299 [Verbose] >
00:02:43 #5300 [Verbose] > ╭─[ 9.53s - stdout ]───────────────────────────────────────────────────────────╮
00:02:43 #5301 [Verbose] > │ 00:00:01 #3 [Debug] 1 │
00:02:43 #5302 [Verbose] > │ 00:00:01 #4 [Debug] _1 │
00:02:43 #5303 [Verbose] > │ 00:00:01 #5 [Debug] 2 │
00:02:43 #5304 [Verbose] > │ 00:00:01 #6 [Debug] 3 │
00:02:43 #5305 [Verbose] > │ 00:00:03 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:43 #5306 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:43 #5307 [Verbose] > │ machine actively refused it.) │
00:02:43 #5308 [Verbose] > │ 00:00:03 #8 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:43 #5309 [Verbose] > │ 00:00:05 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:43 #5310 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:43 #5311 [Verbose] > │ machine actively refused it.) │
00:02:43 #5312 [Verbose] > │ 00:00:06 #10 [Debug] _2 │
00:02:43 #5313 [Verbose] > │ 00:00:06 #11 [Debug] _3 │
00:02:43 #5314 [Verbose] > │ 00:00:06 #12 [Debug] 4 │
00:02:43 #5315 [Verbose] > │ 00:00:06 #13 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:43 #5316 [Verbose] > │ 00:00:07 #14 [Verbose] waitForPortAccess / port: 5555 / retry: 100 │
00:02:43 #5317 [Verbose] > │ 00:00:08 #15 [Debug] _4 │
00:02:43 #5318 [Verbose] > │ 00:00:08 #16 [Debug] _5 │
00:02:43 #5319 [Verbose] > │ 00:00:10 #17 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:43 #5320 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:43 #5321 [Verbose] > │ machine actively refused it.) │
00:02:43 #5322 [Verbose] > │ 00:00:10 #18 [Debug] 5 │
00:02:43 #5323 [Verbose] > │ 00:00:10 #19 [Debug] 6 │
00:02:43 #5324 [Verbose] > │ 2 │
00:02:43 #5325 [Verbose] > │ 2 │
00:02:43 #5326 [Verbose] > │ 2 │
00:02:43 #5327 [Verbose] > │ 118 │
00:02:43 #5328 [Verbose] > │ 118 │
00:02:43 #5329 [Verbose] > │ 118 │
00:02:43 #5330 [Verbose] > │ True │
00:02:43 #5331 [Verbose] > │ │
00:02:43 #5332 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:43 #5333 [Verbose] >
00:02:43 #5334 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:43 #5335 [Verbose] > //// test
00:02:43 #5336 [Verbose] >
00:02:43 #5337 [Verbose] > let port = 5555
00:02:43 #5338 [Verbose] >
00:02:43 #5339 [Verbose] > let inline lockPort () = async {
00:02:43 #5340 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:43 #5341 [Verbose] > do! Async.Sleep 500
00:02:43 #5342 [Verbose] > use listener = new System.Net.Sockets.TcpListener
00:02:43 #5343 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:43 #5344 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:43 #5345 [Verbose] > listener.Start ()
00:02:43 #5346 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:43 #5347 [Verbose] > do! Async.Sleep 200
00:02:43 #5348 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:43 #5349 [Verbose] > listener.Stop ()
00:02:43 #5350 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:43 #5351 [Verbose] > }
00:02:43 #5352 [Verbose] >
00:02:43 #5353 [Verbose] > async {
00:02:43 #5354 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:43 #5355 [Verbose] > let! child = lockPort () |> Async.StartChild
00:02:43 #5356 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:43 #5357 [Verbose] > do! Async.Sleep 1
00:02:43 #5358 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:43 #5359 [Verbose] > let! retries1 = waitForPortAccess (Some 60) true port
00:02:43 #5360 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:43 #5361 [Verbose] > let! retries2 = waitForPortAccess (Some 60) false port
00:02:43 #5362 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:43 #5363 [Verbose] > do! child
00:02:43 #5364 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:43 #5365 [Verbose] > return retries1, retries2
00:02:43 #5366 [Verbose] > }
00:02:43 #5367 [Verbose] > |> Async.runWithTimeout 2000
00:02:43 #5368 [Verbose] > |> function
00:02:43 #5369 [Verbose] > | Some (retries1, retries2) ->
00:02:43 #5370 [Verbose] > retries1
00:02:43 #5371 [Verbose] > |> _isBetween
00:02:43 #5372 [Verbose] > (if Runtime.isWindows () then 4 else 2)
00:02:43 #5373 [Verbose] > (if Runtime.isWindows () then 15 else 150)
00:02:43 #5374 [Verbose] >
00:02:43 #5375 [Verbose] > retries2
00:02:43 #5376 [Verbose] > |> _isBetween
00:02:43 #5377 [Verbose] > (if Runtime.isWindows () then 5 else 0)
00:02:43 #5378 [Verbose] > (if Runtime.isWindows () then 20 else 60)
00:02:43 #5379 [Verbose] >
00:02:43 #5380 [Verbose] > true
00:02:43 #5381 [Verbose] > | _ -> false
00:02:43 #5382 [Verbose] > |> _assertEqual true
00:02:45 #5383 [Verbose] >
00:02:45 #5384 [Verbose] > ╭─[ 1.44s - stdout ]───────────────────────────────────────────────────────────╮
00:02:45 #5385 [Verbose] > │ 00:00:10 #20 [Debug] 1 │
00:02:45 #5386 [Verbose] > │ 00:00:10 #22 [Debug] _1 │
00:02:45 #5387 [Verbose] > │ 00:00:10 #21 [Debug] 2 │
00:02:45 #5388 [Verbose] > │ 00:00:10 #23 [Debug] 3 │
00:02:45 #5389 [Verbose] > │ 00:00:10 #24 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5390 [Verbose] > │ 00:00:10 #25 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:45 #5391 [Verbose] > │ 00:00:10 #26 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5392 [Verbose] > │ 00:00:11 #27 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5393 [Verbose] > │ 00:00:11 #28 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5394 [Verbose] > │ 00:00:11 #29 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5395 [Verbose] > │ 00:00:11 #30 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5396 [Verbose] > │ 00:00:11 #31 [Debug] _2 │
00:02:45 #5397 [Verbose] > │ 00:00:11 #32 [Debug] _3 │
00:02:45 #5398 [Verbose] > │ 00:00:11 #33 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5399 [Verbose] > │ 00:00:11 #34 [Debug] 4 │
00:02:45 #5400 [Verbose] > │ 00:00:11 #35 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:45 #5401 [Verbose] > │ 00:00:11 #36 [Debug] _4 │
00:02:45 #5402 [Verbose] > │ 00:00:11 #37 [Debug] _5 │
00:02:45 #5403 [Verbose] > │ 00:00:11 #38 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:45 #5404 [Verbose] > │ 00:00:11 #39 [Debug] 5 │
00:02:45 #5405 [Verbose] > │ 00:00:11 #40 [Debug] 6 │
00:02:45 #5406 [Verbose] > │ 7 │
00:02:45 #5407 [Verbose] > │ 7 │
00:02:45 #5408 [Verbose] > │ 7 │
00:02:45 #5409 [Verbose] > │ 10 │
00:02:45 #5410 [Verbose] > │ 10 │
00:02:45 #5411 [Verbose] > │ 10 │
00:02:45 #5412 [Verbose] > │ True │
00:02:45 #5413 [Verbose] > │ │
00:02:45 #5414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:45 #5415 [Verbose] >
00:02:45 #5416 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:45 #5417 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:45 #5418 [Verbose] > │ ## getAvailablePort │
00:02:45 #5419 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:45 #5420 [Verbose] >
00:02:45 #5421 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:45 #5422 [Verbose] > let inline getAvailablePort timeout initialPort =
00:02:45 #5423 [Verbose] > let rec loop port = async {
00:02:45 #5424 [Verbose] > let! isPortOpen =
00:02:45 #5425 [Verbose] > match timeout with
00:02:45 #5426 [Verbose] > | None -> testPortOpen port
00:02:45 #5427 [Verbose] > | Some timeout -> testPortOpenTimeout timeout port
00:02:45 #5428 [Verbose] > if not isPortOpen
00:02:45 #5429 [Verbose] > then return port
00:02:45 #5430 [Verbose] > else return! loop (port + 1)
00:02:45 #5431 [Verbose] > }
00:02:45 #5432 [Verbose] > loop initialPort
00:02:45 #5433 [Verbose] >
00:02:45 #5434 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:45 #5435 [Verbose] > //// test
00:02:45 #5436 [Verbose] >
00:02:45 #5437 [Verbose] > let port = 5555
00:02:45 #5438 [Verbose] >
00:02:45 #5439 [Verbose] > let inline lockPorts () = async {
00:02:45 #5440 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:45 #5441 [Verbose] > use listener1 = new System.Net.Sockets.TcpListener
00:02:45 #5442 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:45 #5443 [Verbose] > use listener2 = new System.Net.Sockets.TcpListener
00:02:45 #5444 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port + 1)
00:02:45 #5445 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:45 #5446 [Verbose] > listener1.Start ()
00:02:45 #5447 [Verbose] > listener2.Start ()
00:02:45 #5448 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:45 #5449 [Verbose] > do! Async.Sleep 4000
00:02:45 #5450 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:45 #5451 [Verbose] > listener1.Stop ()
00:02:45 #5452 [Verbose] > listener2.Stop ()
00:02:45 #5453 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:45 #5454 [Verbose] > }
00:02:45 #5455 [Verbose] >
00:02:45 #5456 [Verbose] > async {
00:02:45 #5457 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:45 #5458 [Verbose] > let! child = lockPorts () |> Async.StartChild
00:02:45 #5459 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:45 #5460 [Verbose] > do! Async.Sleep 240
00:02:45 #5461 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:45 #5462 [Verbose] > let! availablePort = getAvailablePort None port
00:02:45 #5463 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:45 #5464 [Verbose] > let! retries = waitForPortAccess None false port
00:02:45 #5465 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:45 #5466 [Verbose] > do! child
00:02:45 #5467 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:45 #5468 [Verbose] > return availablePort, retries
00:02:45 #5469 [Verbose] > }
00:02:45 #5470 [Verbose] > |> Async.runWithTimeout 15000
00:02:45 #5471 [Verbose] > |> function
00:02:45 #5472 [Verbose] > | Some (availablePort, retries) ->
00:02:45 #5473 [Verbose] > availablePort |> _assertEqual (port + 2)
00:02:45 #5474 [Verbose] >
00:02:45 #5475 [Verbose] > retries
00:02:45 #5476 [Verbose] > |> _isBetween
00:02:45 #5477 [Verbose] > (if Runtime.isWindows () then 100 else 100)
00:02:45 #5478 [Verbose] > (if Runtime.isWindows () then 150 else 1200)
00:02:45 #5479 [Verbose] >
00:02:45 #5480 [Verbose] > true
00:02:45 #5481 [Verbose] > | _ -> false
00:02:45 #5482 [Verbose] > |> _assertEqual true
00:02:52 #5483 [Verbose] >
00:02:52 #5484 [Verbose] > ╭─[ 6.58s - stdout ]───────────────────────────────────────────────────────────╮
00:02:52 #5485 [Verbose] > │ 00:00:12 #41 [Debug] 1 │
00:02:52 #5486 [Verbose] > │ 00:00:12 #43 [Debug] _1 │
00:02:52 #5487 [Verbose] > │ 00:00:12 #42 [Debug] 2 │
00:02:52 #5488 [Verbose] > │ 00:00:12 #44 [Debug] _2 │
00:02:52 #5489 [Verbose] > │ 00:00:12 #45 [Debug] _3 │
00:02:52 #5490 [Verbose] > │ 00:00:12 #46 [Debug] 3 │
00:02:52 #5491 [Verbose] > │ 00:00:14 #47 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:52 #5492 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:52 #5493 [Verbose] > │ machine actively refused it.) │
00:02:52 #5494 [Verbose] > │ 00:00:14 #48 [Debug] 4 │
00:02:52 #5495 [Verbose] > │ 00:00:14 #49 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:52 #5496 [Verbose] > │ 00:00:16 #50 [Verbose] waitForPortAccess / port: 5555 / retry: 100 │
00:02:52 #5497 [Verbose] > │ 00:00:16 #51 [Debug] _4 │
00:02:52 #5498 [Verbose] > │ 00:00:16 #52 [Debug] _5 │
00:02:52 #5499 [Verbose] > │ 00:00:18 #53 [Verbose] testPortOpen / ex: System.AggregateException: One or │
00:02:52 #5500 [Verbose] > │ more errors occurred. (No connection could be made because the target │
00:02:52 #5501 [Verbose] > │ machine actively refused it.) │
00:02:52 #5502 [Verbose] > │ 00:00:18 #54 [Debug] 5 │
00:02:52 #5503 [Verbose] > │ 00:00:18 #55 [Debug] 6 │
00:02:52 #5504 [Verbose] > │ 5557 │
00:02:52 #5505 [Verbose] > │ 111 │
00:02:52 #5506 [Verbose] > │ 111 │
00:02:52 #5507 [Verbose] > │ 111 │
00:02:52 #5508 [Verbose] > │ True │
00:02:52 #5509 [Verbose] > │ │
00:02:52 #5510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:52 #5511 [Verbose] >
00:02:52 #5512 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:02:52 #5513 [Verbose] > //// test
00:02:52 #5514 [Verbose] >
00:02:52 #5515 [Verbose] > let port = 5555
00:02:52 #5516 [Verbose] >
00:02:52 #5517 [Verbose] > let inline lockPorts () = async {
00:02:52 #5518 [Verbose] > trace Debug (fun () -> "_1") getLocals
00:02:52 #5519 [Verbose] > use listener1 = new System.Net.Sockets.TcpListener
00:02:52 #5520 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)
00:02:52 #5521 [Verbose] > use listener2 = new System.Net.Sockets.TcpListener
00:02:52 #5522 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port + 1)
00:02:52 #5523 [Verbose] > trace Debug (fun () -> "_2") getLocals
00:02:52 #5524 [Verbose] > listener1.Start ()
00:02:52 #5525 [Verbose] > listener2.Start ()
00:02:52 #5526 [Verbose] > trace Debug (fun () -> "_3") getLocals
00:02:52 #5527 [Verbose] > do! Async.Sleep 400
00:02:52 #5528 [Verbose] > trace Debug (fun () -> "_4") getLocals
00:02:52 #5529 [Verbose] > listener1.Stop ()
00:02:52 #5530 [Verbose] > listener2.Stop ()
00:02:52 #5531 [Verbose] > trace Debug (fun () -> "_5") getLocals
00:02:52 #5532 [Verbose] > }
00:02:52 #5533 [Verbose] >
00:02:52 #5534 [Verbose] > async {
00:02:52 #5535 [Verbose] > trace Debug (fun () -> "1") getLocals
00:02:52 #5536 [Verbose] > let! child = lockPorts () |> Async.StartChild
00:02:52 #5537 [Verbose] > trace Debug (fun () -> "2") getLocals
00:02:52 #5538 [Verbose] > do! Async.Sleep 240
00:02:52 #5539 [Verbose] > trace Debug (fun () -> "3") getLocals
00:02:52 #5540 [Verbose] > let! availablePort = getAvailablePort (Some 60) port
00:02:52 #5541 [Verbose] > trace Debug (fun () -> "4") getLocals
00:02:52 #5542 [Verbose] > let! retries = waitForPortAccess (Some 60) false port
00:02:52 #5543 [Verbose] > trace Debug (fun () -> "5") getLocals
00:02:52 #5544 [Verbose] > do! child
00:02:52 #5545 [Verbose] > trace Debug (fun () -> "6") getLocals
00:02:52 #5546 [Verbose] > return availablePort, retries
00:02:52 #5547 [Verbose] > }
00:02:52 #5548 [Verbose] > |> Async.runWithTimeout 1500
00:02:52 #5549 [Verbose] > |> function
00:02:52 #5550 [Verbose] > | Some (availablePort, retries) ->
00:02:52 #5551 [Verbose] > availablePort |> _assertEqual (port + 2)
00:02:52 #5552 [Verbose] >
00:02:52 #5553 [Verbose] > retries
00:02:52 #5554 [Verbose] > |> _isBetween
00:02:52 #5555 [Verbose] > (if Runtime.isWindows () then 2 else 1)
00:02:52 #5556 [Verbose] > (if Runtime.isWindows () then 10 else 120)
00:02:52 #5557 [Verbose] >
00:02:52 #5558 [Verbose] > true
00:02:52 #5559 [Verbose] > | _ -> false
00:02:52 #5560 [Verbose] > |> _assertEqual true
00:02:53 #5561 [Verbose] >
00:02:53 #5562 [Verbose] > ╭─[ 1.21s - stdout ]───────────────────────────────────────────────────────────╮
00:02:53 #5563 [Verbose] > │ 00:00:19 #56 [Debug] 1 │
00:02:53 #5564 [Verbose] > │ 00:00:19 #57 [Debug] 2 │
00:02:53 #5565 [Verbose] > │ 00:00:19 #58 [Debug] _1 │
00:02:53 #5566 [Verbose] > │ 00:00:19 #59 [Debug] _2 │
00:02:53 #5567 [Verbose] > │ 00:00:19 #60 [Debug] _3 │
00:02:53 #5568 [Verbose] > │ 00:00:19 #61 [Debug] 3 │
00:02:53 #5569 [Verbose] > │ 00:00:19 #62 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:53 #5570 [Verbose] > │ 00:00:19 #63 [Debug] 4 │
00:02:53 #5571 [Verbose] > │ 00:00:19 #64 [Verbose] waitForPortAccess / port: 5555 / retry: 0 │
00:02:53 #5572 [Verbose] > │ 00:00:19 #65 [Debug] _4 │
00:02:53 #5573 [Verbose] > │ 00:00:19 #66 [Debug] _5 │
00:02:53 #5574 [Verbose] > │ 00:00:19 #67 [Debug] runWithTimeoutChildAsync / timeout: 60 │
00:02:53 #5575 [Verbose] > │ 00:00:19 #68 [Debug] 5 │
00:02:53 #5576 [Verbose] > │ 00:00:19 #69 [Debug] 6 │
00:02:53 #5577 [Verbose] > │ 5557 │
00:02:53 #5578 [Verbose] > │ 7 │
00:02:53 #5579 [Verbose] > │ 7 │
00:02:53 #5580 [Verbose] > │ 7 │
00:02:53 #5581 [Verbose] > │ True │
00:02:53 #5582 [Verbose] > │ │
00:02:53 #5583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:55 #5584 [Verbose] > [NbConvertApp] Converting notebook Networking.dib.ipynb to html
00:02:55 #5585 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:55 #5586 [Verbose] > validate(nb)
00:02:56 #5587 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:56 #5588 [Verbose] > return _pygments_highlight(
00:02:57 #5589 [Verbose] > [NbConvertApp] Writing 326275 bytes to Networking.dib.html
00:02:57 #5590 [Debug] executeAsync / exitCode: 0 / output.Length: 31534
00:02:57 #5591 [Debug] main / executeCommand / exitCode: 0
00:02:57 #5592 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Runtime.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:03:01 #5593 [Verbose] >
00:03:01 #5594 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:01 #5595 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:01 #5596 [Verbose] > │ # Runtime (Polyglot) │
00:03:01 #5597 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:01 #5598 [Verbose] >
00:03:01 #5599 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:01 #5600 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:03:01 #5601 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:03:01 #5602 [Verbose] >
00:03:01 #5603 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:01 #5604 [Verbose] > #r
00:03:01 #5605 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:03:01 #5606 [Verbose] > spNetCore.Html.Abstractions.dll"
00:03:01 #5607 [Verbose] > #r
00:03:01 #5608 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:01 #5609 [Verbose] > otNet.Interactive.dll"
00:03:01 #5610 [Verbose] > #r
00:03:01 #5611 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:01 #5612 [Verbose] > otNet.Interactive.FSharp.dll"
00:03:01 #5613 [Verbose] > #r
00:03:01 #5614 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:01 #5615 [Verbose] > otNet.Interactive.Formatting.dll"
00:03:01 #5616 [Verbose] > open System
00:03:01 #5617 [Verbose] > open System.IO
00:03:01 #5618 [Verbose] > open System.Text
00:03:01 #5619 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:03:05 #5620 [Verbose] >
00:03:05 #5621 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:05 #5622 [Verbose] > #r
00:03:05 #5623 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:05 #5624 [Verbose] > otNet.Interactive.FSharp.dll"
00:03:05 #5625 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:03:05 #5626 [Verbose] > #r
00:03:05 #5627 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:05 #5628 [Verbose] > otNet.Interactive.dll"
00:03:05 #5629 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:03:05 #5630 [Verbose] >
00:03:05 #5631 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:05 #5632 [Verbose] > //// test
00:03:05 #5633 [Verbose] >
00:03:05 #5634 [Verbose] > Formatter.ListExpansionLimit <- 100
00:03:06 #5635 [Verbose] >
00:03:06 #5636 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:06 #5637 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:03:06 #5638 [Verbose] >
00:03:06 #5639 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:06 #5640 [Verbose] > //// test
00:03:06 #5641 [Verbose] >
00:03:06 #5642 [Verbose] > type AssertExceptionFormatter (ex) =
00:03:06 #5643 [Verbose] > member _.Text =
00:03:06 #5644 [Verbose] > ex.ToString()
00:03:06 #5645 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:03:06 #5646 [Verbose] > .Replace("36m", "</span>")
00:03:06 #5647 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:03:06 #5648 [Verbose] > .Replace("\n", "<br/>\n")
00:03:06 #5649 [Verbose] >
00:03:06 #5650 [Verbose] >
00:03:06 #5651 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:03:06 #5652 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:03:07 #5653 [Verbose] >
00:03:07 #5654 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:07 #5655 [Verbose] > //// test
00:03:07 #5656 [Verbose] >
00:03:07 #5657 [Verbose] > let inline __expect fn log expected actual =
00:03:07 #5658 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:03:07 #5659 [Verbose] > try
00:03:07 #5660 [Verbose] > "Testing.__expect" |> fn actual expected
00:03:07 #5661 [Verbose] > with :? Expecto.AssertException as ex ->
00:03:07 #5662 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:03:07 #5663 [Verbose] > failwith (ex.GetType().FullName)
00:03:07 #5664 [Verbose] >
00:03:07 #5665 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:03:07 #5666 [Verbose] > expected actual
00:03:07 #5667 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:03:07 #5668 [Verbose] >
00:03:07 #5669 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:03:07 #5670 [Verbose] > expected actual
00:03:07 #5671 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:03:07 #5672 [Verbose] >
00:03:07 #5673 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:03:07 #5674 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:03:07 #5675 [Verbose] >
00:03:07 #5676 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:07 #5677 [Verbose] > //// test
00:03:07 #5678 [Verbose] >
00:03:07 #5679 [Verbose] > let inline __isBetween log a b actual =
00:03:07 #5680 [Verbose] > let inline isBetween actual (a, b) _ =
00:03:07 #5681 [Verbose] > __isGreaterThanOrEqual log a actual
00:03:07 #5682 [Verbose] > __isLessThanOrEqual log b actual
00:03:07 #5683 [Verbose] > __expect isBetween log (a, b) actual
00:03:07 #5684 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:03:07 #5685 [Verbose] >
00:03:07 #5686 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:07 #5687 [Verbose] > #r
00:03:07 #5688 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:03:07 #5689 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:03:07 #5690 [Verbose] > #r
00:03:07 #5691 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:03:07 #5692 [Verbose] > 0/System.Reactive.dll"
00:03:07 #5693 [Verbose] > #r
00:03:07 #5694 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:03:07 #5695 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:03:07 #5696 [Verbose] > #r
00:03:07 #5697 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:03:07 #5698 [Verbose] > #r
00:03:08 #5699 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:03:08 #5700 [Verbose] > b/net6.0/System.CommandLine.dll"
00:03:08 #5701 [Verbose] >
00:03:08 #5702 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:08 #5703 [Verbose] > #!import ../../lib/spiral/common.fsx
00:03:08 #5704 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:03:08 #5705 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:03:08 #5706 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:03:08 #5707 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:03:08 #5708 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:03:08 #5709 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs
00:03:08 #5710 [Verbose] > #!import ../../lib/fsharp/Async.fs
00:03:08 #5711 [Verbose] > #!import ../../lib/fsharp/AsyncSeq.fs
00:03:08 #5712 [Verbose] > #!import ../../lib/fsharp/Runtime.fs
00:03:08 #5713 [Verbose] > #!import ../../lib/fsharp/FileSystem.fs
00:03:08 #5714 [Verbose] >
00:03:08 #5715 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:08 #5716 [Verbose] > type [[<Struct>]] US0 =
00:03:08 #5717 [Verbose] > | US0_0
00:03:08 #5718 [Verbose] > | US0_1
00:03:08 #5719 [Verbose] > | US0_2
00:03:08 #5720 [Verbose] > | US0_3
00:03:08 #5721 [Verbose] > and [[<Struct>]] US1 =
00:03:08 #5722 [Verbose] > | US1_0 of f0_0 : US0
00:03:08 #5723 [Verbose] > | US1_1 of f1_0 : US0
00:03:08 #5724 [Verbose] > and [[<Struct>]] US2 =
00:03:08 #5725 [Verbose] > | US2_0
00:03:08 #5726 [Verbose] > | US2_1
00:03:08 #5727 [Verbose] > and [[<Struct>]] US3 =
00:03:08 #5728 [Verbose] > | US3_0 of f0_0 : US2
00:03:08 #5729 [Verbose] > | US3_1
00:03:08 #5730 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:03:08 #5731 [Verbose] > let v1 : System.IDisposable option = None
00:03:08 #5732 [Verbose] > let mutable _v1 = v1
00:03:08 #5733 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:03:08 #5734 [Verbose] > let v2 : US0 = US0_0
00:03:08 #5735 [Verbose] > let v3 : US1 = US1_0(v2)
00:03:08 #5736 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:03:08 #5737 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:03:08 #5738 [Verbose] > v5
00:03:08 #5739 [Verbose] > #endif
00:03:08 #5740 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:03:08 #5741 [Verbose] > let v6 : US0 = US0_2
00:03:08 #5742 [Verbose] > let v7 : US1 = US1_0(v6)
00:03:08 #5743 [Verbose] > let v8 : string = $"new_dispos...
00:03:09 #5744 [Verbose] >
00:03:09 #5745 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:09 #5746 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:03:09 #5747 [Verbose] > and Mut1 = {mutable l0 : int32}
00:03:09 #5748 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:03:09 #5749 [Verbose] > let v2 : bool = v1.Contains v0
00:03:09 #5750 [Verbose] > v2
00:03:09 #5751 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:03:09 #5752 [Verbose] > closure1(v0)
00:03:09 #5753 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:03:09 #5754 [Verbose] > let v2 : bool = v1.EndsWith v0
00:03:09 #5755 [Verbose] > v2
00:03:09 #5756 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:03:09 #5757 [Verbose] > closure3(v0)
00:03:09 #5758 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:03:09 #5759 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:03:09 #5760 [Verbose] > v3
00:03:09 #5761 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:03:09 #5762 [Verbose] > closure6(v0, v1)
00:03:09 #5763 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:03:09 #5764 [Verbose] > closure5(v0)
00:03:09 #5765 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:03:09 #5766 [Verbose] > let v2 : stri...
00:03:10 #5767 [Verbose] >
00:03:10 #5768 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:10 #5769 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:03:10 #5770 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:03:10 #5771 [Verbose] > let v3 : string = v2 v0
00:03:10 #5772 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:03:10 #5773 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:03:10 #5774 [Verbose] > v5
00:03:10 #5775 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:03:10 #5776 [Verbose] > closure1(v0)
00:03:10 #5777 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:03:10 #5778 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:03:10 #5779 [Verbose] > v3
00:03:10 #5780 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:03:10 #5781 [Verbose] > closure5(v0, v1)
00:03:10 #5782 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:03:10 #5783 [Verbose] > closure4(v0)
00:03:10 #5784 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:03:10 #5785 [Verbose] > closure3()
00:03:10 #5786 [Verbose] > and closure2 (...
00:03:10 #5787 [Verbose] >
00:03:10 #5788 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:10 #5789 [Verbose] > #if FABLE_COMPILER // file_system.types
00:03:10 #5790 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:03:10 #5791 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:03:10 #5792 [Verbose] > base64_DecodeError = class end
00:03:10 #5793 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:03:10 #5794 [Verbose] > = class end
00:03:10 #5795 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:03:10 #5796 [Verbose] > = class end
00:03:10 #5797 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:03:10 #5798 [Verbose] > serde_json_Error = class end
00:03:10 #5799 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:03:10 #5800 [Verbose] > serde_json_Value = class end
00:03:10 #5801 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:03:10 #5802 [Verbose] > serde_wasm_bindgen_Error = class end
00:03:10 #5803 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:03:11 #5804 [Verbose] >
00:03:11 #5805 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:11 #5806 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:03:11 #5807 [Verbose] > module SpiralDateTime =
00:03:11 #5808 [Verbose] > let format x =
00:03:11 #5809 [Verbose] > #if !INTERACTIVE
00:03:11 #5810 [Verbose] > Date_time.format x
00:03:11 #5811 [Verbose] > #else
00:03:11 #5812 [Verbose] > format x
00:03:11 #5813 [Verbose] > #endif
00:03:11 #5814 [Verbose] >
00:03:11 #5815 [Verbose] > let format_iso8601 x =
00:03:11 #5816 [Verbose] > #if !INTERACTIVE
00:03:11 #5817 [Verbose] > Date_time.format_iso8601 x
00:03:11 #5818 [Verbose] > #else
00:03:11 #5819 [Verbose] > format_iso8601 x
00:03:11 #5820 [Verbose] > #endif
00:03:11 #5821 [Verbose] >
00:03:11 #5822 [Verbose] > let new_guid_from_date_time x =
00:03:11 #5823 [Verbose] > #if !INTERACTIVE
00:03:11 #5824 [Verbose] > Date_time.new_guid_from_date_time x
00:03:11 #5825 [Verbose] > #else
00:03:11 #5826 [Verbose] > new_guid_from_date_time x
00:03:11 #5827 [Verbose] > #endif
00:03:11 #5828 [Verbose] >
00:03:11 #5829 [Verbose] > #endif
00:03:11 #5830 [Verbose] >
00:03:11 #5831 [Verbose] > module SpiralSm =
00:03:11 #5832 [Verbose] > let concat x =
00:03:11 #5833 [Verbose] > #if !INTERACTIVE
00:03:11 #5834 [Verbose] > Sm.concat x
00:03:11 #5835 [Verbose] > #else
00:03:11 #5836 [Verbose] > concat x
00:03:11 #5837 [Verbose] > #endif
00:03:11 #5838 [Verbose] >
00:03:11 #5839 [Verbose] > let contains x =
00:03:11 #5840 [Verbose] > #if !INTERACTIVE
00:03:11 #5841 [Verbose] > Sm.contains x
00:03:11 #5842 [Verbose] > #else
00:03:11 #5843 [Verbose] > contains x
00:03:11 #5844 [Verbose] > #endif
00:03:11 #5845 [Verbose] >
00:03:11 #5846 [Verbose] > let ellipsis x =
00:03:11 #5847 [Verbose] > #if !INTERACTIVE
00:03:11 #5848 [Verbose] > Sm.ellipsis x
00:03:11 #5849 [Verbose] > #else
00:03:11 #5850 [Verbose] > ellipsis x
00:03:11 #5851 [Verbose] > #endif
00:03:11 #5852 [Verbose] >
00:03:11 #5853 [Verbose] > let ellipsis_end x =
00:03:11 #5854 [Verbose] > #if...
00:03:11 #5855 [Verbose] >
00:03:11 #5856 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:11 #5857 [Verbose] > #if !INTERACTIVE
00:03:11 #5858 [Verbose] > namespace Polyglot
00:03:11 #5859 [Verbose] > #endif
00:03:11 #5860 [Verbose] >
00:03:11 #5861 [Verbose] > module Common =
00:03:11 #5862 [Verbose] >
00:03:11 #5863 [Verbose] > #if !INTERACTIVE
00:03:11 #5864 [Verbose] > open Lib
00:03:11 #5865 [Verbose] > #endif
00:03:11 #5866 [Verbose] >
00:03:11 #5867 [Verbose] > let nl = System.Environment.NewLine
00:03:11 #5868 [Verbose] > let q = @""""
00:03:11 #5869 [Verbose] >
00:03:11 #5870 [Verbose] > let inline cons head tail = head :: tail
00:03:11 #5871 [Verbose] >
00:03:11 #5872 [Verbose] > /// ## memoize
00:03:11 #5873 [Verbose] >
00:03:11 #5874 [Verbose] > let inline memoize fn =
00:03:11 #5875 [Verbose] > let result = lazy fn ()
00:03:11 #5876 [Verbose] > fun () -> result.Value
00:03:11 #5877 [Verbose] >
00:03:11 #5878 [Verbose] > /// ## TraceLevel
00:03:11 #5879 [Verbose] >
00:03:11 #5880 [Verbose] > type TraceLevel =
00:03:11 #5881 [Verbose] > | Verbose
00:03:11 #5882 [Verbose] > | Debug
00:03:11 #5883 [Verbose] > | Info
00:03:11 #5884 [Verbose] > | Warning
00:03:11 #5885 [Verbose] > | Critical
00:03:11 #5886 [Verbose] >
00:03:11 #5887 [Verbose] > let inline getLocals () = ""
00:03:11 #5888 [Verbose] >
00:03:11 #5889 [Verbose] > let mutable traceEnabled = true
00:03:11 #5890 [Verbose] > let mutable traceCount = 0
00:03:11 #5891 [Verbose] > let mutable traceLevel = Verbose
00:03:11 #5892 [Verbose] > let mutable traceDump = false
00:03:11 #5893 [Verbose] >
00:03:11 #5894 [Verbose] > let testTraceLevel level =
00:03:11 #5895 [Verbose] > traceEnabled && level >= traceLevel
00:03:11 #5896 [Verbose] >
00:03:11 #5897 [Verbose] > /// ## traceRaw
00:03:11 #5898 [Verbose] >
00:03:11 #5899 [Verbose] > let rec traceRaw level fn =
00:03:11 #5900 [Verbose] > ...
00:03:11 #5901 [Verbose] >
00:03:11 #5902 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:11 #5903 [Verbose] > #if !INTERACTIVE
00:03:11 #5904 [Verbose] > namespace Polyglot
00:03:11 #5905 [Verbose] > #endif
00:03:11 #5906 [Verbose] >
00:03:11 #5907 [Verbose] > module CommonFSharp =
00:03:11 #5908 [Verbose] >
00:03:11 #5909 [Verbose] > open Common
00:03:11 #5910 [Verbose] >
00:03:11 #5911 [Verbose] > /// ## getUnionCaseName
00:03:11 #5912 [Verbose] >
00:03:11 #5913 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:03:11 #5914 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:03:11 #5915 [Verbose] > | case, _ -> case.Name
00:03:11 #5916 [Verbose] >
00:03:11 #5917 [Verbose] >
00:03:11 #5918 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:11 #5919 [Verbose] > #if !INTERACTIVE
00:03:11 #5920 [Verbose] > namespace Polyglot
00:03:11 #5921 [Verbose] > #endif
00:03:11 #5922 [Verbose] >
00:03:11 #5923 [Verbose] > module Async =
00:03:11 #5924 [Verbose] >
00:03:11 #5925 [Verbose] > #if !INTERACTIVE
00:03:11 #5926 [Verbose] > open Lib
00:03:11 #5927 [Verbose] > #endif
00:03:11 #5928 [Verbose] >
00:03:11 #5929 [Verbose] > open Common
00:03:11 #5930 [Verbose] >
00:03:11 #5931 [Verbose] > /// ## choice
00:03:11 #5932 [Verbose] >
00:03:11 #5933 [Verbose] > let inline choice asyncs = async {
00:03:11 #5934 [Verbose] > let e = Event<_> ()
00:03:11 #5935 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:03:11 #5936 [Verbose] > let fn =
00:03:11 #5937 [Verbose] > asyncs
00:03:11 #5938 [Verbose] > |> Seq.map (fun a -> async {
00:03:11 #5939 [Verbose] > let! x = a
00:03:11 #5940 [Verbose] > e.Trigger x
00:03:11 #5941 [Verbose] > })
00:03:11 #5942 [Verbose] > |> Async.Parallel
00:03:11 #5943 [Verbose] > |> Async.Ignore
00:03:11 #5944 [Verbose] > Async.Start (fn, cts.Token)
00:03:11 #5945 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:03:11 #5946 [Verbose] > cts.Cancel ()
00:03:11 #5947 [Verbose] > return result
00:03:11 #5948 [Verbose] > }
00:03:11 #5949 [Verbose] >
00:03:11 #5950 [Verbose] > /// ## map
00:03:11 #5951 [Verbose] >
00:03:11 #5952 [Verbose] > let inline map fn a = async {
00:03:11 #5953 [Verbose] > let! x = a
00:03:11 #5954 [Verbose] > return fn x
00:03:11 #5955 [Verbose] > }
00:03:11 #5956 [Verbose] >
00:03:11 #5957 [Verbose] > /// ## catch
00:03:11 #5958 [Verbose] >
00:03:11 #5959 [Verbose] > let inline catch a =
00:03:11 #5960 [Verbose] > ...
00:03:13 #5961 [Verbose] >
00:03:13 #5962 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:13 #5963 [Verbose] > #if !INTERACTIVE
00:03:13 #5964 [Verbose] > namespace Polyglot
00:03:13 #5965 [Verbose] > #endif
00:03:13 #5966 [Verbose] >
00:03:13 #5967 [Verbose] > module AsyncSeq =
00:03:13 #5968 [Verbose] >
00:03:13 #5969 [Verbose] > #if !INTERACTIVE
00:03:13 #5970 [Verbose] > open Lib
00:03:13 #5971 [Verbose] > #endif
00:03:13 #5972 [Verbose] >
00:03:13 #5973 [Verbose] > open Common
00:03:13 #5974 [Verbose] >
00:03:13 #5975 [Verbose] > /// ## subscribeEvent
00:03:13 #5976 [Verbose] >
00:03:13 #5977 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:03:13 #5978 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:03:13 #5979 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:03:13 #5980 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:03:13 #5981 [Verbose] > event.EventArgs)
00:03:13 #5982 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:03:13 #5983 [Verbose] >
00:03:13 #5984 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:03:13 #5985 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:03:13 #5986 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:03:13 #5987 [Verbose] > let start = System.DateTime.Now.Ticks
00:03:13 #5988 [Verbose] > FSharp.Control.A...
00:03:13 #5989 [Verbose] >
00:03:13 #5990 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:13 #5991 [Verbose] > #if !INTERACTIVE
00:03:13 #5992 [Verbose] > namespace Polyglot
00:03:13 #5993 [Verbose] > #endif
00:03:13 #5994 [Verbose] >
00:03:13 #5995 [Verbose] > module Runtime =
00:03:13 #5996 [Verbose] >
00:03:13 #5997 [Verbose] > #if !INTERACTIVE
00:03:13 #5998 [Verbose] > open Lib
00:03:13 #5999 [Verbose] > #endif
00:03:13 #6000 [Verbose] >
00:03:13 #6001 [Verbose] > open Common
00:03:13 #6002 [Verbose] >
00:03:13 #6003 [Verbose] > /// ## isWindows
00:03:13 #6004 [Verbose] >
00:03:13 #6005 [Verbose] > let isWindows =
00:03:13 #6006 [Verbose] > fun () ->
00:03:13 #6007 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:03:13 #6008 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:03:13 #6009 [Verbose] > |> memoize
00:03:13 #6010 [Verbose] >
00:03:13 #6011 [Verbose] > /// ## getExecutableSuffix
00:03:13 #6012 [Verbose] >
00:03:13 #6013 [Verbose] > let inline getExecutableSuffix () =
00:03:13 #6014 [Verbose] > if isWindows ()
00:03:13 #6015 [Verbose] > then ".exe"
00:03:13 #6016 [Verbose] > else ""
00:03:13 #6017 [Verbose] >
00:03:13 #6018 [Verbose] > /// ## splitCommand
00:03:13 #6019 [Verbose] >
00:03:13 #6020 [Verbose] > type private CommandParseStep =
00:03:13 #6021 [Verbose] > | Start
00:03:13 #6022 [Verbose] > | Path of quoted: bool
00:03:13 #6023 [Verbose] > | Arguments
00:03:13 #6024 [Verbose] >
00:03:13 #6025 [Verbose] > let splitCommand (command: string) =
00:03:13 #6026 [Verbose] > let rec loop (path, args) chars step =
00:03:13 #6027 [Verbose] > match chars, step with
00:03:13 #6028 [Verbose] > | ('"' | '\'') ...
00:03:14 #6029 [Verbose] >
00:03:14 #6030 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:14 #6031 [Verbose] > #if !INTERACTIVE
00:03:14 #6032 [Verbose] > namespace Polyglot
00:03:14 #6033 [Verbose] > #endif
00:03:14 #6034 [Verbose] >
00:03:14 #6035 [Verbose] > module FileSystem =
00:03:14 #6036 [Verbose] >
00:03:14 #6037 [Verbose] > #if !INTERACTIVE
00:03:14 #6038 [Verbose] > open Lib
00:03:14 #6039 [Verbose] > #endif
00:03:14 #6040 [Verbose] >
00:03:14 #6041 [Verbose] > open Common
00:03:14 #6042 [Verbose] > open SpiralFileSystem.Operators
00:03:14 #6043 [Verbose] >
00:03:14 #6044 [Verbose] > /// ## readAllTextAsync
00:03:14 #6045 [Verbose] >
00:03:14 #6046 [Verbose] > let inline readAllTextAsync path =
00:03:14 #6047 [Verbose] > path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
00:03:14 #6048 [Verbose] >
00:03:14 #6049 [Verbose] > /// ## fileExistsContent
00:03:14 #6050 [Verbose] >
00:03:14 #6051 [Verbose] > let inline fileExistsContent path content = async {
00:03:14 #6052 [Verbose] > if path |> System.IO.File.Exists |> not
00:03:14 #6053 [Verbose] > then return false
00:03:14 #6054 [Verbose] > else
00:03:14 #6055 [Verbose] > let! existingContent = path |> readAllTextAsync
00:03:14 #6056 [Verbose] > return content = existingContent
00:03:14 #6057 [Verbose] > }
00:03:14 #6058 [Verbose] >
00:03:14 #6059 [Verbose] > /// ## writeAllTextAsync
00:03:14 #6060 [Verbose] >
00:03:14 #6061 [Verbose] > let inline writeAllTextAsync path contents =
00:03:14 #6062 [Verbose] > System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
00:03:14 #6063 [Verbose] >
00:03:14 #6064 [Verbose] > /// ## write...
00:03:17 #6065 [Verbose] >
00:03:17 #6066 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6067 [Verbose] > #if !INTERACTIVE
00:03:17 #6068 [Verbose] > open Lib
00:03:17 #6069 [Verbose] > #endif
00:03:17 #6070 [Verbose] >
00:03:17 #6071 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6072 [Verbose] > open Common
00:03:17 #6073 [Verbose] >
00:03:17 #6074 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6075 [Verbose] > //// test
00:03:17 #6076 [Verbose] >
00:03:17 #6077 [Verbose] > open SpiralFileSystem.Operators
00:03:17 #6078 [Verbose] >
00:03:17 #6079 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:17 #6080 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:17 #6081 [Verbose] > │ ## isWindows │
00:03:17 #6082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:17 #6083 [Verbose] >
00:03:17 #6084 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6085 [Verbose] > let isWindows =
00:03:17 #6086 [Verbose] > fun () ->
00:03:17 #6087 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:03:17 #6088 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:03:17 #6089 [Verbose] > |> memoize
00:03:17 #6090 [Verbose] >
00:03:17 #6091 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6092 [Verbose] > //// test
00:03:17 #6093 [Verbose] >
00:03:17 #6094 [Verbose] > isWindows ()
00:03:17 #6095 [Verbose] >
00:03:17 #6096 [Verbose] > ╭─[ 118.49ms - return value ]──────────────────────────────────────────────────╮
00:03:17 #6097 [Verbose] > │ <div class="dni-plaintext"><pre>True</pre></div><style> │
00:03:17 #6098 [Verbose] > │ .dni-code-hint { │
00:03:17 #6099 [Verbose] > │ font-style: italic; │
00:03:17 #6100 [Verbose] > │ overflow: hidden; │
00:03:17 #6101 [Verbose] > │ white-space: nowrap; │
00:03:17 #6102 [Verbose] > │ } │
00:03:17 #6103 [Verbose] > │ .dni-treeview { │
00:03:17 #6104 [Verbose] > │ white-space: nowrap; │
00:03:17 #6105 [Verbose] > │ } │
00:03:17 #6106 [Verbose] > │ .dni-treeview td { │
00:03:17 #6107 [Verbose] > │ vertical-align: top; │
00:03:17 #6108 [Verbose] > │ text-align: start; │
00:03:17 #6109 [Verbose] > │ } │
00:03:17 #6110 [Verbose] > │ details.dni-treeview { │
00:03:17 #6111 [Verbose] > │ padding-left: 1em; │
00:03:17 #6112 [Verbose] > │ } │
00:03:17 #6113 [Verbose] > │ table td { │
00:03:17 #6114 [Verbose] > │ text-align: start; │
00:03:17 #6115 [Verbose] > │ } │
00:03:17 #6116 [Verbose] > │ table tr { │
00:03:17 #6117 [Verbose] > │ vertical-align: top; │
00:03:17 #6118 [Verbose] > │ margin: 0em 0px; │
00:03:17 #6119 [Verbose] > │ } │
00:03:17 #6120 [Verbose] > │ table tr td pre │
00:03:17 #6121 [Verbose] > │ { │
00:03:17 #6122 [Verbose] > │ vertical-align: top !important; │
00:03:17 #6123 [Verbose] > │ margin: 0em 0px !important; │
00:03:17 #6124 [Verbose] > │ } │
00:03:17 #6125 [Verbose] > │ table th { │
00:03:17 #6126 [Verbose] > │ text-align: start; │
00:03:17 #6127 [Verbose] > │ } │
00:03:17 #6128 [Verbose] > │ </style> │
00:03:17 #6129 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:17 #6130 [Verbose] >
00:03:17 #6131 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:17 #6132 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:17 #6133 [Verbose] > │ ## getExecutableSuffix │
00:03:17 #6134 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:17 #6135 [Verbose] >
00:03:17 #6136 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6137 [Verbose] > let inline getExecutableSuffix () =
00:03:17 #6138 [Verbose] > if isWindows ()
00:03:17 #6139 [Verbose] > then ".exe"
00:03:17 #6140 [Verbose] > else ""
00:03:17 #6141 [Verbose] >
00:03:17 #6142 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6143 [Verbose] > //// test
00:03:17 #6144 [Verbose] >
00:03:17 #6145 [Verbose] > getExecutableSuffix ()
00:03:17 #6146 [Verbose] >
00:03:17 #6147 [Verbose] > ╭─[ 21.91ms - return value ]───────────────────────────────────────────────────╮
00:03:17 #6148 [Verbose] > │ .exe │
00:03:17 #6149 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:17 #6150 [Verbose] >
00:03:17 #6151 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:17 #6152 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:17 #6153 [Verbose] > │ ## splitCommand │
00:03:17 #6154 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:17 #6155 [Verbose] >
00:03:17 #6156 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6157 [Verbose] > type private CommandParseStep =
00:03:17 #6158 [Verbose] > | Start
00:03:17 #6159 [Verbose] > | Path of quoted: bool
00:03:17 #6160 [Verbose] > | Arguments
00:03:17 #6161 [Verbose] >
00:03:17 #6162 [Verbose] > let splitCommand (command: string) =
00:03:17 #6163 [Verbose] > let rec loop (path, args) chars step =
00:03:17 #6164 [Verbose] > match chars, step with
00:03:17 #6165 [Verbose] > | ('"' | '\'') :: tail, _ when path = "" -> loop (path, args) tail (Path
00:03:17 #6166 [Verbose] > true)
00:03:17 #6167 [Verbose] > | ('"' | '\'') :: tail, Path true -> loop (path, args) tail (Path false)
00:03:17 #6168 [Verbose] > | ' ' :: tail, Path true -> loop ($"{path} ", args) tail (Path true)
00:03:17 #6169 [Verbose] > | ' ' :: tail, (Start | Path _) -> loop (path, args) tail Arguments
00:03:17 #6170 [Verbose] > | char :: tail, Arguments -> loop (path, $"{args}{char}") tail Arguments
00:03:17 #6171 [Verbose] > | char :: tail, _ -> loop ($"{path}{char}", args) tail step
00:03:17 #6172 [Verbose] > | _, _ -> path |> SpiralSm.replace @"\" "/", args
00:03:17 #6173 [Verbose] > loop ("", "") (command |> Seq.toList) Start
00:03:17 #6174 [Verbose] >
00:03:17 #6175 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6176 [Verbose] > //// test
00:03:17 #6177 [Verbose] >
00:03:17 #6178 [Verbose] > splitCommand ""
00:03:17 #6179 [Verbose] > |> _assertEqual ("", "")
00:03:17 #6180 [Verbose] >
00:03:17 #6181 [Verbose] > splitCommand "/a/b/c"
00:03:17 #6182 [Verbose] > |> _assertEqual ("/a/b/c", "")
00:03:17 #6183 [Verbose] >
00:03:17 #6184 [Verbose] > splitCommand "cat file.txt"
00:03:17 #6185 [Verbose] > |> _assertEqual ("cat", "file.txt")
00:03:17 #6186 [Verbose] >
00:03:17 #6187 [Verbose] > splitCommand """..\..\file.exe file1.txt file2.txt"""
00:03:17 #6188 [Verbose] > |> _assertEqual ("../../file.exe", "file1.txt file2.txt")
00:03:17 #6189 [Verbose] >
00:03:17 #6190 [Verbose] > splitCommand @"c:\dir\file.exe ""file1.txt file2.txt"""
00:03:17 #6191 [Verbose] > |> _assertEqual ("c:/dir/file.exe", @"""file1.txt file2.txt""")
00:03:17 #6192 [Verbose] >
00:03:17 #6193 [Verbose] > splitCommand @"""..\..\dir name\file.exe"" ""file 1.txt"" file2.txt"
00:03:17 #6194 [Verbose] > |> _assertEqual ("../../dir name/file.exe", @"""file 1.txt"" file2.txt")
00:03:17 #6195 [Verbose] >
00:03:17 #6196 [Verbose] > splitCommand @"""..\..\file 1.exe"" -c \\""echo 1\\"""
00:03:17 #6197 [Verbose] > |> _assertEqual ("../../file 1.exe", @"-c \\""echo 1\\""")
00:03:17 #6198 [Verbose] >
00:03:17 #6199 [Verbose] > splitCommand @"..\..\file 1.exe -c \\""echo 1\\"""
00:03:17 #6200 [Verbose] > |> _assertEqual ("../../file", @"1.exe -c \\""echo 1\\""")
00:03:17 #6201 [Verbose] >
00:03:17 #6202 [Verbose] > ╭─[ 126.88ms - stdout ]────────────────────────────────────────────────────────╮
00:03:17 #6203 [Verbose] > │ ( , ) │
00:03:17 #6204 [Verbose] > │ ( /a/b/c, ) │
00:03:17 #6205 [Verbose] > │ ( cat, file.txt ) │
00:03:17 #6206 [Verbose] > │ ( ../../file.exe, file1.txt file2.txt ) │
00:03:17 #6207 [Verbose] > │ ( c:/dir/file.exe, "file1.txt file2.txt" ) │
00:03:17 #6208 [Verbose] > │ ( ../../dir name/file.exe, "file 1.txt" file2.txt ) │
00:03:17 #6209 [Verbose] > │ ( ../../file 1.exe, -c \\"echo 1\\" ) │
00:03:17 #6210 [Verbose] > │ ( ../../file, 1.exe -c \\"echo 1\\" ) │
00:03:17 #6211 [Verbose] > │ │
00:03:17 #6212 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:17 #6213 [Verbose] >
00:03:17 #6214 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:17 #6215 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:17 #6216 [Verbose] > │ ## executeAsync │
00:03:17 #6217 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:17 #6218 [Verbose] >
00:03:17 #6219 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:17 #6220 [Verbose] > type ExecutionLine =
00:03:17 #6221 [Verbose] > {
00:03:17 #6222 [Verbose] > ProcessId : int
00:03:17 #6223 [Verbose] > Line : string
00:03:17 #6224 [Verbose] > Error : bool
00:03:17 #6225 [Verbose] > }
00:03:17 #6226 [Verbose] >
00:03:17 #6227 [Verbose] > type ExecutionOptions =
00:03:17 #6228 [Verbose] > {
00:03:17 #6229 [Verbose] > Command : string
00:03:17 #6230 [Verbose] > WorkingDirectory : string option
00:03:17 #6231 [Verbose] > CancellationToken : System.Threading.CancellationToken option
00:03:17 #6232 [Verbose] > OnLine : (ExecutionLine -> Async<unit>) option
00:03:17 #6233 [Verbose] > }
00:03:17 #6234 [Verbose] >
00:03:17 #6235 [Verbose] > let inline executeWithOptionsAsync (options : ExecutionOptions) = async {
00:03:17 #6236 [Verbose] > let fileName, arguments = options.Command |> splitCommand
00:03:17 #6237 [Verbose] > let workingDirectory = options.WorkingDirectory |> Option.defaultValue ""
00:03:17 #6238 [Verbose] >
00:03:17 #6239 [Verbose] > trace Debug (fun () -> $"executeAsync / options: {options}") getLocals
00:03:17 #6240 [Verbose] >
00:03:17 #6241 [Verbose] > let startInfo = System.Diagnostics.ProcessStartInfo (
00:03:17 #6242 [Verbose] > Arguments = arguments,
00:03:17 #6243 [Verbose] > CreateNoWindow = true,
00:03:17 #6244 [Verbose] > FileName = fileName,
00:03:17 #6245 [Verbose] > RedirectStandardError = true,
00:03:17 #6246 [Verbose] > RedirectStandardOutput = true,
00:03:17 #6247 [Verbose] > StandardOutputEncoding = System.Text.Encoding.UTF8,
00:03:17 #6248 [Verbose] > UseShellExecute = false,
00:03:17 #6249 [Verbose] > WorkingDirectory = workingDirectory
00:03:17 #6250 [Verbose] > )
00:03:17 #6251 [Verbose] >
00:03:17 #6252 [Verbose] > use proc = new System.Diagnostics.Process (StartInfo = startInfo)
00:03:17 #6253 [Verbose] > let output = System.Collections.Concurrent.ConcurrentStack<string> ()
00:03:17 #6254 [Verbose] >
00:03:17 #6255 [Verbose] > let inline event error (e: System.Diagnostics.DataReceivedEventArgs) = async
00:03:17 #6256 [Verbose] > {
00:03:17 #6257 [Verbose] > if e.Data <> null then
00:03:17 #6258 [Verbose] > match options.OnLine with
00:03:17 #6259 [Verbose] > | Some onLine ->
00:03:17 #6260 [Verbose] > do!
00:03:17 #6261 [Verbose] > onLine
00:03:17 #6262 [Verbose] > {
00:03:17 #6263 [Verbose] > ProcessId = proc.Id
00:03:17 #6264 [Verbose] > Line = e.Data
00:03:17 #6265 [Verbose] > Error = error
00:03:17 #6266 [Verbose] > }
00:03:17 #6267 [Verbose] > | None -> ()
00:03:17 #6268 [Verbose] >
00:03:17 #6269 [Verbose] > trace
00:03:17 #6270 [Verbose] > Verbose
00:03:17 #6271 [Verbose] > (fun () -> $"> {e.Data}")
00:03:17 #6272 [Verbose] > Common.getLocals
00:03:17 #6273 [Verbose] >
00:03:17 #6274 [Verbose] > output.Push
00:03:17 #6275 [Verbose] > $"{
00:03:17 #6276 [Verbose] > if error then '[['.ToString() else System.String.Empty
00:03:17 #6277 [Verbose] > }{
00:03:17 #6278 [Verbose] > e.Data
00:03:17 #6279 [Verbose] > }{
00:03:17 #6280 [Verbose] > if error then ']]'.ToString() else System.String.Empty
00:03:17 #6281 [Verbose] > }"
00:03:17 #6282 [Verbose] > }
00:03:17 #6283 [Verbose] >
00:03:17 #6284 [Verbose] > proc.OutputDataReceived.Add (event false >> Async.StartImmediate)
00:03:17 #6285 [Verbose] > proc.ErrorDataReceived.Add (event true >> Async.StartImmediate)
00:03:17 #6286 [Verbose] >
00:03:17 #6287 [Verbose] > if proc.Start () |> not
00:03:17 #6288 [Verbose] > then failwith $"executeAsync / proc.Start () error"
00:03:17 #6289 [Verbose] >
00:03:17 #6290 [Verbose] > proc.BeginErrorReadLine ()
00:03:17 #6291 [Verbose] > proc.BeginOutputReadLine ()
00:03:17 #6292 [Verbose] >
00:03:17 #6293 [Verbose] > let! ct =
00:03:17 #6294 [Verbose] > options.CancellationToken
00:03:17 #6295 [Verbose] > |> Option.defaultValue System.Threading.CancellationToken.None
00:03:17 #6296 [Verbose] > |> Async.mergeCancellationTokenWithDefaultAsync
00:03:17 #6297 [Verbose] >
00:03:17 #6298 [Verbose] > use reg = ct.Register (fun _ ->
00:03:17 #6299 [Verbose] > if not proc.HasExited then proc.Kill ()
00:03:17 #6300 [Verbose] > )
00:03:17 #6301 [Verbose] >
00:03:17 #6302 [Verbose] > let! exitCode = async {
00:03:17 #6303 [Verbose] > try
00:03:17 #6304 [Verbose] > do! proc.WaitForExitAsync ct |> Async.AwaitTask
00:03:17 #6305 [Verbose] > return proc.ExitCode
00:03:17 #6306 [Verbose] > with :? System.Threading.Tasks.TaskCanceledException as ex ->
00:03:17 #6307 [Verbose] > trace Warning (fun () -> $"executeAsync / WaitForExitAsync / ex: {ex
00:03:17 #6308 [Verbose] > |> SpiralSm.format_exception}") getLocals
00:03:17 #6309 [Verbose] > ex |> SpiralSm.format_exception |> output.Push
00:03:17 #6310 [Verbose] > return System.Int32.MinValue
00:03:17 #6311 [Verbose] > }
00:03:17 #6312 [Verbose] >
00:03:17 #6313 [Verbose] > let output = output |> Seq.rev |> SpiralSm.concat "\n"
00:03:17 #6314 [Verbose] >
00:03:17 #6315 [Verbose] > trace Debug (fun () ->
00:03:17 #6316 [Verbose] > $"executeAsync / exitCode: {exitCode} / output.Length: {output.Length}"
00:03:17 #6317 [Verbose] > ) getLocals
00:03:17 #6318 [Verbose] >
00:03:17 #6319 [Verbose] > return exitCode, output
00:03:17 #6320 [Verbose] > }
00:03:17 #6321 [Verbose] >
00:03:17 #6322 [Verbose] > let inline executeAsync command =
00:03:17 #6323 [Verbose] > executeWithOptionsAsync
00:03:17 #6324 [Verbose] > {
00:03:17 #6325 [Verbose] > Command = command
00:03:17 #6326 [Verbose] > CancellationToken = None
00:03:17 #6327 [Verbose] > OnLine = None
00:03:17 #6328 [Verbose] > WorkingDirectory = None
00:03:17 #6329 [Verbose] > }
00:03:18 #6330 [Verbose] >
00:03:18 #6331 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:18 #6332 [Verbose] > //// test
00:03:18 #6333 [Verbose] >
00:03:18 #6334 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()
00:03:18 #6335 [Verbose] > let fileName = "test.txt"
00:03:18 #6336 [Verbose] > let path = tempFolder </> fileName
00:03:18 #6337 [Verbose] >
00:03:18 #6338 [Verbose] > async {
00:03:18 #6339 [Verbose] > let! exitCode, result = executeAsync @$"pwsh -c ""Get-Content {path}"""
00:03:18 #6340 [Verbose] > exitCode |> _assertEqual 1
00:03:18 #6341 [Verbose] > result |> _stringContains "not exist"
00:03:18 #6342 [Verbose] >
00:03:18 #6343 [Verbose] > do! "0" |> FileSystem.writeAllTextAsync path
00:03:18 #6344 [Verbose] >
00:03:18 #6345 [Verbose] > return!
00:03:18 #6346 [Verbose] > executeWithOptionsAsync
00:03:18 #6347 [Verbose] > {
00:03:18 #6348 [Verbose] > Command = @$"pwsh -c ""Get-Content {fileName}"""
00:03:18 #6349 [Verbose] > CancellationToken = None
00:03:18 #6350 [Verbose] > OnLine = None
00:03:18 #6351 [Verbose] > WorkingDirectory = Some tempFolder
00:03:18 #6352 [Verbose] > }
00:03:18 #6353 [Verbose] >
00:03:18 #6354 [Verbose] > }
00:03:18 #6355 [Verbose] > |> Async.runWithTimeout 10000
00:03:18 #6356 [Verbose] > |> function
00:03:18 #6357 [Verbose] > | Some (exitCode, output) ->
00:03:18 #6358 [Verbose] > exitCode |> _assertEqual 0
00:03:18 #6359 [Verbose] > output |> _assertEqual "0"
00:03:18 #6360 [Verbose] > true
00:03:18 #6361 [Verbose] > | _ -> false
00:03:18 #6362 [Verbose] > |> _assertEqual true
00:03:21 #6363 [Verbose] >
00:03:21 #6364 [Verbose] > ╭─[ 2.88s - stdout ]───────────────────────────────────────────────────────────╮
00:03:21 #6365 [Verbose] > │ 00:00:00 #1 [Debug] executeAsync / options: { Command = │
00:03:21 #6366 [Verbose] > │ "pwsh -c "Get-Content │
00:03:21 #6367 [Verbose] > │ C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f7 │
00:03:21 #6368 [Verbose] > │ cb59ba4\test.txt"" │
00:03:21 #6369 [Verbose] > │ WorkingDirectory = None │
00:03:21 #6370 [Verbose] > │ CancellationToken = None │
00:03:21 #6371 [Verbose] > │ OnLine = None } │
00:03:21 #6372 [Verbose] > │ 00:00:00 #2 [Verbose] > Get-Content: Cannot find path │
00:03:21 #6373 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f │
00:03:21 #6374 [Verbose] > │ 7cb59ba4\test.txt' because it does not exist. │
00:03:21 #6375 [Verbose] > │ 00:00:00 #3 [Debug] executeAsync / exitCode: 1 / output.Length: 171 │
00:03:21 #6376 [Verbose] > │ 1 │
00:03:21 #6377 [Verbose] > │ [Get-Content: Cannot find path │
00:03:21 #6378 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f │
00:03:21 #6379 [Verbose] > │ 7cb59ba4\test.txt' because it does not exist.] │
00:03:21 #6380 [Verbose] > │ 00:00:00 #4 [Debug] executeAsync / options: { Command = "pwsh -c │
00:03:21 #6381 [Verbose] > │ "Get-Content test.txt"" │
00:03:21 #6382 [Verbose] > │ WorkingDirectory = │
00:03:21 #6383 [Verbose] > │ Some │
00:03:21 #6384 [Verbose] > │ │
00:03:21 #6385 [Verbose] > │ "C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f │
00:03:21 #6386 [Verbose] > │ 7cb59ba4" │
00:03:21 #6387 [Verbose] > │ CancellationToken = None │
00:03:21 #6388 [Verbose] > │ OnLine = None } │
00:03:21 #6389 [Verbose] > │ 00:00:01 #5 [Verbose] > 0 │
00:03:21 #6390 [Verbose] > │ 00:00:02 #6 [Debug] executeAsync / exitCode: 0 / output.Length: 1 │
00:03:21 #6391 [Verbose] > │ 0 │
00:03:21 #6392 [Verbose] > │ 0 │
00:03:21 #6393 [Verbose] > │ True │
00:03:21 #6394 [Verbose] > │ │
00:03:21 #6395 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6396 [Verbose] >
00:03:21 #6397 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:21 #6398 [Verbose] > //// test
00:03:21 #6399 [Verbose] >
00:03:21 #6400 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()
00:03:21 #6401 [Verbose] > let path = tempFolder </> "test.txt"
00:03:21 #6402 [Verbose] >
00:03:21 #6403 [Verbose] > let command = @$"pwsh -c ""Get-Content {path}"""
00:03:21 #6404 [Verbose] >
00:03:21 #6405 [Verbose] > async {
00:03:21 #6406 [Verbose] > do! "0" |> FileSystem.writeAllTextAsync path
00:03:21 #6407 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()
00:03:21 #6408 [Verbose] > trace Debug (fun () -> "1") getLocals
00:03:21 #6409 [Verbose] > let! result =
00:03:21 #6410 [Verbose] > executeWithOptionsAsync
00:03:21 #6411 [Verbose] > {
00:03:21 #6412 [Verbose] > Command = command
00:03:21 #6413 [Verbose] > CancellationToken = Some cts.Token
00:03:21 #6414 [Verbose] > OnLine = None
00:03:21 #6415 [Verbose] > WorkingDirectory = None
00:03:21 #6416 [Verbose] > }
00:03:21 #6417 [Verbose] > |> Async.StartChild
00:03:21 #6418 [Verbose] > trace Debug (fun () -> "2") getLocals
00:03:21 #6419 [Verbose] > do! Async.Sleep 100
00:03:21 #6420 [Verbose] > trace Debug (fun () -> "3") getLocals
00:03:21 #6421 [Verbose] > cts.Cancel ()
00:03:21 #6422 [Verbose] > trace Debug (fun () -> "4") getLocals
00:03:21 #6423 [Verbose] > let! exitCode, output = result
00:03:21 #6424 [Verbose] > trace Debug (fun () -> "5") getLocals
00:03:21 #6425 [Verbose] > return exitCode, output
00:03:21 #6426 [Verbose] > }
00:03:21 #6427 [Verbose] > |> Async.runWithTimeout 10000
00:03:21 #6428 [Verbose] > |> function
00:03:21 #6429 [Verbose] > | Some (exitCode, output) ->
00:03:21 #6430 [Verbose] > exitCode |> _assertEqual -2147483648
00:03:21 #6431 [Verbose] > output |> _assertEqual "System.Threading.Tasks.TaskCanceledException: A
00:03:21 #6432 [Verbose] > task was canceled."
00:03:21 #6433 [Verbose] >
00:03:21 #6434 [Verbose] > true
00:03:21 #6435 [Verbose] > | _ -> false
00:03:21 #6436 [Verbose] > |> _assertEqual true
00:03:22 #6437 [Verbose] >
00:03:22 #6438 [Verbose] > ╭─[ 1.04s - stdout ]───────────────────────────────────────────────────────────╮
00:03:22 #6439 [Verbose] > │ 00:00:03 #7 [Debug] 1 │
00:03:22 #6440 [Verbose] > │ 00:00:03 #9 [Debug] 2 │
00:03:22 #6441 [Verbose] > │ 00:00:03 #8 [Debug] executeAsync / options: { Command = │
00:03:22 #6442 [Verbose] > │ "pwsh -c "Get-Content │
00:03:22 #6443 [Verbose] > │ C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-4079-7958-769be │
00:03:22 #6444 [Verbose] > │ 14e63ff\test.txt"" │
00:03:22 #6445 [Verbose] > │ WorkingDirectory = None │
00:03:22 #6446 [Verbose] > │ CancellationToken = Some System.Threading.CancellationToken │
00:03:22 #6447 [Verbose] > │ OnLine = None } │
00:03:22 #6448 [Verbose] > │ 00:00:03 #10 [Debug] 3 │
00:03:22 #6449 [Verbose] > │ 00:00:03 #11 [Debug] 4 │
00:03:22 #6450 [Verbose] > │ 00:00:03 #12 [Warning] executeAsync / WaitForExitAsync / ex: │
00:03:22 #6451 [Verbose] > │ System.Threading.Tasks.TaskCanceledException: A task was canceled. │
00:03:22 #6452 [Verbose] > │ 00:00:03 #13 [Debug] executeAsync / exitCode: -2147483648 / output.Length: │
00:03:22 #6453 [Verbose] > │ 66 │
00:03:22 #6454 [Verbose] > │ 00:00:03 #14 [Debug] 5 │
00:03:22 #6455 [Verbose] > │ -2147483648 │
00:03:22 #6456 [Verbose] > │ System.Threading.Tasks.TaskCanceledException: A task was canceled. │
00:03:22 #6457 [Verbose] > │ True │
00:03:22 #6458 [Verbose] > │ │
00:03:22 #6459 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6460 [Verbose] >
00:03:22 #6461 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:22 #6462 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:22 #6463 [Verbose] > │ ## splitArgs │
00:03:22 #6464 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6465 [Verbose] >
00:03:22 #6466 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:22 #6467 [Verbose] > let inline splitArgs commandLine =
00:03:22 #6468 [Verbose] > commandLine
00:03:22 #6469 [Verbose] > |> System.CommandLine.Parsing.CommandLineStringSplitter.Instance.Split
00:03:22 #6470 [Verbose] >
00:03:22 #6471 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:22 #6472 [Verbose] > //// test
00:03:22 #6473 [Verbose] >
00:03:22 #6474 [Verbose] > """a b "c d" e"""
00:03:22 #6475 [Verbose] > |> splitArgs
00:03:22 #6476 [Verbose] > |> Seq.toArray
00:03:22 #6477 [Verbose] > |> _assertEqual [[| "a"; "b"; "c d"; "e" |]]
00:03:22 #6478 [Verbose] >
00:03:22 #6479 [Verbose] > ╭─[ 44.77ms - stdout ]─────────────────────────────────────────────────────────╮
00:03:22 #6480 [Verbose] > │ [ a, b, c d, e ] │
00:03:22 #6481 [Verbose] > │ │
00:03:22 #6482 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6483 [Verbose] >
00:03:22 #6484 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:22 #6485 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:22 #6486 [Verbose] > │ ## parseArgs │
00:03:22 #6487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6488 [Verbose] >
00:03:22 #6489 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:22 #6490 [Verbose] > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args =
00:03:22 #6491 [Verbose] > let assemblyName =
00:03:22 #6492 [Verbose] > System.Reflection.Assembly.GetEntryAssembly().GetName().Name
00:03:22 #6493 [Verbose] > let errorHandler : Argu.IExiter =
00:03:22 #6494 [Verbose] > if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |>
00:03:22 #6495 [Verbose] > List.contains assemblyName
00:03:22 #6496 [Verbose] > then Argu.ExceptionExiter ()
00:03:22 #6497 [Verbose] > else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ ->
00:03:22 #6498 [Verbose] > Some System.ConsoleColor.Red)
00:03:22 #6499 [Verbose] >
00:03:22 #6500 [Verbose] > let parser =
00:03:22 #6501 [Verbose] > Argu.ArgumentParser.Create<'T> (
00:03:22 #6502 [Verbose] > programName = $"{assemblyName}{getExecutableSuffix ()}",
00:03:22 #6503 [Verbose] > errorHandler = errorHandler
00:03:22 #6504 [Verbose] > )
00:03:22 #6505 [Verbose] >
00:03:22 #6506 [Verbose] > parser.ParseCommandLine args
00:03:22 #6507 [Verbose] >
00:03:22 #6508 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:22 #6509 [Verbose] > //// test
00:03:22 #6510 [Verbose] >
00:03:22 #6511 [Verbose] > [[<RequireQualifiedAccess>]]
00:03:22 #6512 [Verbose] > type Arguments =
00:03:22 #6513 [Verbose] > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;
00:03:22 #6514 [Verbose] > Argu.ArguAttributes.Last>]]
00:03:22 #6515 [Verbose] > Paths of paths : string list
00:03:22 #6516 [Verbose] >
00:03:22 #6517 [Verbose] > interface Argu.IArgParserTemplate with
00:03:22 #6518 [Verbose] > member s.Usage =
00:03:22 #6519 [Verbose] > match s with
00:03:22 #6520 [Verbose] > | Paths _ -> nameof Paths
00:03:22 #6521 [Verbose] >
00:03:22 #6522 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:22 #6523 [Verbose] > //// test
00:03:22 #6524 [Verbose] >
00:03:22 #6525 [Verbose] > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
00:03:23 #6526 [Verbose] >
00:03:23 #6527 [Verbose] > ╭─[ 153.83ms - return value ]──────────────────────────────────────────────────╮
00:03:23 #6528 [Verbose] > │ USAGE: dotnet-repl [--help] <paths>... │
00:03:23 #6529 [Verbose] > │ │
00:03:23 #6530 [Verbose] > │ PATHS: │
00:03:23 #6531 [Verbose] > │ │
00:03:23 #6532 [Verbose] > │ <paths>... Paths │
00:03:23 #6533 [Verbose] > │ │
00:03:23 #6534 [Verbose] > │ OPTIONS: │
00:03:23 #6535 [Verbose] > │ │
00:03:23 #6536 [Verbose] > │ --help display this list of options. │
00:03:23 #6537 [Verbose] > │ │
00:03:23 #6538 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6539 [Verbose] >
00:03:23 #6540 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:23 #6541 [Verbose] > //// test
00:03:23 #6542 [Verbose] >
00:03:23 #6543 [Verbose] > fun () -> parseArgs<Arguments> [[||]] |> ignore
00:03:23 #6544 [Verbose] > |> _throwsC (fun ex _ ->
00:03:23 #6545 [Verbose] > SpiralSm.format_exception ex
00:03:23 #6546 [Verbose] > |> _stringContains "Argu.ArguParseException: ERROR: missing parameter
00:03:23 #6547 [Verbose] > '<paths>...'."
00:03:23 #6548 [Verbose] > )
00:03:23 #6549 [Verbose] >
00:03:23 #6550 [Verbose] > ╭─[ 114.62ms - stdout ]────────────────────────────────────────────────────────╮
00:03:23 #6551 [Verbose] > │ FSI_0035+it@3-216 │
00:03:23 #6552 [Verbose] > │ Argu.ArguParseException: ERROR: missing parameter '<paths>...'. │
00:03:23 #6553 [Verbose] > │ USAGE: dotnet-repl.exe [--help] <paths>... │
00:03:23 #6554 [Verbose] > │ │
00:03:23 #6555 [Verbose] > │ PATHS: │
00:03:23 #6556 [Verbose] > │ │
00:03:23 #6557 [Verbose] > │ <paths>... Paths │
00:03:23 #6558 [Verbose] > │ │
00:03:23 #6559 [Verbose] > │ OPTIONS: │
00:03:23 #6560 [Verbose] > │ │
00:03:23 #6561 [Verbose] > │ --help display this list of options. │
00:03:23 #6562 [Verbose] > │ │
00:03:23 #6563 [Verbose] > │ │
00:03:23 #6564 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6565 [Verbose] >
00:03:23 #6566 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:23 #6567 [Verbose] > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args =
00:03:23 #6568 [Verbose] > args
00:03:23 #6569 [Verbose] > |> parseArgs<'T>
00:03:23 #6570 [Verbose] > |> fun results -> results.GetAllResults ()
00:03:23 #6571 [Verbose] >
00:03:23 #6572 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:23 #6573 [Verbose] > //// test
00:03:23 #6574 [Verbose] >
00:03:23 #6575 [Verbose] > [[<RequireQualifiedAccess>]]
00:03:23 #6576 [Verbose] > type Arguments =
00:03:23 #6577 [Verbose] > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;
00:03:23 #6578 [Verbose] > Argu.ArguAttributes.Last>]]
00:03:23 #6579 [Verbose] > Paths of paths : string list
00:03:23 #6580 [Verbose] >
00:03:23 #6581 [Verbose] > interface Argu.IArgParserTemplate with
00:03:23 #6582 [Verbose] > member s.Usage =
00:03:23 #6583 [Verbose] > match s with
00:03:23 #6584 [Verbose] > | Paths _ -> nameof Paths
00:03:23 #6585 [Verbose] >
00:03:23 #6586 [Verbose] > parseAllArgs<Arguments> [[| "a b"; "c" |]]
00:03:23 #6587 [Verbose] > |> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]]
00:03:23 #6588 [Verbose] >
00:03:23 #6589 [Verbose] > ╭─[ 199.13ms - stdout ]────────────────────────────────────────────────────────╮
00:03:23 #6590 [Verbose] > │ FSharpList<Arguments> │
00:03:23 #6591 [Verbose] > │ - paths: [ a b, c ] │
00:03:23 #6592 [Verbose] > │ │
00:03:23 #6593 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6594 [Verbose] >
00:03:23 #6595 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:23 #6596 [Verbose] > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args =
00:03:23 #6597 [Verbose] > args
00:03:23 #6598 [Verbose] > |> parseAllArgs<'T>
00:03:23 #6599 [Verbose] > |> List.groupBy CommonFSharp.getUnionCaseName<'T>
00:03:23 #6600 [Verbose] > |> Map.ofList
00:03:23 #6601 [Verbose] >
00:03:23 #6602 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:23 #6603 [Verbose] > //// test
00:03:23 #6604 [Verbose] >
00:03:23 #6605 [Verbose] > parseArgsMap<Arguments> [[| "a b"; "c" |]]
00:03:23 #6606 [Verbose] > |> _assertEqual (
00:03:23 #6607 [Verbose] > [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]]
00:03:23 #6608 [Verbose] > |> Map.ofList
00:03:23 #6609 [Verbose] > )
00:03:23 #6610 [Verbose] >
00:03:23 #6611 [Verbose] > ╭─[ 113.49ms - stdout ]────────────────────────────────────────────────────────╮
00:03:23 #6612 [Verbose] > │ FSharpMap<String,FSharpList<Arguments>> │
00:03:23 #6613 [Verbose] > │ - Key: Paths │
00:03:23 #6614 [Verbose] > │ Value: FSharpList<Arguments> │
00:03:23 #6615 [Verbose] > │ - paths: [ a b, c ] │
00:03:23 #6616 [Verbose] > │ │
00:03:23 #6617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6618 [Verbose] > [NbConvertApp] Converting notebook Runtime.dib.ipynb to html
00:03:26 #6619 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:26 #6620 [Verbose] > validate(nb)
00:03:27 #6621 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:27 #6622 [Verbose] > return _pygments_highlight(
00:03:27 #6623 [Verbose] > [NbConvertApp] Writing 341052 bytes to Runtime.dib.html
00:03:28 #6624 [Debug] executeAsync / exitCode: 0 / output.Length: 39318
00:03:28 #6625 [Debug] main / executeCommand / exitCode: 0
00:03:28 #6626 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Toml.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:03:32 #6627 [Verbose] >
00:03:32 #6628 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:32 #6629 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:32 #6630 [Verbose] > │ # Toml (Polyglot) │
00:03:32 #6631 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #6632 [Verbose] >
00:03:32 #6633 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:32 #6634 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib
00:03:32 #6635 [Verbose] > #!import ../../lib/fsharp/Testing.dib
00:03:32 #6636 [Verbose] >
00:03:32 #6637 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:32 #6638 [Verbose] > #r
00:03:32 #6639 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:03:32 #6640 [Verbose] > spNetCore.Html.Abstractions.dll"
00:03:32 #6641 [Verbose] > #r
00:03:32 #6642 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:32 #6643 [Verbose] > otNet.Interactive.dll"
00:03:32 #6644 [Verbose] > #r
00:03:32 #6645 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:32 #6646 [Verbose] > otNet.Interactive.FSharp.dll"
00:03:32 #6647 [Verbose] > #r
00:03:32 #6648 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:32 #6649 [Verbose] > otNet.Interactive.Formatting.dll"
00:03:32 #6650 [Verbose] > open System
00:03:32 #6651 [Verbose] > open System.IO
00:03:32 #6652 [Verbose] > open System.Text
00:03:32 #6653 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:03:37 #6654 [Verbose] >
00:03:37 #6655 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:37 #6656 [Verbose] > #r
00:03:37 #6657 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:37 #6658 [Verbose] > otNet.Interactive.FSharp.dll"
00:03:37 #6659 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:03:37 #6660 [Verbose] > #r
00:03:37 #6661 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:03:37 #6662 [Verbose] > otNet.Interactive.dll"
00:03:37 #6663 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:03:37 #6664 [Verbose] >
00:03:37 #6665 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:37 #6666 [Verbose] > //// test
00:03:37 #6667 [Verbose] >
00:03:37 #6668 [Verbose] > Formatter.ListExpansionLimit <- 100
00:03:38 #6669 [Verbose] >
00:03:38 #6670 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:38 #6671 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
00:03:38 #6672 [Verbose] >
00:03:38 #6673 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:38 #6674 [Verbose] > //// test
00:03:38 #6675 [Verbose] >
00:03:38 #6676 [Verbose] > type AssertExceptionFormatter (ex) =
00:03:38 #6677 [Verbose] > member _.Text =
00:03:38 #6678 [Verbose] > ex.ToString()
00:03:38 #6679 [Verbose] > .Replace("32m", "<span style=\"color: green;\">")
00:03:38 #6680 [Verbose] > .Replace("36m", "</span>")
00:03:38 #6681 [Verbose] > .Replace("31m", "<span style=\"color: red;\">")
00:03:38 #6682 [Verbose] > .Replace("\n", "<br/>\n")
00:03:38 #6683 [Verbose] >
00:03:38 #6684 [Verbose] >
00:03:38 #6685 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :
00:03:38 #6686 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")
00:03:39 #6687 [Verbose] >
00:03:39 #6688 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:39 #6689 [Verbose] > //// test
00:03:39 #6690 [Verbose] >
00:03:39 #6691 [Verbose] > let inline __expect fn log expected actual =
00:03:39 #6692 [Verbose] > if log then printfn $"{actual.ToDisplayString ()}"
00:03:39 #6693 [Verbose] > try
00:03:39 #6694 [Verbose] > "Testing.__expect" |> fn actual expected
00:03:39 #6695 [Verbose] > with :? Expecto.AssertException as ex ->
00:03:39 #6696 [Verbose] > AssertExceptionFormatter(ex).Display () |> ignore
00:03:39 #6697 [Verbose] > failwith (ex.GetType().FullName)
00:03:39 #6698 [Verbose] >
00:03:39 #6699 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log
00:03:39 #6700 [Verbose] > expected actual
00:03:39 #6701 [Verbose] > let inline _contains expected actual = __contains true expected actual
00:03:39 #6702 [Verbose] >
00:03:39 #6703 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
00:03:39 #6704 [Verbose] > expected actual
00:03:39 #6705 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual
00:03:39 #6706 [Verbose] >
00:03:39 #6707 [Verbose] > let inline __isGreaterThan log expected actual = __expect
00:03:39 #6708 [Verbose] > Expecto.Expect.isGreaterThan log ex...
00:03:39 #6709 [Verbose] >
00:03:39 #6710 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:39 #6711 [Verbose] > //// test
00:03:39 #6712 [Verbose] >
00:03:39 #6713 [Verbose] > let inline __isBetween log a b actual =
00:03:39 #6714 [Verbose] > let inline isBetween actual (a, b) _ =
00:03:39 #6715 [Verbose] > __isGreaterThanOrEqual log a actual
00:03:39 #6716 [Verbose] > __isLessThanOrEqual log b actual
00:03:39 #6717 [Verbose] > __expect isBetween log (a, b) actual
00:03:39 #6718 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual
00:03:40 #6719 [Verbose] >
00:03:40 #6720 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:40 #6721 [Verbose] > #r @"../../../../../../../.nuget/packages/tomlyn/0.17.0/lib/net7.0/Tomlyn.dll"
00:03:40 #6722 [Verbose] >
00:03:40 #6723 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:40 #6724 [Verbose] > #!import ../../lib/spiral/common.fsx
00:03:40 #6725 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:03:40 #6726 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:03:40 #6727 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:03:40 #6728 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:03:40 #6729 [Verbose] > #!import ../../lib/fsharp/Common.fs
00:03:40 #6730 [Verbose] >
00:03:40 #6731 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:40 #6732 [Verbose] > type [[<Struct>]] US0 =
00:03:40 #6733 [Verbose] > | US0_0
00:03:40 #6734 [Verbose] > | US0_1
00:03:40 #6735 [Verbose] > | US0_2
00:03:40 #6736 [Verbose] > | US0_3
00:03:40 #6737 [Verbose] > and [[<Struct>]] US1 =
00:03:40 #6738 [Verbose] > | US1_0 of f0_0 : US0
00:03:40 #6739 [Verbose] > | US1_1 of f1_0 : US0
00:03:40 #6740 [Verbose] > and [[<Struct>]] US2 =
00:03:40 #6741 [Verbose] > | US2_0
00:03:40 #6742 [Verbose] > | US2_1
00:03:40 #6743 [Verbose] > and [[<Struct>]] US3 =
00:03:40 #6744 [Verbose] > | US3_0 of f0_0 : US2
00:03:40 #6745 [Verbose] > | US3_1
00:03:40 #6746 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:03:40 #6747 [Verbose] > let v1 : System.IDisposable option = None
00:03:40 #6748 [Verbose] > let mutable _v1 = v1
00:03:40 #6749 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:03:40 #6750 [Verbose] > let v2 : US0 = US0_0
00:03:40 #6751 [Verbose] > let v3 : US1 = US1_0(v2)
00:03:40 #6752 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:03:40 #6753 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:03:40 #6754 [Verbose] > v5
00:03:40 #6755 [Verbose] > #endif
00:03:40 #6756 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:03:40 #6757 [Verbose] > let v6 : US0 = US0_2
00:03:40 #6758 [Verbose] > let v7 : US1 = US1_0(v6)
00:03:40 #6759 [Verbose] > let v8 : string = $"new_dispos...
00:03:40 #6760 [Verbose] >
00:03:40 #6761 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:40 #6762 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:03:40 #6763 [Verbose] > and Mut1 = {mutable l0 : int32}
00:03:40 #6764 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:03:40 #6765 [Verbose] > let v2 : bool = v1.Contains v0
00:03:40 #6766 [Verbose] > v2
00:03:40 #6767 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:03:40 #6768 [Verbose] > closure1(v0)
00:03:40 #6769 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:03:40 #6770 [Verbose] > let v2 : bool = v1.EndsWith v0
00:03:40 #6771 [Verbose] > v2
00:03:40 #6772 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:03:40 #6773 [Verbose] > closure3(v0)
00:03:40 #6774 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:03:40 #6775 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:03:40 #6776 [Verbose] > v3
00:03:40 #6777 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:03:40 #6778 [Verbose] > closure6(v0, v1)
00:03:40 #6779 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:03:40 #6780 [Verbose] > closure5(v0)
00:03:40 #6781 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:03:40 #6782 [Verbose] > let v2 : stri...
00:03:41 #6783 [Verbose] >
00:03:41 #6784 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:41 #6785 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:03:41 #6786 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:03:41 #6787 [Verbose] > let v3 : string = v2 v0
00:03:41 #6788 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:03:41 #6789 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:03:41 #6790 [Verbose] > v5
00:03:41 #6791 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:03:41 #6792 [Verbose] > closure1(v0)
00:03:41 #6793 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:03:41 #6794 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:03:41 #6795 [Verbose] > v3
00:03:41 #6796 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:03:41 #6797 [Verbose] > closure5(v0, v1)
00:03:41 #6798 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:03:41 #6799 [Verbose] > closure4(v0)
00:03:41 #6800 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:03:41 #6801 [Verbose] > closure3()
00:03:41 #6802 [Verbose] > and closure2 (...
00:03:41 #6803 [Verbose] >
00:03:41 #6804 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:41 #6805 [Verbose] > #if FABLE_COMPILER // file_system.types
00:03:41 #6806 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:03:41 #6807 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:03:41 #6808 [Verbose] > base64_DecodeError = class end
00:03:41 #6809 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:03:41 #6810 [Verbose] > = class end
00:03:41 #6811 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:03:41 #6812 [Verbose] > = class end
00:03:41 #6813 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:03:41 #6814 [Verbose] > serde_json_Error = class end
00:03:41 #6815 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:03:41 #6816 [Verbose] > serde_json_Value = class end
00:03:41 #6817 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:03:41 #6818 [Verbose] > serde_wasm_bindgen_Error = class end
00:03:41 #6819 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:03:41 #6820 [Verbose] >
00:03:41 #6821 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:41 #6822 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:03:41 #6823 [Verbose] > module SpiralDateTime =
00:03:41 #6824 [Verbose] > let format x =
00:03:41 #6825 [Verbose] > #if !INTERACTIVE
00:03:41 #6826 [Verbose] > Date_time.format x
00:03:41 #6827 [Verbose] > #else
00:03:41 #6828 [Verbose] > format x
00:03:41 #6829 [Verbose] > #endif
00:03:41 #6830 [Verbose] >
00:03:41 #6831 [Verbose] > let format_iso8601 x =
00:03:41 #6832 [Verbose] > #if !INTERACTIVE
00:03:41 #6833 [Verbose] > Date_time.format_iso8601 x
00:03:41 #6834 [Verbose] > #else
00:03:41 #6835 [Verbose] > format_iso8601 x
00:03:41 #6836 [Verbose] > #endif
00:03:41 #6837 [Verbose] >
00:03:41 #6838 [Verbose] > let new_guid_from_date_time x =
00:03:41 #6839 [Verbose] > #if !INTERACTIVE
00:03:41 #6840 [Verbose] > Date_time.new_guid_from_date_time x
00:03:41 #6841 [Verbose] > #else
00:03:41 #6842 [Verbose] > new_guid_from_date_time x
00:03:41 #6843 [Verbose] > #endif
00:03:41 #6844 [Verbose] >
00:03:41 #6845 [Verbose] > #endif
00:03:41 #6846 [Verbose] >
00:03:41 #6847 [Verbose] > module SpiralSm =
00:03:41 #6848 [Verbose] > let concat x =
00:03:41 #6849 [Verbose] > #if !INTERACTIVE
00:03:41 #6850 [Verbose] > Sm.concat x
00:03:41 #6851 [Verbose] > #else
00:03:41 #6852 [Verbose] > concat x
00:03:41 #6853 [Verbose] > #endif
00:03:41 #6854 [Verbose] >
00:03:41 #6855 [Verbose] > let contains x =
00:03:41 #6856 [Verbose] > #if !INTERACTIVE
00:03:41 #6857 [Verbose] > Sm.contains x
00:03:41 #6858 [Verbose] > #else
00:03:41 #6859 [Verbose] > contains x
00:03:41 #6860 [Verbose] > #endif
00:03:41 #6861 [Verbose] >
00:03:41 #6862 [Verbose] > let ellipsis x =
00:03:41 #6863 [Verbose] > #if !INTERACTIVE
00:03:41 #6864 [Verbose] > Sm.ellipsis x
00:03:41 #6865 [Verbose] > #else
00:03:41 #6866 [Verbose] > ellipsis x
00:03:41 #6867 [Verbose] > #endif
00:03:41 #6868 [Verbose] >
00:03:41 #6869 [Verbose] > let ellipsis_end x =
00:03:41 #6870 [Verbose] > #if...
00:03:42 #6871 [Verbose] >
00:03:42 #6872 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:03:42 #6873 [Verbose] > #if !INTERACTIVE
00:03:42 #6874 [Verbose] > namespace Polyglot
00:03:42 #6875 [Verbose] > #endif
00:03:42 #6876 [Verbose] >
00:03:42 #6877 [Verbose] > module Common =
00:03:42 #6878 [Verbose] >
00:03:42 #6879 [Verbose] > #if !INTERACTIVE
00:03:42 #6880 [Verbose] > open Lib
00:03:42 #6881 [Verbose] > #endif
00:03:42 #6882 [Verbose] >
00:03:42 #6883 [Verbose] > let nl = System.Environment.NewLine
00:03:42 #6884 [Verbose] > let q = @""""
00:03:42 #6885 [Verbose] >
00:03:42 #6886 [Verbose] > let inline cons head tail = head :: tail
00:03:42 #6887 [Verbose] >
00:03:42 #6888 [Verbose] > /// ## memoize
00:03:42 #6889 [Verbose] >
00:03:42 #6890 [Verbose] > let inline memoize fn =
00:03:42 #6891 [Verbose] > let result = lazy fn ()
00:03:42 #6892 [Verbose] > fun () -> result.Value
00:03:42 #6893 [Verbose] >
00:03:42 #6894 [Verbose] > /// ## TraceLevel
00:03:42 #6895 [Verbose] >
00:03:42 #6896 [Verbose] > type TraceLevel =
00:03:42 #6897 [Verbose] > | Verbose
00:03:42 #6898 [Verbose] > | Debug
00:03:42 #6899 [Verbose] > | Info
00:03:42 #6900 [Verbose] > | Warning
00:03:42 #6901 [Verbose] > | Critical
00:03:42 #6902 [Verbose] >
00:03:42 #6903 [Verbose] > let inline getLocals () = ""
00:03:42 #6904 [Verbose] >
00:03:42 #6905 [Verbose] > let mutable traceEnabled = true
00:03:42 #6906 [Verbose] > let mutable traceCount = 0
00:03:42 #6907 [Verbose] > let mutable traceLevel = Verbose
00:03:42 #6908 [Verbose] > let mutable traceDump = false
00:03:42 #6909 [Verbose] >
00:03:42 #6910 [Verbose] > let testTraceLevel level =
00:03:42 #6911 [Verbose] > traceEnabled && level >= traceLevel
00:03:42 #6912 [Verbose] >
00:03:42 #6913 [Verbose] > /// ## traceRaw
00:03:42 #6914 [Verbose] >
00:03:42 #6915 [Verbose] > let rec traceRaw level fn =
00:03:42 #6916 [Verbose] > ...
00:03:42 #6917 [Verbose] >
00:03:42 #6918 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:42 #6919 [Verbose] > open Common
00:03:42 #6920 [Verbose] >
00:03:42 #6921 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:42 #6922 [Verbose] > let inline (/./) (table: Tomlyn.Model.TomlTable) (key: string) :
00:03:42 #6923 [Verbose] > Tomlyn.Model.TomlTable =
00:03:42 #6924 [Verbose] > table.[[key]] :?> Tomlyn.Model.TomlTable
00:03:42 #6925 [Verbose] >
00:03:42 #6926 [Verbose] > let inline (/../) (table: Tomlyn.Model.TomlTable) (key: string) : 'T seq =
00:03:42 #6927 [Verbose] > table.[[key]] :?> Tomlyn.Model.TomlArray |> Seq.cast<'T>
00:03:42 #6928 [Verbose] >
00:03:42 #6929 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:03:42 #6930 [Verbose] > //// test
00:03:42 #6931 [Verbose] >
00:03:42 #6932 [Verbose] > let tomlContent =
00:03:42 #6933 [Verbose] > """
00:03:42 #6934 [Verbose] > [[extension]]
00:03:42 #6935 [Verbose] > paths = [["/a", "/b"]]
00:03:42 #6936 [Verbose] > """
00:03:42 #6937 [Verbose] >
00:03:42 #6938 [Verbose] > let toml = Tomlyn.Toml.Parse tomlContent
00:03:42 #6939 [Verbose] > let tomlModel = Tomlyn.Toml.ToModel toml
00:03:42 #6940 [Verbose] >
00:03:42 #6941 [Verbose] > let paths : string seq = tomlModel /./ "extension" /../ "paths"
00:03:42 #6942 [Verbose] >
00:03:42 #6943 [Verbose] > paths
00:03:42 #6944 [Verbose] > |> Seq.toList
00:03:42 #6945 [Verbose] > |> _assertEqual [[ "/a"; "/b" ]]
00:03:42 #6946 [Verbose] >
00:03:42 #6947 [Verbose] > ╭─[ 132.54ms - stdout ]────────────────────────────────────────────────────────╮
00:03:42 #6948 [Verbose] > │ [ /a, /b ] │
00:03:42 #6949 [Verbose] > │ │
00:03:42 #6950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:44 #6951 [Verbose] > [NbConvertApp] Converting notebook Toml.dib.ipynb to html
00:03:44 #6952 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:44 #6953 [Verbose] > validate(nb)
00:03:46 #6954 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:46 #6955 [Verbose] > return _pygments_highlight(
00:03:46 #6956 [Verbose] > [NbConvertApp] Writing 278296 bytes to Toml.dib.html
00:03:47 #6957 [Debug] executeAsync / exitCode: 0 / output.Length: 10897
00:03:47 #6958 [Debug] main / executeCommand / exitCode: 0
00:03:49 #6959 [Debug] runWithTimeoutChildAsync / timeout: 2000
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: CommonFSharp.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Networking.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: FileSystem.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Common.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Threading.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Crypto.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: AsyncSeq.dib
00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Async.dib
00:00:00 #4 [Debug] parseDibCode / output: Fs / file: Networking.dib
00:00:00 #4 [Debug] parseDibCode / output: Fs / file: Async.dib
00:00:00 #8 [Debug] parseDibCode / output: Fs / file: Crypto.dib
00:00:00 #7 [Debug] parseDibCode / output: Fs / file: CommonFSharp.dib
00:00:00 #5 [Debug] parseDibCode / output: Fs / file: Threading.dib
00:00:00 #6 [Debug] parseDibCode / output: Fs / file: FileSystem.dib
00:00:00 #10 [Debug] parseDibCode / output: Fs / file: Common.dib
00:00:00 #9 [Debug] parseDibCode / output: Fs / file: AsyncSeq.dib
00:00:00 #11 [Debug] writeDibCode / output: Fs / path: Toml.dib
00:00:00 #11 [Debug] writeDibCode / output: Fs / path: Runtime.dib
00:00:00 #12 [Debug] parseDibCode / output: Fs / file: Toml.dib
00:00:00 #13 [Debug] parseDibCode / output: Fs / file: Runtime.dib
In [ ]:
{ . "$ScriptDir/../lib/rust/fable/build.ps1" } | Invoke-Block
── pwsh ──────────────────────────────────────────────────────────────────────── . ../../../scripts/nbs_header.ps1 . ../../../scripts/core.ps1 ── pwsh ──────────────────────────────────────────────────────────────────────── dotnet fable --optimize --lang rs --extension .rs ╭─[ 1.15s - stdout ]───────────────────────────────────────────────────────────╮ │ Fable 4.14.0: F# to Rust compiler (status: alpha) │ │ │ │ Thanks to the contributor! @FrankBro │ │ Stand with Ukraine! https://standwithukraine.com.ua/ │ │ │ │ Parsing fable-library-rust.fsproj... │ │ Retrieving project options from cache, in case of issues run `dotnet fable │ │ clean` or try `--noCache` option. │ │ Project and references (1 source files) parsed in 212ms │ │ │ │ Skipped compilation because all generated files are up-to-date! │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ [NbConvertApp] Converting notebook build.dib.ipynb to html C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. validate(nb) C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 return _pygments_highlight( [NbConvertApp] Writing 272480 bytes to build.dib.html
In [ ]:
{ . "$ScriptDir/../apps/plot/build.ps1" } | Invoke-Block
Compiling plot v0.0.1 (C:\home\git\polyglot\apps\plot) Finished `release` profile [optimized] target(s) in 13.45s
In [ ]:
{ . "$ScriptDir/../lib/spiral/build.ps1" -sequential 1 } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command =
"dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = Some <fun:main@438-47> }
00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\spiral
00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release
00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805
00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 testing.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:04 #12 [Verbose] >
00:00:04 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:04 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:04 #15 [Verbose] > │ # testing │
00:00:04 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:04 #17 [Verbose] >
00:00:04 #18 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:04 #19 [Verbose] > inl __expect fn log b a =
00:00:04 #20 [Verbose] > if log then
00:00:04 #21 [Verbose] > a |> sm'.format_debug |> console.write_line
00:00:04 #22 [Verbose] > inl result = fn a b
00:00:04 #23 [Verbose] > inl result =
00:00:04 #24 [Verbose] > result || join result
00:00:04 #25 [Verbose] > if log
00:00:04 #26 [Verbose] > then $"$\"__expect / actual: %A{!a} / expected: %A{!b}\""
00:00:04 #27 [Verbose] > else "__expect"
00:00:04 #28 [Verbose] > |> assert result
00:00:04 #29 [Verbose] >
00:00:04 #30 [Verbose] > inl __assert_approx_eq log e b a = __expect (fun a b => abs (b - a) < (e |>
00:00:04 #31 [Verbose] > optionm.defaultWith 0.00000001)) log b a
00:00:04 #32 [Verbose] > inl _assert_approx_eq e b a = __assert_approx_eq true e b a
00:00:04 #33 [Verbose] >
00:00:04 #34 [Verbose] > inl __assert_eq log b a = __expect (=) log b a
00:00:04 #35 [Verbose] > inl _assert_eq b a = __assert_eq true b a
00:00:04 #36 [Verbose] >
00:00:04 #37 [Verbose] > inl __assert_eq' log b a = __expect (=.) log b a
00:00:04 #38 [Verbose] > inl _assert_eq' b a = __assert_eq' true b a
00:00:04 #39 [Verbose] >
00:00:04 #40 [Verbose] > inl __assert_ne log b a = __expect (fun a b => a = b |> fun x => join x |> not)
00:00:04 #41 [Verbose] > log b a
00:00:04 #42 [Verbose] > inl _assert_ne b a = __assert_ne true b a
00:00:04 #43 [Verbose] >
00:00:04 #44 [Verbose] > inl __assert_gt log b a = __expect (>) log b a
00:00:04 #45 [Verbose] > inl _assert_gt b a = __assert_gt true b a
00:00:04 #46 [Verbose] >
00:00:04 #47 [Verbose] > inl __assert_ge log b a = __expect (>=) log b a
00:00:04 #48 [Verbose] > inl _assert_ge b a = __assert_ge true b a
00:00:04 #49 [Verbose] >
00:00:04 #50 [Verbose] > inl __assert_lt log b a = __expect (<) log b a
00:00:04 #51 [Verbose] > inl _assert_lt b a = __assert_lt true b a
00:00:04 #52 [Verbose] >
00:00:04 #53 [Verbose] > inl __assert_le log b a = __expect (<=) log b a
00:00:04 #54 [Verbose] > inl _assert_le b a = __assert_le true b a
00:00:04 #55 [Verbose] >
00:00:04 #56 [Verbose] > inl __contains forall t. log (b : t) a =
00:00:04 #57 [Verbose] > __expect
00:00:04 #58 [Verbose] > (fun a b => a |> $'Seq.tryFind' ((=) b) |> optionm'.unbox |> fun (x :
00:00:04 #59 [Verbose] > option t) => x <> None)
00:00:04 #60 [Verbose] > log b a
00:00:04 #61 [Verbose] > inl _contains b a = __contains true b a
00:00:04 #62 [Verbose] >
00:00:04 #63 [Verbose] > inl _throws (fn : () -> ()) : option exn =
00:00:04 #64 [Verbose] > inl none = None : option exn
00:00:04 #65 [Verbose] > inl some (s : exn) = Some s
00:00:04 #66 [Verbose] > $"try !fn (); !none with ex -> ex |> !some"
00:00:08 #67 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-3971-7137-71afeee86e42\main.spi
00:00:13 #68 [Verbose] >
00:00:13 #69 [Verbose] > ╭─[ 8.64s - stdout ]───────────────────────────────────────────────────────────╮
00:00:13 #70 [Verbose] > │ () │
00:00:13 #71 [Verbose] > │ │
00:00:13 #72 [Verbose] > │ │
00:00:13 #73 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #74 [Verbose] >
00:00:13 #75 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #76 [Verbose] > // // test
00:00:13 #77 [Verbose] >
00:00:13 #78 [Verbose] > 1f64
00:00:13 #79 [Verbose] > |> _assert_approx_eq (Some 3) 2
00:00:13 #80 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4552-5222-5426628c83e4\main.spi
00:00:14 #81 [Verbose] >
00:00:14 #82 [Verbose] > ╭─[ 1.33s - stdout ]───────────────────────────────────────────────────────────╮
00:00:14 #83 [Verbose] > │ let rec method0 () : unit = │
00:00:14 #84 [Verbose] > │ let v0 : string = $"%A{1.0}" │
00:00:14 #85 [Verbose] > │ System.Console.WriteLine v0 │
00:00:14 #86 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1.0} / expected: %A{2.0}" │
00:00:14 #87 [Verbose] > │ () │
00:00:14 #88 [Verbose] > │ method0() │
00:00:14 #89 [Verbose] > │ │
00:00:14 #90 [Verbose] > │ 1.0 │
00:00:14 #91 [Verbose] > │ │
00:00:14 #92 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:14 #93 [Verbose] >
00:00:14 #94 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 #95 [Verbose] > // // test
00:00:14 #96 [Verbose] >
00:00:14 #97 [Verbose] > "abcd"
00:00:14 #98 [Verbose] > |> _contains 'b'
00:00:14 #99 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4685-8536-817e3d77b1fd\main.spi
00:00:15 #100 [Verbose] >
00:00:15 #101 [Verbose] > ╭─[ 1.18s - stdout ]───────────────────────────────────────────────────────────╮
00:00:15 #102 [Verbose] > │ type [<Struct>] US0 = │
00:00:15 #103 [Verbose] > │ | US0_0 of f0_0 : char │
00:00:15 #104 [Verbose] > │ | US0_1 │
00:00:15 #105 [Verbose] > │ let rec closure0 () (v0 : char) : bool = │
00:00:15 #106 [Verbose] > │ let v1 : bool = 'b' = v0 │
00:00:15 #107 [Verbose] > │ v1 │
00:00:15 #108 [Verbose] > │ and closure1 () (v0 : char) : US0 = │
00:00:15 #109 [Verbose] > │ US0_0(v0) │
00:00:15 #110 [Verbose] > │ and method1 () : (char -> US0) = │
00:00:15 #111 [Verbose] > │ closure1() │
00:00:15 #112 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:15 #113 [Verbose] > │ v0 │
00:00:15 #114 [Verbose] > │ and method0 () : unit = │
00:00:15 #115 [Verbose] > │ let v0 : string = "abcd" │
00:00:15 #116 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:00:15 #117 [Verbose] > │ System.Console.WriteLine v1 │
00:00:15 #118 [Verbose] > │ let v2 : ((char -> bool) -> (string -> char option)) = Seq.tryFind │
00:00:15 #119 [Verbose] > │ let v3 : (char -> bool) = closure0() │
00:00:15 #120 [Verbose] > │ let v4 : (string -> char option) = v2 v3 │
00:00:15 #121 [Verbose] > │ let v5 : char option = v4 v0 │
00:00:15 #122 [Verbose] > │ let v6 : (char -> US0) = method1() │
00:00:15 #123 [Verbose] > │ let v7 : US0 = US0_1 │
00:00:15 #124 [Verbose] > │ let v8 : US0 = v5 |> Option.map v6 |> Option.defaultValue v7 │
00:00:15 #125 [Verbose] > │ let v10 : bool = │
00:00:15 #126 [Verbose] > │ match v8 with │
00:00:15 #127 [Verbose] > │ | US0_1 -> (* None *) │
00:00:15 #128 [Verbose] > │ true │
00:00:15 #129 [Verbose] > │ | _ -> │
00:00:15 #130 [Verbose] > │ false │
00:00:15 #131 [Verbose] > │ let v11 : bool = v10 <> true │
00:00:15 #132 [Verbose] > │ let v13 : bool = │
00:00:15 #133 [Verbose] > │ if v11 then │
00:00:15 #134 [Verbose] > │ true │
00:00:15 #135 [Verbose] > │ else │
00:00:15 #136 [Verbose] > │ method2(v11) │
00:00:15 #137 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v0} / expected: %A{'b'}" │
00:00:15 #138 [Verbose] > │ let v15 : bool = v13 = false │
00:00:15 #139 [Verbose] > │ if v15 then │
00:00:15 #140 [Verbose] > │ failwith<unit> v14 │
00:00:15 #141 [Verbose] > │ method0() │
00:00:15 #142 [Verbose] > │ │
00:00:15 #143 [Verbose] > │ "abcd" │
00:00:15 #144 [Verbose] > │ │
00:00:15 #145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:15 #146 [Verbose] >
00:00:15 #147 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:15 #148 [Verbose] > // // test
00:00:15 #149 [Verbose] >
00:00:15 #150 [Verbose] > (dyn 1f64)
00:00:15 #151 [Verbose] > |> _assert_approx_eq (Some 3) 2
00:00:15 #152 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4806-0644-06d668a7d6a3\main.spi
00:00:16 #153 [Verbose] >
00:00:16 #154 [Verbose] > ╭─[ 406.32ms - stdout ]────────────────────────────────────────────────────────╮
00:00:16 #155 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:16 #156 [Verbose] > │ v0 │
00:00:16 #157 [Verbose] > │ and method0 () : unit = │
00:00:16 #158 [Verbose] > │ let v0 : float = 1.0 │
00:00:16 #159 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:00:16 #160 [Verbose] > │ System.Console.WriteLine v1 │
00:00:16 #161 [Verbose] > │ let v2 : float = 2.0 - v0 │
00:00:16 #162 [Verbose] > │ let v3 : float = -v2 │
00:00:16 #163 [Verbose] > │ let v4 : bool = v2 >= v3 │
00:00:16 #164 [Verbose] > │ let v5 : float = │
00:00:16 #165 [Verbose] > │ if v4 then │
00:00:16 #166 [Verbose] > │ v2 │
00:00:16 #167 [Verbose] > │ else │
00:00:16 #168 [Verbose] > │ v3 │
00:00:16 #169 [Verbose] > │ let v6 : bool = v5 < 3.0 │
00:00:16 #170 [Verbose] > │ let v8 : bool = │
00:00:16 #171 [Verbose] > │ if v6 then │
00:00:16 #172 [Verbose] > │ true │
00:00:16 #173 [Verbose] > │ else │
00:00:16 #174 [Verbose] > │ method1(v6) │
00:00:16 #175 [Verbose] > │ let v9 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}" │
00:00:16 #176 [Verbose] > │ let v10 : bool = v8 = false │
00:00:16 #177 [Verbose] > │ if v10 then │
00:00:16 #178 [Verbose] > │ failwith<unit> v9 │
00:00:16 #179 [Verbose] > │ method0() │
00:00:16 #180 [Verbose] > │ │
00:00:16 #181 [Verbose] > │ 1.0 │
00:00:16 #182 [Verbose] > │ │
00:00:16 #183 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #184 [Verbose] >
00:00:16 #185 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #186 [Verbose] > inl print_and_return x =
00:00:16 #187 [Verbose] > $"printfn $\"print_and_return / x: {!x}\""
00:00:16 #188 [Verbose] > x
00:00:16 #189 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4848-4813-4912ac8d7ade\main.spi
00:00:16 #190 [Verbose] >
00:00:16 #191 [Verbose] > ╭─[ 235.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:16 #192 [Verbose] > │ () │
00:00:16 #193 [Verbose] > │ │
00:00:16 #194 [Verbose] > │ │
00:00:16 #195 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #196 [Verbose] > [NbConvertApp] Converting notebook testing.dib.ipynb to html
00:00:18 #197 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:18 #198 [Verbose] > validate(nb)
00:00:19 #199 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:19 #200 [Verbose] > return _pygments_highlight(
00:00:19 #201 [Verbose] > [NbConvertApp] Writing 287068 bytes to testing.dib.html
00:00:20 #202 [Debug] executeAsync / exitCode: 0 / output.Length: 10984
00:00:20 #203 [Debug] main / executeCommand / exitCode: 0
00:00:20 #204 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 guid.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:23 #205 [Verbose] >
00:00:23 #206 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:23 #207 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:23 #208 [Verbose] > │ # guid │
00:00:23 #209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:23 #210 [Verbose] >
00:00:23 #211 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:23 #212 [Verbose] > // // test
00:00:23 #213 [Verbose] >
00:00:23 #214 [Verbose] > open testing
00:00:27 #215 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-5881-8170-875617084364\main.spi
00:00:28 #216 [Verbose] >
00:00:28 #217 [Verbose] > ╭─[ 4.61s - stdout ]───────────────────────────────────────────────────────────╮
00:00:28 #218 [Verbose] > │ () │
00:00:28 #219 [Verbose] > │ │
00:00:28 #220 [Verbose] > │ │
00:00:28 #221 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #222 [Verbose] >
00:00:28 #223 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:28 #224 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:28 #225 [Verbose] > │ ## guid │
00:00:28 #226 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #227 [Verbose] >
00:00:28 #228 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #229 [Verbose] > nominal guid = $"System.Guid"
00:00:28 #230 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0068-6869-6c7d98316de4\main.spi
00:00:28 #231 [Verbose] >
00:00:28 #232 [Verbose] > ╭─[ 227.62ms - stdout ]────────────────────────────────────────────────────────╮
00:00:28 #233 [Verbose] > │ () │
00:00:28 #234 [Verbose] > │ │
00:00:28 #235 [Verbose] > │ │
00:00:28 #236 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #237 [Verbose] >
00:00:28 #238 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:28 #239 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:28 #240 [Verbose] > │ ## new_guid │
00:00:28 #241 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #242 [Verbose] >
00:00:28 #243 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #244 [Verbose] > inl new_guid (x : string) : guid =
00:00:28 #245 [Verbose] > $'`guid !x '
00:00:28 #246 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0092-9232-93d9554f1ea4\main.spi
00:00:28 #247 [Verbose] >
00:00:28 #248 [Verbose] > ╭─[ 202.75ms - stdout ]────────────────────────────────────────────────────────╮
00:00:28 #249 [Verbose] > │ () │
00:00:28 #250 [Verbose] > │ │
00:00:28 #251 [Verbose] > │ │
00:00:28 #252 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #253 [Verbose] >
00:00:28 #254 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:28 #255 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:28 #256 [Verbose] > │ ## new_raw_guid │
00:00:28 #257 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #258 [Verbose] >
00:00:28 #259 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #260 [Verbose] > inl new_raw_guid () : guid =
00:00:28 #261 [Verbose] > $"System.Guid.NewGuid ()"
00:00:28 #262 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0112-1250-1e63281579e0\main.spi
00:00:29 #263 [Verbose] >
00:00:29 #264 [Verbose] > ╭─[ 233.37ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #265 [Verbose] > │ () │
00:00:29 #266 [Verbose] > │ │
00:00:29 #267 [Verbose] > │ │
00:00:29 #268 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #269 [Verbose] >
00:00:29 #270 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:29 #271 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:29 #272 [Verbose] > │ ## main │
00:00:29 #273 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:29 #274 [Verbose] >
00:00:29 #275 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:29 #276 [Verbose] > inl main () =
00:00:29 #277 [Verbose] > $"let new_guid x = !new_guid x" : ()
00:00:29 #278 [Verbose] > $"let new_raw_guid x = !new_raw_guid x" : ()
00:00:29 #279 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0136-3657-38c52541db1f\main.spi
00:00:29 #280 [Verbose] >
00:00:29 #281 [Verbose] > ╭─[ 906.20ms - stdout ]────────────────────────────────────────────────────────╮
00:00:29 #282 [Verbose] > │ let rec closure0 () (v0 : string) : System.Guid = │
00:00:29 #283 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:00:29 #284 [Verbose] > │ v1 │
00:00:30 #285 [Verbose] > │ and closure1 () () : System.Guid = │
00:00:30 #286 [Verbose] > │ let v0 : System.Guid = System.Guid.NewGuid () │
00:00:30 #287 [Verbose] > │ v0 │
00:00:30 #288 [Verbose] > │ let v0 : (string -> System.Guid) = closure0() │
00:00:30 #289 [Verbose] > │ let new_guid x = v0 x │
00:00:30 #290 [Verbose] > │ let v1 : (unit -> System.Guid) = closure1() │
00:00:30 #291 [Verbose] > │ let new_raw_guid x = v1 x │
00:00:30 #292 [Verbose] > │ () │
00:00:30 #293 [Verbose] > │ │
00:00:30 #294 [Verbose] > │ │
00:00:30 #295 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:32 #296 [Verbose] > [NbConvertApp] Converting notebook guid.dib.ipynb to html
00:00:32 #297 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:32 #298 [Verbose] > validate(nb)
00:00:32 #299 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:32 #300 [Verbose] > return _pygments_highlight(
00:00:32 #301 [Verbose] > [NbConvertApp] Writing 278591 bytes to guid.dib.html
00:00:33 #302 [Debug] executeAsync / exitCode: 0 / output.Length: 5882
00:00:33 #303 [Debug] main / executeCommand / exitCode: 0
00:00:33 #304 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 common.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:36 #305 [Verbose] >
00:00:36 #306 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:36 #307 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:36 #308 [Verbose] > │ # common │
00:00:36 #309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #310 [Verbose] >
00:00:36 #311 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #312 [Verbose] > inl array x = x
00:00:40 #313 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1240-4071-46f67bba23e4\main.spi
00:00:42 #314 [Verbose] >
00:00:42 #315 [Verbose] > ╭─[ 5.22s - stdout ]───────────────────────────────────────────────────────────╮
00:00:42 #316 [Verbose] > │ () │
00:00:42 #317 [Verbose] > │ │
00:00:42 #318 [Verbose] > │ │
00:00:42 #319 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #320 [Verbose] >
00:00:42 #321 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 #322 [Verbose] > // // test
00:00:42 #323 [Verbose] >
00:00:42 #324 [Verbose] > open testing
00:00:42 #325 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1439-3999-32ef3abf9443\main.spi
00:00:42 #326 [Verbose] >
00:00:42 #327 [Verbose] > ╭─[ 236.90ms - stdout ]────────────────────────────────────────────────────────╮
00:00:42 #328 [Verbose] > │ () │
00:00:42 #329 [Verbose] > │ │
00:00:42 #330 [Verbose] > │ │
00:00:42 #331 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #332 [Verbose] >
00:00:42 #333 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:42 #334 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:42 #335 [Verbose] > │ ## prototype │
00:00:42 #336 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #337 [Verbose] >
00:00:42 #338 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 #339 [Verbose] > prototype (~:>) r : forall t. t -> r
00:00:42 #340 [Verbose] > prototype append t : t -> t -> t
00:00:42 #341 [Verbose] > prototype of_string t : string -> t
00:00:42 #342 [Verbose] > prototype to_string t : t -> string
00:00:42 #343 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1464-6438-605354979d6b\main.spi
00:00:42 #344 [Verbose] >
00:00:42 #345 [Verbose] > ╭─[ 254.57ms - stdout ]────────────────────────────────────────────────────────╮
00:00:42 #346 [Verbose] > │ () │
00:00:42 #347 [Verbose] > │ │
00:00:42 #348 [Verbose] > │ │
00:00:42 #349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #350 [Verbose] >
00:00:42 #351 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:42 #352 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:42 #353 [Verbose] > │ ## null │
00:00:42 #354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #355 [Verbose] >
00:00:42 #356 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 #357 [Verbose] > inl null forall t. () : t =
00:00:42 #358 [Verbose] > $"null |> unbox<`t>"
00:00:42 #359 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1490-9020-9fead2f1fe27\main.spi
00:00:42 #360 [Verbose] >
00:00:42 #361 [Verbose] > ╭─[ 250.94ms - stdout ]────────────────────────────────────────────────────────╮
00:00:42 #362 [Verbose] > │ () │
00:00:42 #363 [Verbose] > │ │
00:00:42 #364 [Verbose] > │ │
00:00:42 #365 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #366 [Verbose] >
00:00:42 #367 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:42 #368 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:42 #369 [Verbose] > │ ## unativeint │
00:00:42 #370 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:42 #371 [Verbose] >
00:00:42 #372 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:42 #373 [Verbose] > nominal unativeint = $"unativeint"
00:00:42 #374 [Verbose] >
00:00:42 #375 [Verbose] > inl unativeint forall t {int}. (n : t) : unativeint =
00:00:42 #376 [Verbose] > $"unativeint !n"
00:00:43 #377 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1515-1581-1498bfe3beb3\main.spi
00:00:43 #378 [Verbose] >
00:00:43 #379 [Verbose] > ╭─[ 267.45ms - stdout ]────────────────────────────────────────────────────────╮
00:00:43 #380 [Verbose] > │ () │
00:00:43 #381 [Verbose] > │ │
00:00:43 #382 [Verbose] > │ │
00:00:43 #383 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #384 [Verbose] >
00:00:43 #385 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:43 #386 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:43 #387 [Verbose] > │ ## i32 │
00:00:43 #388 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #389 [Verbose] >
00:00:43 #390 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:43 #391 [Verbose] > inl i32 forall t. (x : t) : i32 =
00:00:43 #392 [Verbose] > $"int32 !x"
00:00:43 #393 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1543-4343-43bad9843c4e\main.spi
00:00:43 #394 [Verbose] >
00:00:43 #395 [Verbose] > ╭─[ 239.21ms - stdout ]────────────────────────────────────────────────────────╮
00:00:43 #396 [Verbose] > │ () │
00:00:43 #397 [Verbose] > │ │
00:00:43 #398 [Verbose] > │ │
00:00:43 #399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #400 [Verbose] >
00:00:43 #401 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:43 #402 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:43 #403 [Verbose] > │ ## i64 │
00:00:43 #404 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #405 [Verbose] >
00:00:43 #406 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:43 #407 [Verbose] > inl i64 forall t. (x : t) : i64 =
00:00:43 #408 [Verbose] > $"int64 !x"
00:00:43 #409 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1568-6816-6e6930614ab9\main.spi
00:00:43 #410 [Verbose] >
00:00:43 #411 [Verbose] > ╭─[ 240.69ms - stdout ]────────────────────────────────────────────────────────╮
00:00:43 #412 [Verbose] > │ () │
00:00:43 #413 [Verbose] > │ │
00:00:43 #414 [Verbose] > │ │
00:00:43 #415 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #416 [Verbose] >
00:00:43 #417 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:43 #418 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:43 #419 [Verbose] > │ ## f32 │
00:00:43 #420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #421 [Verbose] >
00:00:43 #422 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:43 #423 [Verbose] > inl f32 forall t. (x : t) : f32 =
00:00:43 #424 [Verbose] > $"float32 !x"
00:00:43 #425 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1592-9259-95269d23d7b8\main.spi
00:00:43 #426 [Verbose] >
00:00:43 #427 [Verbose] > ╭─[ 240.83ms - stdout ]────────────────────────────────────────────────────────╮
00:00:43 #428 [Verbose] > │ () │
00:00:43 #429 [Verbose] > │ │
00:00:43 #430 [Verbose] > │ │
00:00:43 #431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #432 [Verbose] >
00:00:43 #433 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:43 #434 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:43 #435 [Verbose] > │ ## f64 │
00:00:43 #436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:43 #437 [Verbose] >
00:00:43 #438 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:43 #439 [Verbose] > inl f64 forall t. (x : t) : f64 =
00:00:43 #440 [Verbose] > $"float !x"
00:00:44 #441 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1617-1703-1154a6ec7c31\main.spi
00:00:44 #442 [Verbose] >
00:00:44 #443 [Verbose] > ╭─[ 280.16ms - stdout ]────────────────────────────────────────────────────────╮
00:00:44 #444 [Verbose] > │ () │
00:00:44 #445 [Verbose] > │ │
00:00:44 #446 [Verbose] > │ │
00:00:44 #447 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:44 #448 [Verbose] >
00:00:44 #449 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:44 #450 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:44 #451 [Verbose] > │ ## pair │
00:00:44 #452 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:44 #453 [Verbose] >
00:00:44 #454 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:44 #455 [Verbose] > type pair a b = $"(`a * `b)"
00:00:44 #456 [Verbose] >
00:00:44 #457 [Verbose] > inl pair x y =
00:00:44 #458 [Verbose] > x, y
00:00:44 #459 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1645-4575-42aeebfa57af\main.spi
00:00:44 #460 [Verbose] >
00:00:44 #461 [Verbose] > ╭─[ 280.66ms - stdout ]────────────────────────────────────────────────────────╮
00:00:44 #462 [Verbose] > │ () │
00:00:44 #463 [Verbose] > │ │
00:00:44 #464 [Verbose] > │ │
00:00:44 #465 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:44 #466 [Verbose] >
00:00:44 #467 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:44 #468 [Verbose] > // // test
00:00:44 #469 [Verbose] >
00:00:44 #470 [Verbose] > pair 1i32 2i32
00:00:44 #471 [Verbose] > |> _assert_eq (1, 2)
00:00:44 #472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1674-7424-7c3849ca654f\main.spi
00:00:45 #473 [Verbose] >
00:00:45 #474 [Verbose] > ╭─[ 1.23s - stdout ]───────────────────────────────────────────────────────────╮
00:00:45 #475 [Verbose] > │ let rec method0 () : unit = │
00:00:45 #476 [Verbose] > │ let v0 : string = $"%A{struct (1, 2)}" │
00:00:45 #477 [Verbose] > │ System.Console.WriteLine v0 │
00:00:45 #478 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (1, 2)} / expected: │
00:00:45 #479 [Verbose] > │ %A{struct (1, 2)}" │
00:00:45 #480 [Verbose] > │ () │
00:00:45 #481 [Verbose] > │ method0() │
00:00:45 #482 [Verbose] > │ │
00:00:45 #483 [Verbose] > │ struct (1, 2) │
00:00:45 #484 [Verbose] > │ │
00:00:45 #485 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #486 [Verbose] >
00:00:45 #487 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:45 #488 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:45 #489 [Verbose] > │ ## new_pair │
00:00:45 #490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #491 [Verbose] >
00:00:45 #492 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:45 #493 [Verbose] > inl new_pair forall a b. (a : a) (b : b) : pair a b =
00:00:45 #494 [Verbose] > $"!a, !b"
00:00:45 #495 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1797-9796-96855bab909b\main.spi
00:00:45 #496 [Verbose] >
00:00:45 #497 [Verbose] > ╭─[ 209.60ms - stdout ]────────────────────────────────────────────────────────╮
00:00:45 #498 [Verbose] > │ () │
00:00:45 #499 [Verbose] > │ │
00:00:45 #500 [Verbose] > │ │
00:00:45 #501 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #502 [Verbose] >
00:00:45 #503 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:45 #504 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:45 #505 [Verbose] > │ ## from_pair │
00:00:45 #506 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:45 #507 [Verbose] >
00:00:45 #508 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:45 #509 [Verbose] > inl from_pair forall a b. (pair : pair a b) : a * b =
00:00:45 #510 [Verbose] > $"let (a, b) = !pair"
00:00:45 #511 [Verbose] > $"a", $"b"
00:00:46 #512 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1819-1946-1a4b5027d98c\main.spi
00:00:46 #513 [Verbose] >
00:00:46 #514 [Verbose] > ╭─[ 193.95ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #515 [Verbose] > │ () │
00:00:46 #516 [Verbose] > │ │
00:00:46 #517 [Verbose] > │ │
00:00:46 #518 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #519 [Verbose] >
00:00:46 #520 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #521 [Verbose] > // // test
00:00:46 #522 [Verbose] >
00:00:46 #523 [Verbose] > new_pair "a" 1i32
00:00:46 #524 [Verbose] > |> from_pair
00:00:46 #525 [Verbose] > |> _assert_eq ("a", 1i32)
00:00:46 #526 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1839-3901-3aac7425a757\main.spi
00:00:46 #527 [Verbose] >
00:00:46 #528 [Verbose] > ╭─[ 386.26ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #529 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:46 #530 [Verbose] > │ v0 │
00:00:46 #531 [Verbose] > │ and method0 () : unit = │
00:00:46 #532 [Verbose] > │ let v0 : string = "a" │
00:00:46 #533 [Verbose] > │ let v1 : (string * int32) = v0, 1 │
00:00:46 #534 [Verbose] > │ let (a, b) = v1 │
00:00:46 #535 [Verbose] > │ let v2 : string = a │
00:00:46 #536 [Verbose] > │ let v3 : int32 = b │
00:00:46 #537 [Verbose] > │ let v4 : string = $"%A{struct (v2, v3)}" │
00:00:46 #538 [Verbose] > │ System.Console.WriteLine v4 │
00:00:46 #539 [Verbose] > │ let v5 : bool = v2 = "a" │
00:00:46 #540 [Verbose] > │ let v7 : bool = │
00:00:46 #541 [Verbose] > │ if v5 then │
00:00:46 #542 [Verbose] > │ let v6 : bool = v3 = 1 │
00:00:46 #543 [Verbose] > │ v6 │
00:00:46 #544 [Verbose] > │ else │
00:00:46 #545 [Verbose] > │ false │
00:00:46 #546 [Verbose] > │ let v9 : bool = │
00:00:46 #547 [Verbose] > │ if v7 then │
00:00:46 #548 [Verbose] > │ true │
00:00:46 #549 [Verbose] > │ else │
00:00:46 #550 [Verbose] > │ method1(v7) │
00:00:46 #551 [Verbose] > │ let v10 : string = $"__expect / actual: %A{struct (v2, v3)} / expected: │
00:00:46 #552 [Verbose] > │ %A{struct (v0, 1)}" │
00:00:46 #553 [Verbose] > │ let v11 : bool = v9 = false │
00:00:46 #554 [Verbose] > │ if v11 then │
00:00:46 #555 [Verbose] > │ failwith<unit> v10 │
00:00:46 #556 [Verbose] > │ method0() │
00:00:46 #557 [Verbose] > │ │
00:00:46 #558 [Verbose] > │ struct ("a", 1) │
00:00:46 #559 [Verbose] > │ │
00:00:46 #560 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #561 [Verbose] >
00:00:46 #562 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #563 [Verbose] > // // test
00:00:46 #564 [Verbose] >
00:00:46 #565 [Verbose] > new_pair "a" (new_pair 1i32 "b")
00:00:46 #566 [Verbose] > |> from_pair
00:00:46 #567 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1879-7915-7cfdb30554c2\main.spi
00:00:46 #568 [Verbose] >
00:00:46 #569 [Verbose] > ╭─[ 341.95ms - return value ]──────────────────────────────────────────────────╮
00:00:46 #570 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span │
00:00:46 #571 [Verbose] > │ class="dni-code-hint"><code>(a, (1, │
00:00:46 #572 [Verbose] > │ b))</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │
00:00:46 #573 [Verbose] > │ d>Item1</td><td><div │
00:00:46 #574 [Verbose] > │ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │
00:00:46 #575 [Verbose] > │ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>(1, │
00:00:46 #576 [Verbose] > │ b)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │
00:00:46 #577 [Verbose] > │ >Item1</td><td><div │
00:00:46 #578 [Verbose] > │ class="dni-plaintext"><pre>1</pre></div></td></tr><tr><td>Item2</td><td><div │
00:00:46 #579 [Verbose] > │ class="dni-plaintext"><pre>b</pre></div></td></tr></tbody></table></div></de │
00:00:46 #580 [Verbose] > │ tails></td></tr></tbody></table></div></details><style> │
00:00:46 #581 [Verbose] > │ .dni-code-hint { │
00:00:46 #582 [Verbose] > │ font-style: italic; │
00:00:46 #583 [Verbose] > │ overflow: hidden; │
00:00:46 #584 [Verbose] > │ white-space: nowrap; │
00:00:46 #585 [Verbose] > │ } │
00:00:46 #586 [Verbose] > │ .dni-treev... │
00:00:46 #587 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #588 [Verbose] >
00:00:46 #589 [Verbose] > ╭─[ 361.91ms - stdout ]────────────────────────────────────────────────────────╮
00:00:46 #590 [Verbose] > │ let rec method0 () : struct (string * (int32 * string)) = │
00:00:46 #591 [Verbose] > │ let v0 : string = "b" │
00:00:46 #592 [Verbose] > │ let v1 : (int32 * string) = 1, v0 │
00:00:46 #593 [Verbose] > │ let v2 : string = "a" │
00:00:46 #594 [Verbose] > │ let v3 : (string * (int32 * string)) = v2, v1 │
00:00:46 #595 [Verbose] > │ let (a, b) = v3 │
00:00:46 #596 [Verbose] > │ let v4 : string = a │
00:00:46 #597 [Verbose] > │ let v5 : (int32 * string) = b │
00:00:46 #598 [Verbose] > │ struct (v4, v5) │
00:00:46 #599 [Verbose] > │ method0() │
00:00:46 #600 [Verbose] > │ │
00:00:46 #601 [Verbose] > │ │
00:00:46 #602 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #603 [Verbose] >
00:00:46 #604 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:46 #605 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:46 #606 [Verbose] > │ ## memoize │
00:00:46 #607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:46 #608 [Verbose] >
00:00:46 #609 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:46 #610 [Verbose] > nominal lazy t = $'Lazy<`t>'
00:00:46 #611 [Verbose] >
00:00:46 #612 [Verbose] > inl memoize forall t. (fn : () -> t) : () -> t =
00:00:46 #613 [Verbose] > inl result : lazy t = $'lazy !fn ()'
00:00:46 #614 [Verbose] > fun () => $'!result.Value'
00:00:47 #615 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1916-1616-1c34f483dbad\main.spi
00:00:47 #616 [Verbose] >
00:00:47 #617 [Verbose] > ╭─[ 228.12ms - stdout ]────────────────────────────────────────────────────────╮
00:00:47 #618 [Verbose] > │ () │
00:00:47 #619 [Verbose] > │ │
00:00:47 #620 [Verbose] > │ │
00:00:47 #621 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:47 #622 [Verbose] >
00:00:47 #623 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:47 #624 [Verbose] > // // test
00:00:47 #625 [Verbose] >
00:00:47 #626 [Verbose] > inl count = mut 0i32
00:00:47 #627 [Verbose] > inl add =
00:00:47 #628 [Verbose] > fun () => count <- *count + 1
00:00:47 #629 [Verbose] > |> memoize
00:00:47 #630 [Verbose] >
00:00:47 #631 [Verbose] > add ()
00:00:47 #632 [Verbose] > add ()
00:00:47 #633 [Verbose] > add ()
00:00:47 #634 [Verbose] >
00:00:47 #635 [Verbose] > *count
00:00:47 #636 [Verbose] > |> _assert_eq 1
00:00:47 #637 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1939-3964-3028e96f035c\main.spi
00:00:47 #638 [Verbose] >
00:00:47 #639 [Verbose] > ╭─[ 703.74ms - stdout ]────────────────────────────────────────────────────────╮
00:00:47 #640 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:00:47 #641 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:00:47 #642 [Verbose] > │ let v1 : int32 = v0.l0 │
00:00:47 #643 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:00:47 #644 [Verbose] > │ v0.l0 <- v2 │
00:00:47 #645 [Verbose] > │ () │
00:00:47 #646 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:00:47 #647 [Verbose] > │ v0 │
00:00:47 #648 [Verbose] > │ and method0 () : unit = │
00:00:47 #649 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:00:47 #650 [Verbose] > │ let v1 : (unit -> unit) = closure0(v0) │
00:00:47 #651 [Verbose] > │ let v2 : Lazy<unit> = lazy v1 () │
00:00:47 #652 [Verbose] > │ v2.Value │
00:00:47 #653 [Verbose] > │ v2.Value │
00:00:47 #654 [Verbose] > │ v2.Value │
00:00:47 #655 [Verbose] > │ let v3 : int32 = v0.l0 │
00:00:47 #656 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:00:47 #657 [Verbose] > │ System.Console.WriteLine v4 │
00:00:47 #658 [Verbose] > │ let v5 : bool = v3 = 1 │
00:00:47 #659 [Verbose] > │ let v7 : bool = │
00:00:47 #660 [Verbose] > │ if v5 then │
00:00:47 #661 [Verbose] > │ true │
00:00:47 #662 [Verbose] > │ else │
00:00:47 #663 [Verbose] > │ method1(v5) │
00:00:47 #664 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{1}" │
00:00:47 #665 [Verbose] > │ let v9 : bool = v7 = false │
00:00:47 #666 [Verbose] > │ if v9 then │
00:00:47 #667 [Verbose] > │ failwith<unit> v8 │
00:00:47 #668 [Verbose] > │ method0() │
00:00:47 #669 [Verbose] > │ │
00:00:47 #670 [Verbose] > │ 1 │
00:00:47 #671 [Verbose] > │ │
00:00:47 #672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:47 #673 [Verbose] >
00:00:47 #674 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:47 #675 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:47 #676 [Verbose] > │ ## trace_level │
00:00:47 #677 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:47 #678 [Verbose] >
00:00:47 #679 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:47 #680 [Verbose] > union trace_level =
00:00:47 #681 [Verbose] > | Verbose
00:00:47 #682 [Verbose] > | Debug
00:00:47 #683 [Verbose] > | Info
00:00:47 #684 [Verbose] > | Warning
00:00:47 #685 [Verbose] > | Critical
00:00:47 #686 [Verbose] >
00:00:47 #687 [Verbose] > instance to_string trace_level = function
00:00:47 #688 [Verbose] > | Verbose => "Verbose"
00:00:47 #689 [Verbose] > | Debug => "Debug"
00:00:47 #690 [Verbose] > | Info => "Info"
00:00:47 #691 [Verbose] > | Warning => "Warning"
00:00:47 #692 [Verbose] > | Critical => "Critical"
00:00:47 #693 [Verbose] >
00:00:47 #694 [Verbose] > instance of_string trace_level = function
00:00:47 #695 [Verbose] > | "Verbose" => Verbose
00:00:47 #696 [Verbose] > | "Debug" => Debug
00:00:47 #697 [Verbose] > | "Info" => Info
00:00:47 #698 [Verbose] > | "Warning" => Warning
00:00:47 #699 [Verbose] > | "Critical" => Critical
00:00:47 #700 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2011-1156-1ae2fe0224d1\main.spi
00:00:48 #701 [Verbose] >
00:00:48 #702 [Verbose] > ╭─[ 241.60ms - stdout ]────────────────────────────────────────────────────────╮
00:00:48 #703 [Verbose] > │ () │
00:00:48 #704 [Verbose] > │ │
00:00:48 #705 [Verbose] > │ │
00:00:48 #706 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #707 [Verbose] >
00:00:48 #708 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:48 #709 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:48 #710 [Verbose] > │ ## get_locals │
00:00:48 #711 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #712 [Verbose] >
00:00:48 #713 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:48 #714 [Verbose] > inl get_locals () = ""
00:00:48 #715 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2036-3624-318a11c8f542\main.spi
00:00:48 #716 [Verbose] >
00:00:48 #717 [Verbose] > ╭─[ 214.81ms - stdout ]────────────────────────────────────────────────────────╮
00:00:48 #718 [Verbose] > │ () │
00:00:48 #719 [Verbose] > │ │
00:00:48 #720 [Verbose] > │ │
00:00:48 #721 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #722 [Verbose] >
00:00:48 #723 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:48 #724 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:48 #725 [Verbose] > │ ## trace_state │
00:00:48 #726 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #727 [Verbose] >
00:00:48 #728 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:48 #729 [Verbose] > inl trace_state () =
00:00:48 #730 [Verbose] > inl result =
00:00:48 #731 [Verbose] > fun () =>
00:00:48 #732 [Verbose] > {
00:00:48 #733 [Verbose] > enabled = mut true
00:00:48 #734 [Verbose] > count = mut 0i64
00:00:48 #735 [Verbose] > level = mut Debug
00:00:48 #736 [Verbose] > dump = mut false
00:00:48 #737 [Verbose] > }
00:00:48 #738 [Verbose] > |> memoize
00:00:48 #739 [Verbose] > result ()
00:00:48 #740 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2058-5855-538acb5837f8\main.spi
00:00:48 #741 [Verbose] >
00:00:48 #742 [Verbose] > ╭─[ 258.26ms - stdout ]────────────────────────────────────────────────────────╮
00:00:48 #743 [Verbose] > │ () │
00:00:48 #744 [Verbose] > │ │
00:00:48 #745 [Verbose] > │ │
00:00:48 #746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #747 [Verbose] >
00:00:48 #748 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:48 #749 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:48 #750 [Verbose] > │ ## test_trace_level │
00:00:48 #751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #752 [Verbose] >
00:00:48 #753 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:48 #754 [Verbose] > inl test_trace_level level =
00:00:48 #755 [Verbose] > inl state = trace_state ()
00:00:48 #756 [Verbose] > inl level' = *state.level
00:00:48 #757 [Verbose] > *state.enabled && $'!level >= !level' '
00:00:48 #758 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2084-8489-8bcf52471caf\main.spi
00:00:48 #759 [Verbose] >
00:00:48 #760 [Verbose] > ╭─[ 209.31ms - stdout ]────────────────────────────────────────────────────────╮
00:00:48 #761 [Verbose] > │ () │
00:00:48 #762 [Verbose] > │ │
00:00:48 #763 [Verbose] > │ │
00:00:48 #764 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #765 [Verbose] >
00:00:48 #766 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:48 #767 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:48 #768 [Verbose] > │ ## any │
00:00:48 #769 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:48 #770 [Verbose] >
00:00:48 #771 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:48 #772 [Verbose] > nominal any = $"obj"
00:00:48 #773 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2106-0625-07570744904e\main.spi
00:00:49 #774 [Verbose] >
00:00:49 #775 [Verbose] > ╭─[ 232.50ms - stdout ]────────────────────────────────────────────────────────╮
00:00:49 #776 [Verbose] > │ () │
00:00:49 #777 [Verbose] > │ │
00:00:49 #778 [Verbose] > │ │
00:00:49 #779 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #780 [Verbose] >
00:00:49 #781 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:49 #782 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:49 #783 [Verbose] > │ ## to_any │
00:00:49 #784 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #785 [Verbose] >
00:00:49 #786 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:49 #787 [Verbose] > inl to_any forall t. (obj : t) : any =
00:00:49 #788 [Verbose] > $"!obj"
00:00:49 #789 [Verbose] >
00:00:49 #790 [Verbose] > instance (~:>) any = to_any
00:00:49 #791 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2130-3020-32c62943cfbf\main.spi
00:00:49 #792 [Verbose] >
00:00:49 #793 [Verbose] > ╭─[ 209.92ms - stdout ]────────────────────────────────────────────────────────╮
00:00:49 #794 [Verbose] > │ () │
00:00:49 #795 [Verbose] > │ │
00:00:49 #796 [Verbose] > │ │
00:00:49 #797 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #798 [Verbose] >
00:00:49 #799 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:49 #800 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:49 #801 [Verbose] > │ ## (/@) │
00:00:49 #802 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #803 [Verbose] >
00:00:49 #804 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:49 #805 [Verbose] > inl (/@) a b =
00:00:49 #806 [Verbose] > b |> append a
00:00:49 #807 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2151-5162-50caa003a904\main.spi
00:00:49 #808 [Verbose] >
00:00:49 #809 [Verbose] > ╭─[ 263.10ms - stdout ]────────────────────────────────────────────────────────╮
00:00:49 #810 [Verbose] > │ () │
00:00:49 #811 [Verbose] > │ │
00:00:49 #812 [Verbose] > │ │
00:00:49 #813 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #814 [Verbose] >
00:00:49 #815 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:49 #816 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:49 #817 [Verbose] > │ ## unbox │
00:00:49 #818 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #819 [Verbose] >
00:00:49 #820 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:49 #821 [Verbose] > inl unbox forall t u. (x : t) : u =
00:00:49 #822 [Verbose] > $"!x |> unbox<`u>"
00:00:49 #823 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2178-7857-738e543cadd9\main.spi
00:00:49 #824 [Verbose] >
00:00:49 #825 [Verbose] > ╭─[ 215.05ms - stdout ]────────────────────────────────────────────────────────╮
00:00:49 #826 [Verbose] > │ () │
00:00:49 #827 [Verbose] > │ │
00:00:49 #828 [Verbose] > │ │
00:00:49 #829 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #830 [Verbose] >
00:00:49 #831 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:49 #832 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:49 #833 [Verbose] > │ ## (+.) │
00:00:49 #834 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #835 [Verbose] >
00:00:49 #836 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:49 #837 [Verbose] > inl (+.) forall t. (a : t) (b : t) : t =
00:00:49 #838 [Verbose] > $"!a + !b"
00:00:49 #839 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2200-0070-0ce37c907f00\main.spi
00:00:49 #840 [Verbose] >
00:00:49 #841 [Verbose] > ╭─[ 223.16ms - stdout ]────────────────────────────────────────────────────────╮
00:00:49 #842 [Verbose] > │ () │
00:00:49 #843 [Verbose] > │ │
00:00:49 #844 [Verbose] > │ │
00:00:49 #845 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #846 [Verbose] >
00:00:49 #847 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:49 #848 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:49 #849 [Verbose] > │ ## (-.) │
00:00:49 #850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:49 #851 [Verbose] >
00:00:49 #852 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:49 #853 [Verbose] > inl (-.) forall t. (a : t) (b : t) : t =
00:00:49 #854 [Verbose] > $"!a - !b"
00:00:50 #855 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2223-2345-26fd887f5ea9\main.spi
00:00:50 #856 [Verbose] >
00:00:50 #857 [Verbose] > ╭─[ 245.94ms - stdout ]────────────────────────────────────────────────────────╮
00:00:50 #858 [Verbose] > │ () │
00:00:50 #859 [Verbose] > │ │
00:00:50 #860 [Verbose] > │ │
00:00:50 #861 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #862 [Verbose] >
00:00:50 #863 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 #864 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:50 #865 [Verbose] > │ ## (*.) │
00:00:50 #866 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #867 [Verbose] >
00:00:50 #868 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 #869 [Verbose] > inl (*.) forall t. (a : t) (b : t) : t =
00:00:50 #870 [Verbose] > $"!a * !b"
00:00:50 #871 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2248-4862-4f8ec927a85a\main.spi
00:00:50 #872 [Verbose] >
00:00:50 #873 [Verbose] > ╭─[ 244.44ms - stdout ]────────────────────────────────────────────────────────╮
00:00:50 #874 [Verbose] > │ () │
00:00:50 #875 [Verbose] > │ │
00:00:50 #876 [Verbose] > │ │
00:00:50 #877 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #878 [Verbose] >
00:00:50 #879 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 #880 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:50 #881 [Verbose] > │ ## (/.) │
00:00:50 #882 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #883 [Verbose] >
00:00:50 #884 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 #885 [Verbose] > inl (/.) forall t. (a : t) (b : t) : t =
00:00:50 #886 [Verbose] > $"!a / !b"
00:00:50 #887 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2273-7358-77b9589ffe7a\main.spi
00:00:50 #888 [Verbose] >
00:00:50 #889 [Verbose] > ╭─[ 261.29ms - stdout ]────────────────────────────────────────────────────────╮
00:00:50 #890 [Verbose] > │ () │
00:00:50 #891 [Verbose] > │ │
00:00:50 #892 [Verbose] > │ │
00:00:50 #893 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #894 [Verbose] >
00:00:50 #895 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 #896 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:50 #897 [Verbose] > │ ## (=.) │
00:00:50 #898 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #899 [Verbose] >
00:00:50 #900 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 #901 [Verbose] > inl (=.) forall t. (a : t) (b : t) : bool =
00:00:50 #902 [Verbose] > $"!a = !b"
00:00:50 #903 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2300-0035-04d100ff392f\main.spi
00:00:50 #904 [Verbose] >
00:00:50 #905 [Verbose] > ╭─[ 228.75ms - stdout ]────────────────────────────────────────────────────────╮
00:00:50 #906 [Verbose] > │ () │
00:00:50 #907 [Verbose] > │ │
00:00:50 #908 [Verbose] > │ │
00:00:50 #909 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #910 [Verbose] >
00:00:50 #911 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 #912 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:50 #913 [Verbose] > │ ## (||>) │
00:00:50 #914 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #915 [Verbose] >
00:00:50 #916 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 #917 [Verbose] > inl (||>) (arg1, arg2) fn =
00:00:50 #918 [Verbose] > arg2 |> fn arg1
00:00:51 #919 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2323-2375-298f5772a57e\main.spi
00:00:51 #920 [Verbose] >
00:00:51 #921 [Verbose] > ╭─[ 244.97ms - stdout ]────────────────────────────────────────────────────────╮
00:00:51 #922 [Verbose] > │ () │
00:00:51 #923 [Verbose] > │ │
00:00:51 #924 [Verbose] > │ │
00:00:51 #925 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:51 #926 [Verbose] >
00:00:51 #927 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:51 #928 [Verbose] > // // test
00:00:51 #929 [Verbose] >
00:00:51 #930 [Verbose] > (3i32, 2i32)
00:00:51 #931 [Verbose] > ||> fun a b => a - b
00:00:51 #932 [Verbose] > |> _assert_eq 1
00:00:51 #933 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2348-4854-417b79f5ecc8\main.spi
00:00:51 #934 [Verbose] >
00:00:51 #935 [Verbose] > ╭─[ 566.89ms - stdout ]────────────────────────────────────────────────────────╮
00:00:51 #936 [Verbose] > │ let rec method0 () : unit = │
00:00:51 #937 [Verbose] > │ let v0 : string = $"%A{1}" │
00:00:51 #938 [Verbose] > │ System.Console.WriteLine v0 │
00:00:51 #939 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1} / expected: %A{1}" │
00:00:51 #940 [Verbose] > │ () │
00:00:51 #941 [Verbose] > │ method0() │
00:00:51 #942 [Verbose] > │ │
00:00:51 #943 [Verbose] > │ 1 │
00:00:51 #944 [Verbose] > │ │
00:00:51 #945 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:51 #946 [Verbose] >
00:00:51 #947 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:51 #948 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:51 #949 [Verbose] > │ ## flip │
00:00:51 #950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:51 #951 [Verbose] >
00:00:51 #952 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:51 #953 [Verbose] > inl flip fn a b =
00:00:51 #954 [Verbose] > fn b a
00:00:51 #955 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2406-0632-034bf590d0b2\main.spi
00:00:52 #956 [Verbose] >
00:00:52 #957 [Verbose] > ╭─[ 233.05ms - stdout ]────────────────────────────────────────────────────────╮
00:00:52 #958 [Verbose] > │ () │
00:00:52 #959 [Verbose] > │ │
00:00:52 #960 [Verbose] > │ │
00:00:52 #961 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:52 #962 [Verbose] >
00:00:52 #963 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:52 #964 [Verbose] > // // test
00:00:52 #965 [Verbose] >
00:00:52 #966 [Verbose] > (1i32, 2i32)
00:00:52 #967 [Verbose] > ||> flip pair
00:00:52 #968 [Verbose] > |> _assert_eq (2, 1)
00:00:52 #969 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2429-2972-26315c7f3bba\main.spi
00:00:52 #970 [Verbose] >
00:00:52 #971 [Verbose] > ╭─[ 244.69ms - stdout ]────────────────────────────────────────────────────────╮
00:00:52 #972 [Verbose] > │ let rec method0 () : unit = │
00:00:52 #973 [Verbose] > │ let v0 : string = $"%A{struct (2, 1)}" │
00:00:52 #974 [Verbose] > │ System.Console.WriteLine v0 │
00:00:52 #975 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (2, 1)} / expected: │
00:00:52 #976 [Verbose] > │ %A{struct (2, 1)}" │
00:00:52 #977 [Verbose] > │ () │
00:00:52 #978 [Verbose] > │ method0() │
00:00:52 #979 [Verbose] > │ │
00:00:52 #980 [Verbose] > │ struct (2, 1) │
00:00:52 #981 [Verbose] > │ │
00:00:52 #982 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:52 #983 [Verbose] >
00:00:52 #984 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:52 #985 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:52 #986 [Verbose] > │ ## join_body │
00:00:52 #987 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:52 #988 [Verbose] >
00:00:52 #989 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:52 #990 [Verbose] > inl join_body body acc x =
00:00:52 #991 [Verbose] > if var_is x |> not
00:00:52 #992 [Verbose] > then body acc x
00:00:52 #993 [Verbose] > else
00:00:52 #994 [Verbose] > inl acc = dyn acc
00:00:52 #995 [Verbose] > join body acc x
00:00:52 #996 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2455-5575-5d847488eb31\main.spi
00:00:52 #997 [Verbose] >
00:00:52 #998 [Verbose] > ╭─[ 237.25ms - stdout ]────────────────────────────────────────────────────────╮
00:00:52 #999 [Verbose] > │ () │
00:00:52 #1000 [Verbose] > │ │
00:00:52 #1001 [Verbose] > │ │
00:00:52 #1002 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:52 #1003 [Verbose] >
00:00:52 #1004 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:52 #1005 [Verbose] > // // test
00:00:52 #1006 [Verbose] >
00:00:52 #1007 [Verbose] > inl rec fold_list f s = function
00:00:52 #1008 [Verbose] > | Cons (x, x') => fold_list f (f s x) x'
00:00:52 #1009 [Verbose] > | Nil => s
00:00:52 #1010 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2479-7945-7d36ae3202c6\main.spi
00:00:52 #1011 [Verbose] >
00:00:52 #1012 [Verbose] > ╭─[ 241.05ms - stdout ]────────────────────────────────────────────────────────╮
00:00:52 #1013 [Verbose] > │ () │
00:00:52 #1014 [Verbose] > │ │
00:00:52 #1015 [Verbose] > │ │
00:00:52 #1016 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:52 #1017 [Verbose] >
00:00:52 #1018 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:52 #1019 [Verbose] > // // test
00:00:52 #1020 [Verbose] >
00:00:52 #1021 [Verbose] > [[ 5i32; 4; join 3; 2; 1 ]]
00:00:52 #1022 [Verbose] > |> fold_list (+) 0
00:00:52 #1023 [Verbose] > |> _assert_eq 15
00:00:52 #1024 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2504-0401-0c9ebc64db23\main.spi
00:00:53 #1025 [Verbose] >
00:00:53 #1026 [Verbose] > ╭─[ 384.10ms - stdout ]────────────────────────────────────────────────────────╮
00:00:53 #1027 [Verbose] > │ let rec method1 () : int32 = │
00:00:53 #1028 [Verbose] > │ 3 │
00:00:53 #1029 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:00:53 #1030 [Verbose] > │ v0 │
00:00:53 #1031 [Verbose] > │ and method0 () : unit = │
00:00:53 #1032 [Verbose] > │ let v0 : int32 = method1() │
00:00:53 #1033 [Verbose] > │ let v1 : int32 = 9 + v0 │
00:00:53 #1034 [Verbose] > │ let v2 : int32 = v1 + 2 │
00:00:53 #1035 [Verbose] > │ let v3 : int32 = v2 + 1 │
00:00:53 #1036 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:00:53 #1037 [Verbose] > │ System.Console.WriteLine v4 │
00:00:53 #1038 [Verbose] > │ let v5 : bool = v3 = 15 │
00:00:53 #1039 [Verbose] > │ let v7 : bool = │
00:00:53 #1040 [Verbose] > │ if v5 then │
00:00:53 #1041 [Verbose] > │ true │
00:00:53 #1042 [Verbose] > │ else │
00:00:53 #1043 [Verbose] > │ method2(v5) │
00:00:53 #1044 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}" │
00:00:53 #1045 [Verbose] > │ let v9 : bool = v7 = false │
00:00:53 #1046 [Verbose] > │ if v9 then │
00:00:53 #1047 [Verbose] > │ failwith<unit> v8 │
00:00:53 #1048 [Verbose] > │ method0() │
00:00:53 #1049 [Verbose] > │ │
00:00:53 #1050 [Verbose] > │ 15 │
00:00:53 #1051 [Verbose] > │ │
00:00:53 #1052 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #1053 [Verbose] >
00:00:53 #1054 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #1055 [Verbose] > // // test
00:00:53 #1056 [Verbose] >
00:00:53 #1057 [Verbose] > [[ 5i32; 4; join 3; 2; 1 ]]
00:00:53 #1058 [Verbose] > |> fold_list (join_body (+)) 0
00:00:53 #1059 [Verbose] > |> _assert_eq 15
00:00:53 #1060 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2544-4463-44de49237106\main.spi
00:00:53 #1061 [Verbose] >
00:00:53 #1062 [Verbose] > ╭─[ 251.92ms - stdout ]────────────────────────────────────────────────────────╮
00:00:53 #1063 [Verbose] > │ let rec method1 () : int32 = │
00:00:53 #1064 [Verbose] > │ 3 │
00:00:53 #1065 [Verbose] > │ and method2 (v0 : int32, v1 : int32) : int32 = │
00:00:53 #1066 [Verbose] > │ let v2 : int32 = v1 + v0 │
00:00:53 #1067 [Verbose] > │ v2 │
00:00:53 #1068 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:00:53 #1069 [Verbose] > │ v0 │
00:00:53 #1070 [Verbose] > │ and method0 () : unit = │
00:00:53 #1071 [Verbose] > │ let v0 : int32 = method1() │
00:00:53 #1072 [Verbose] > │ let v1 : int32 = 9 │
00:00:53 #1073 [Verbose] > │ let v2 : int32 = method2(v0, v1) │
00:00:53 #1074 [Verbose] > │ let v3 : int32 = v2 + 2 │
00:00:53 #1075 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:00:53 #1076 [Verbose] > │ let v5 : string = $"%A{v4}" │
00:00:53 #1077 [Verbose] > │ System.Console.WriteLine v5 │
00:00:53 #1078 [Verbose] > │ let v6 : bool = v4 = 15 │
00:00:53 #1079 [Verbose] > │ let v8 : bool = │
00:00:53 #1080 [Verbose] > │ if v6 then │
00:00:53 #1081 [Verbose] > │ true │
00:00:53 #1082 [Verbose] > │ else │
00:00:53 #1083 [Verbose] > │ method3(v6) │
00:00:53 #1084 [Verbose] > │ let v9 : string = $"__expect / actual: %A{v4} / expected: %A{15}" │
00:00:53 #1085 [Verbose] > │ let v10 : bool = v8 = false │
00:00:53 #1086 [Verbose] > │ if v10 then │
00:00:53 #1087 [Verbose] > │ failwith<unit> v9 │
00:00:53 #1088 [Verbose] > │ method0() │
00:00:53 #1089 [Verbose] > │ │
00:00:53 #1090 [Verbose] > │ 15 │
00:00:53 #1091 [Verbose] > │ │
00:00:53 #1092 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #1093 [Verbose] >
00:00:53 #1094 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:53 #1095 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:53 #1096 [Verbose] > │ ## join_body_unit │
00:00:53 #1097 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #1098 [Verbose] >
00:00:53 #1099 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #1100 [Verbose] > inl join_body_unit body d x =
00:00:53 #1101 [Verbose] > if var_is d |> not
00:00:53 #1102 [Verbose] > then body x
00:00:53 #1103 [Verbose] > else
00:00:53 #1104 [Verbose] > inl x = dyn x
00:00:53 #1105 [Verbose] > join body x
00:00:53 #1106 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2572-7226-7a32a0a5b94d\main.spi
00:00:53 #1107 [Verbose] >
00:00:53 #1108 [Verbose] > ╭─[ 214.39ms - stdout ]────────────────────────────────────────────────────────╮
00:00:53 #1109 [Verbose] > │ () │
00:00:53 #1110 [Verbose] > │ │
00:00:53 #1111 [Verbose] > │ │
00:00:53 #1112 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #1113 [Verbose] >
00:00:53 #1114 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #1115 [Verbose] > // // test
00:00:53 #1116 [Verbose] >
00:00:53 #1117 [Verbose] > [[ 5i32; 4; join 3; 2; 1 ]]
00:00:53 #1118 [Verbose] > |> fold_list (fun acc n => join_body_unit ((+) acc) n n) 0
00:00:53 #1119 [Verbose] > |> _assert_eq 15
00:00:53 #1120 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2593-9395-9c471e33c6be\main.spi
00:00:53 #1121 [Verbose] >
00:00:53 #1122 [Verbose] > ╭─[ 255.60ms - stdout ]────────────────────────────────────────────────────────╮
00:00:53 #1123 [Verbose] > │ let rec method1 () : int32 = │
00:00:53 #1124 [Verbose] > │ 3 │
00:00:53 #1125 [Verbose] > │ and method2 (v0 : int32) : int32 = │
00:00:53 #1126 [Verbose] > │ let v1 : int32 = 9 + v0 │
00:00:53 #1127 [Verbose] > │ v1 │
00:00:53 #1128 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:00:53 #1129 [Verbose] > │ v0 │
00:00:53 #1130 [Verbose] > │ and method0 () : unit = │
00:00:53 #1131 [Verbose] > │ let v0 : int32 = method1() │
00:00:53 #1132 [Verbose] > │ let v1 : int32 = method2(v0) │
00:00:53 #1133 [Verbose] > │ let v2 : int32 = v1 + 2 │
00:00:53 #1134 [Verbose] > │ let v3 : int32 = v2 + 1 │
00:00:53 #1135 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:00:53 #1136 [Verbose] > │ System.Console.WriteLine v4 │
00:00:53 #1137 [Verbose] > │ let v5 : bool = v3 = 15 │
00:00:53 #1138 [Verbose] > │ let v7 : bool = │
00:00:53 #1139 [Verbose] > │ if v5 then │
00:00:53 #1140 [Verbose] > │ true │
00:00:53 #1141 [Verbose] > │ else │
00:00:53 #1142 [Verbose] > │ method3(v5) │
00:00:53 #1143 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}" │
00:00:53 #1144 [Verbose] > │ let v9 : bool = v7 = false │
00:00:53 #1145 [Verbose] > │ if v9 then │
00:00:53 #1146 [Verbose] > │ failwith<unit> v8 │
00:00:53 #1147 [Verbose] > │ method0() │
00:00:53 #1148 [Verbose] > │ │
00:00:53 #1149 [Verbose] > │ 15 │
00:00:53 #1150 [Verbose] > │ │
00:00:53 #1151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #1152 [Verbose] >
00:00:53 #1153 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:53 #1154 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:53 #1155 [Verbose] > │ ## run_target │
00:00:53 #1156 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:53 #1157 [Verbose] >
00:00:53 #1158 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:53 #1159 [Verbose] > union target_runtime =
00:00:53 #1160 [Verbose] > | Native
00:00:53 #1161 [Verbose] > | Fable
00:00:53 #1162 [Verbose] > | Wasm
00:00:53 #1163 [Verbose] > | Contract
00:00:53 #1164 [Verbose] >
00:00:53 #1165 [Verbose] > union target =
00:00:53 #1166 [Verbose] > | Rust : target_runtime
00:00:53 #1167 [Verbose] > | Fsharp : target_runtime
00:00:53 #1168 [Verbose] >
00:00:53 #1169 [Verbose] > inl run_target forall t. (fn : target -> (() -> t)) : t =
00:00:53 #1170 [Verbose] > inl result : optionm'.option' t = $'None'
00:00:53 #1171 [Verbose] > $"let mutable _!result = !result"
00:00:53 #1172 [Verbose] > $"#if FABLE_COMPILER_RUST && \!WASM && \!CONTRACT"
00:00:53 #1173 [Verbose] > fn (Rust Native) () |> fun x => $"!x"
00:00:53 #1174 [Verbose] > $"#endif"
00:00:53 #1175 [Verbose] > $"#if FABLE_COMPILER_RUST && WASM"
00:00:53 #1176 [Verbose] > fn (Rust Wasm) () |> fun x => $"!x"
00:00:53 #1177 [Verbose] > $"#endif"
00:00:53 #1178 [Verbose] > $"#if FABLE_COMPILER_RUST && CONTRACT"
00:00:53 #1179 [Verbose] > fn (Rust Contract) () |> fun x => $"!x"
00:00:53 #1180 [Verbose] > $"#endif"
00:00:53 #1181 [Verbose] > $"#if \!FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"
00:00:53 #1182 [Verbose] > fn (Fsharp Native) () |> fun x => $"!x"
00:00:53 #1183 [Verbose] > $"#endif"
00:00:53 #1184 [Verbose] > $"#if FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"
00:00:53 #1185 [Verbose] > fn (Fsharp Fable) () |> fun x => $"!x"
00:00:53 #1186 [Verbose] > $"#endif"
00:00:53 #1187 [Verbose] > $"#if \!FABLE_COMPILER_RUST && WASM"
00:00:53 #1188 [Verbose] > fn (Fsharp Wasm) () |> fun x => $"!x"
00:00:53 #1189 [Verbose] > $"#endif"
00:00:53 #1190 [Verbose] > $"|> fun x -> _!result <- Some x"
00:00:53 #1191 [Verbose] > $"_!result |> Option.get"
00:00:54 #1192 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2621-2197-220e1d39d8ad\main.spi
00:00:54 #1193 [Verbose] >
00:00:54 #1194 [Verbose] > ╭─[ 217.59ms - stdout ]────────────────────────────────────────────────────────╮
00:00:54 #1195 [Verbose] > │ () │
00:00:54 #1196 [Verbose] > │ │
00:00:54 #1197 [Verbose] > │ │
00:00:54 #1198 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:54 #1199 [Verbose] >
00:00:54 #1200 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:54 #1201 [Verbose] > // // test
00:00:54 #1202 [Verbose] >
00:00:54 #1203 [Verbose] > run_target function
00:00:54 #1204 [Verbose] > | Fsharp (Native) => fun () => $"1uy"
00:00:54 #1205 [Verbose] > | _ => fun () => $"2uy"
00:00:54 #1206 [Verbose] > |> _assert_eq 1u8
00:00:54 #1207 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2643-4377-46d2766b7a7b\main.spi
00:00:54 #1208 [Verbose] >
00:00:54 #1209 [Verbose] > ╭─[ 311.84ms - stdout ]────────────────────────────────────────────────────────╮
00:00:54 #1210 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:54 #1211 [Verbose] > │ v0 │
00:00:54 #1212 [Verbose] > │ and method0 () : unit = │
00:00:54 #1213 [Verbose] > │ let v0 : uint8 option = None │
00:00:54 #1214 [Verbose] > │ let mutable _v0 = v0 │
00:00:54 #1215 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:00:54 #1216 [Verbose] > │ let v1 : uint8 = 2uy │
00:00:54 #1217 [Verbose] > │ v1 │
00:00:54 #1218 [Verbose] > │ #endif │
00:00:54 #1219 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:00:54 #1220 [Verbose] > │ let v2 : uint8 = 2uy │
00:00:54 #1221 [Verbose] > │ v2 │
00:00:54 #1222 [Verbose] > │ #endif │
00:00:54 #1223 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:00:54 #1224 [Verbose] > │ let v3 : uint8 = 2uy │
00:00:54 #1225 [Verbose] > │ v3 │
00:00:54 #1226 [Verbose] > │ #endif │
00:00:54 #1227 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:54 #1228 [Verbose] > │ let v4 : uint8 = 1uy │
00:00:54 #1229 [Verbose] > │ v4 │
00:00:54 #1230 [Verbose] > │ #endif │
00:00:54 #1231 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:00:54 #1232 [Verbose] > │ let v5 : uint8 = 2uy │
00:00:54 #1233 [Verbose] > │ v5 │
00:00:54 #1234 [Verbose] > │ #endif │
00:00:54 #1235 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:00:54 #1236 [Verbose] > │ let v6 : uint8 = 2uy │
00:00:54 #1237 [Verbose] > │ v6 │
00:00:54 #1238 [Verbose] > │ #endif │
00:00:54 #1239 [Verbose] > │ |> fun x -> _v0 <- Some x │
00:00:54 #1240 [Verbose] > │ let v7 : uint8 = _v0 |> Option.get │
00:00:54 #1241 [Verbose] > │ let v8 : string = $"%A{v7}" │
00:00:54 #1242 [Verbose] > │ System.Console.WriteLine v8 │
00:00:54 #1243 [Verbose] > │ let v9 : bool = v7 = 1uy │
00:00:54 #1244 [Verbose] > │ let v11 : bool = │
00:00:54 #1245 [Verbose] > │ if v9 then │
00:00:54 #1246 [Verbose] > │ true │
00:00:54 #1247 [Verbose] > │ else │
00:00:54 #1248 [Verbose] > │ method1(v9) │
00:00:54 #1249 [Verbose] > │ let v12 : string = $"__expect / actual: %A{v7} / expected: %A{1uy}" │
00:00:54 #1250 [Verbose] > │ let v13 : bool = v11 = false │
00:00:54 #1251 [Verbose] > │ if v13 then │
00:00:54 #1252 [Verbose] > │ failwith<unit> v12 │
00:00:54 #1253 [Verbose] > │ method0() │
00:00:54 #1254 [Verbose] > │ │
00:00:54 #1255 [Verbose] > │ 1uy │
00:00:54 #1256 [Verbose] > │ │
00:00:54 #1257 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:54 #1258 [Verbose] >
00:00:54 #1259 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:54 #1260 [Verbose] > // // test
00:00:54 #1261 [Verbose] > // // rust=
00:00:54 #1262 [Verbose] >
00:00:54 #1263 [Verbose] > run_target function
00:00:54 #1264 [Verbose] > | Rust (Native) => fun () => $"1uy"
00:00:54 #1265 [Verbose] > | _ => fun () => $"2uy"
00:00:54 #1266 [Verbose] > |> (=) 1u8
00:00:54 #1267 [Verbose] > |> _assert_eq true
00:00:54 #1268 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2677-7733-788d85722f1a\main.spi
00:01:05 #1269 [Verbose] >
00:01:05 #1270 [Verbose] > ╭─[ 11.10s - return value ]────────────────────────────────────────────────────╮
00:01:05 #1271 [Verbose] > │ .rs output: │
00:01:05 #1272 [Verbose] > │ true │
00:01:05 #1273 [Verbose] > │ │
00:01:05 #1274 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #1275 [Verbose] >
00:01:05 #1276 [Verbose] > ╭─[ 11.10s - stdout ]──────────────────────────────────────────────────────────╮
00:01:05 #1277 [Verbose] > │ │
00:01:05 #1278 [Verbose] > │ .fsx: │
00:01:05 #1279 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:05 #1280 [Verbose] > │ v0 │
00:01:05 #1281 [Verbose] > │ and method0 () : unit = │
00:01:05 #1282 [Verbose] > │ let v0 : uint8 option = None │
00:01:05 #1283 [Verbose] > │ let mutable _v0 = v0 │
00:01:05 #1284 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:05 #1285 [Verbose] > │ let v1 : uint8 = 1uy │
00:01:05 #1286 [Verbose] > │ v1 │
00:01:05 #1287 [Verbose] > │ #endif │
00:01:05 #1288 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:05 #1289 [Verbose] > │ let v2 : uint8 = 2uy │
00:01:05 #1290 [Verbose] > │ v2 │
00:01:05 #1291 [Verbose] > │ #endif │
00:01:05 #1292 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:05 #1293 [Verbose] > │ let v3 : uint8 = 2uy │
00:01:05 #1294 [Verbose] > │ v3 │
00:01:05 #1295 [Verbose] > │ #endif │
00:01:05 #1296 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:05 #1297 [Verbose] > │ let v4 : uint8 = 2uy │
00:01:05 #1298 [Verbose] > │ v4 │
00:01:05 #1299 [Verbose] > │ #endif │
00:01:05 #1300 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:05 #1301 [Verbose] > │ let v5 : uint8 = 2uy │
00:01:05 #1302 [Verbose] > │ v5 │
00:01:05 #1303 [Verbose] > │ #endif │
00:01:05 #1304 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:05 #1305 [Verbose] > │ let v6 : uint8 = 2uy │
00:01:05 #1306 [Verbose] > │ v6 │
00:01:05 #1307 [Verbose] > │ #endif │
00:01:05 #1308 [Verbose] > │ |> fun x -> _v0 <- Some x │
00:01:05 #1309 [Verbose] > │ let v7 : uint8 = _v0 |> Option.get │
00:01:05 #1310 [Verbose] > │ let v8 : bool = 1uy = v7 │
00:01:05 #1311 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:01:05 #1312 [Verbose] > │ System.Console.WriteLine v9 │
00:01:05 #1313 [Verbose] > │ let v11 : bool = │
00:01:05 #1314 [Verbose] > │ if v8 then │
00:01:05 #1315 [Verbose] > │ true │
00:01:05 #1316 [Verbose] > │ else │
00:01:05 #1317 [Verbose] > │ method1(v8) │
00:01:05 #1318 [Verbose] > │ let v12 : string = $"__expect / actual: %A{v8} / expected: %A{true}" │
00:01:05 #1319 [Verbose] > │ let v13 : bool = v11 = false │
00:01:05 #1320 [Verbose] > │ if v13 then │
00:01:05 #1321 [Verbose] > │ failwith<unit> v12 │
00:01:05 #1322 [Verbose] > │ method0() │
00:01:05 #1323 [Verbose] > │ │
00:01:05 #1324 [Verbose] > │ │
00:01:05 #1325 [Verbose] > │ .rs: │
00:01:05 #1326 [Verbose] > │ #![allow(dead_code,)] │
00:01:05 #1327 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:01:05 #1328 [Verbose] > │ #![allow(non_snake_case,)] │
00:01:05 #1329 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:01:05 #1330 [Verbose] > │ #![allow(unreachable_code,)] │
00:01:05 #1331 [Verbose] > │ #![allow(unused_attributes,)] │
00:01:05 #1332 [Verbose] > │ #![allow(unused_imports,)] │
00:01:05 #1333 [Verbose] > │ #![allow(unused_macros,)] │
00:01:05 #1334 [Verbose] > │ #![allow(unused_parens,)] │
00:01:05 #1335 [Verbose] > │ #![allow(unused_variables,)] │
00:01:05 #1336 [Verbose] > │ mod module_ccfa04bf { │
00:01:05 #1337 [Verbose] > │ pub mod Spiral_eval { │
00:01:05 #1338 [Verbose] > │ use super::*; │
00:01:05 #1339 [Verbose] > │ use fable_library_rust::Native_::MutCell; │
00:01:05 #1340 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:01:05 #1341 [Verbose] > │ use fable_library_rust::Option_::getValue; │
00:01:05 #1342 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:01:05 #1343 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:01:05 #1344 [Verbose] > │ use fable_library_rust::String_::string; │
00:01:05 #1345 [Verbose] > │ pub fn method1(v0: bool) -> bool { v0 } │
00:01:05 #1346 [Verbose] > │ pub fn method0() { │
00:01:05 #1347 [Verbose] > │ let _v0: MutCell<Option<u8>> = MutCell::new(None::<u8>); │
00:01:05 #1348 [Verbose] > │ _v0.set(Some(1_u8)); │
00:01:05 #1349 [Verbose] > │ { │
00:01:05 #1350 [Verbose] > │ let v8: bool = 1_u8 == getValue(_v0.get().clone()); │
00:01:05 #1351 [Verbose] > │ let v9: string = sprintf!("{:?}", v8); │
00:01:05 #1352 [Verbose] > │ printfn!("{0}", v9); │
00:01:05 #1353 [Verbose] > │ if (if v8 { true } else { Spiral_eval::method1(v8) }) == │
00:01:05 #1354 [Verbose] > │ false │
00:01:05 #1355 [Verbose] > │ { │
00:01:05 #1356 [Verbose] > │ panic!("{}", │
00:01:05 #1357 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:01:05 #1358 [Verbose] > │ {:?}", v8, true)); │
00:01:05 #1359 [Verbose] > │ } │
00:01:05 #1360 [Verbose] > │ } │
00:01:05 #1361 [Verbose] > │ } │
00:01:05 #1362 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:01:05 #1363 [Verbose] > │ } │
00:01:05 #1364 [Verbose] > │ } │
00:01:05 #1365 [Verbose] > │ pub use module_ccfa04bf::*; │
00:01:05 #1366 [Verbose] > │ │
00:01:05 #1367 [Verbose] > │ │
00:01:05 #1368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #1369 [Verbose] >
00:01:05 #1370 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 #1371 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:05 #1372 [Verbose] > │ ## nameof │
00:01:05 #1373 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #1374 [Verbose] >
00:01:05 #1375 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 #1376 [Verbose] > inl nameof x : string =
00:01:05 #1377 [Verbose] > $"nameof !x"
00:01:05 #1378 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3793-9311-967e0bb08362\main.spi
00:01:05 #1379 [Verbose] >
00:01:05 #1380 [Verbose] > ╭─[ 212.68ms - stdout ]────────────────────────────────────────────────────────╮
00:01:05 #1381 [Verbose] > │ () │
00:01:05 #1382 [Verbose] > │ │
00:01:05 #1383 [Verbose] > │ │
00:01:05 #1384 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #1385 [Verbose] >
00:01:05 #1386 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:05 #1387 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:05 #1388 [Verbose] > │ ## get_environment_variable │
00:01:05 #1389 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:05 #1390 [Verbose] >
00:01:05 #1391 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:05 #1392 [Verbose] > inl get_environment_variable (var : string) : string =
00:01:05 #1393 [Verbose] > $"System.Environment.GetEnvironmentVariable !var"
00:01:06 #1394 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3814-1453-133ae78cd8de\main.spi
00:01:06 #1395 [Verbose] >
00:01:06 #1396 [Verbose] > ╭─[ 323.17ms - stdout ]────────────────────────────────────────────────────────╮
00:01:06 #1397 [Verbose] > │ () │
00:01:06 #1398 [Verbose] > │ │
00:01:06 #1399 [Verbose] > │ │
00:01:06 #1400 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:06 #1401 [Verbose] >
00:01:06 #1402 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:06 #1403 [Verbose] > // // test
00:01:06 #1404 [Verbose] >
00:01:06 #1405 [Verbose] > fun () => failwith "test"
00:01:06 #1406 [Verbose] > |> _throws
00:01:06 #1407 [Verbose] > |> optionm.map sm'.format_exception
00:01:06 #1408 [Verbose] > |> _assert_eq (Some "System.Exception: test")
00:01:06 #1409 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3847-4713-4b7e737be5f6\main.spi
00:01:07 #1410 [Verbose] >
00:01:07 #1411 [Verbose] > ╭─[ 890.10ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #1412 [Verbose] > │ type [<Struct>] US0 = │
00:01:07 #1413 [Verbose] > │ | US0_0 of f0_0 : exn │
00:01:07 #1414 [Verbose] > │ | US0_1 │
00:01:07 #1415 [Verbose] > │ and [<Struct>] US1 = │
00:01:07 #1416 [Verbose] > │ | US1_0 of f0_0 : string │
00:01:07 #1417 [Verbose] > │ | US1_1 │
00:01:07 #1418 [Verbose] > │ let rec closure0 () () : unit = │
00:01:07 #1419 [Verbose] > │ failwith<unit> "test" │
00:01:07 #1420 [Verbose] > │ and closure1 () (v0 : exn) : US0 = │
00:01:07 #1421 [Verbose] > │ US0_0(v0) │
00:01:07 #1422 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:07 #1423 [Verbose] > │ v0 │
00:01:07 #1424 [Verbose] > │ and method0 () : unit = │
00:01:07 #1425 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:01:07 #1426 [Verbose] > │ let v1 : US0 = US0_1 │
00:01:07 #1427 [Verbose] > │ let v2 : (exn -> US0) = closure1() │
00:01:07 #1428 [Verbose] > │ let v3 : US0 = try v0 (); v1 with ex -> ex |> v2 │
00:01:07 #1429 [Verbose] > │ let v16 : US1 = │
00:01:07 #1430 [Verbose] > │ match v3 with │
00:01:07 #1431 [Verbose] > │ | US0_1 -> (* None *) │
00:01:07 #1432 [Verbose] > │ US1_1 │
00:01:07 #1433 [Verbose] > │ | US0_0(v4) -> (* Some *) │
00:01:07 #1434 [Verbose] > │ let v5 : string option = None │
00:01:07 #1435 [Verbose] > │ let mutable _v5 = v5 │
00:01:07 #1436 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:07 #1437 [Verbose] > │ let v6 : string = $"%A{v4}" │
00:01:07 #1438 [Verbose] > │ v6 │
00:01:07 #1439 [Verbose] > │ #endif │
00:01:07 #1440 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:07 #1441 [Verbose] > │ let v7 : string = $"%A{v4}" │
00:01:07 #1442 [Verbose] > │ v7 │
00:01:07 #1443 [Verbose] > │ #endif │
00:01:07 #1444 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:07 #1445 [Verbose] > │ let v8 : string = $"%A{v4}" │
00:01:07 #1446 [Verbose] > │ v8 │
00:01:07 #1447 [Verbose] > │ #endif │
00:01:07 #1448 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:07 #1449 [Verbose] > │ let v9 : string = $"{v4.GetType ()}: {v4.Message}" │
00:01:07 #1450 [Verbose] > │ v9 │
00:01:07 #1451 [Verbose] > │ #endif │
00:01:07 #1452 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:07 #1453 [Verbose] > │ let v10 : string = $"%A{v4}" │
00:01:07 #1454 [Verbose] > │ v10 │
00:01:07 #1455 [Verbose] > │ #endif │
00:01:07 #1456 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:07 #1457 [Verbose] > │ let v11 : string = $"%A{v4}" │
00:01:07 #1458 [Verbose] > │ v11 │
00:01:07 #1459 [Verbose] > │ #endif │
00:01:07 #1460 [Verbose] > │ |> fun x -> _v5 <- Some x │
00:01:07 #1461 [Verbose] > │ let v12 : string = _v5 |> Option.get │
00:01:07 #1462 [Verbose] > │ US1_0(v12) │
00:01:07 #1463 [Verbose] > │ let v17 : string = $"%A{v16}" │
00:01:07 #1464 [Verbose] > │ System.Console.WriteLine v17 │
00:01:07 #1465 [Verbose] > │ let v22 : bool = │
00:01:07 #1466 [Verbose] > │ match v16 with │
00:01:07 #1467 [Verbose] > │ | US1_0(v20) -> (* Some *) │
00:01:07 #1468 [Verbose] > │ let v21 : bool = v20 = "System.Exception: test" │
00:01:07 #1469 [Verbose] > │ v21 │
00:01:07 #1470 [Verbose] > │ | _ -> │
00:01:07 #1471 [Verbose] > │ false │
00:01:07 #1472 [Verbose] > │ let v24 : bool = │
00:01:07 #1473 [Verbose] > │ if v22 then │
00:01:07 #1474 [Verbose] > │ true │
00:01:07 #1475 [Verbose] > │ else │
00:01:07 #1476 [Verbose] > │ method1(v22) │
00:01:07 #1477 [Verbose] > │ let v25 : string = "System.Exception: test" │
00:01:07 #1478 [Verbose] > │ let v26 : US1 = US1_0(v25) │
00:01:07 #1479 [Verbose] > │ let v27 : string = $"__expect / actual: %A{v16} / expected: %A{v26}" │
00:01:07 #1480 [Verbose] > │ let v28 : bool = v24 = false │
00:01:07 #1481 [Verbose] > │ if v28 then │
00:01:07 #1482 [Verbose] > │ failwith<unit> v27 │
00:01:07 #1483 [Verbose] > │ method0() │
00:01:07 #1484 [Verbose] > │ │
00:01:07 #1485 [Verbose] > │ US1_0 "System.Exception: test" │
00:01:07 #1486 [Verbose] > │ │
00:01:07 #1487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #1488 [Verbose] >
00:01:07 #1489 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #1490 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #1491 [Verbose] > │ ## disposable │
00:01:07 #1492 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #1493 [Verbose] >
00:01:07 #1494 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #1495 [Verbose] > nominal disposable = $"System.IDisposable"
00:01:07 #1496 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3941-4139-4e5787634fb7\main.spi
00:01:07 #1497 [Verbose] >
00:01:07 #1498 [Verbose] > ╭─[ 276.52ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #1499 [Verbose] > │ () │
00:01:07 #1500 [Verbose] > │ │
00:01:07 #1501 [Verbose] > │ │
00:01:07 #1502 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #1503 [Verbose] >
00:01:07 #1504 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #1505 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #1506 [Verbose] > │ ## use_disposable │
00:01:07 #1507 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #1508 [Verbose] >
00:01:07 #1509 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #1510 [Verbose] > inl use_disposable (disposable : disposable) : disposable =
00:01:07 #1511 [Verbose] > $"use !disposable = !disposable" : ()
00:01:07 #1512 [Verbose] > $"!disposable"
00:01:07 #1513 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3969-6932-624f7901592b\main.spi
00:01:07 #1514 [Verbose] >
00:01:07 #1515 [Verbose] > ╭─[ 273.38ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #1516 [Verbose] > │ () │
00:01:07 #1517 [Verbose] > │ │
00:01:07 #1518 [Verbose] > │ │
00:01:07 #1519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #1520 [Verbose] >
00:01:07 #1521 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:07 #1522 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:07 #1523 [Verbose] > │ ## new_disposable │
00:01:07 #1524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #1525 [Verbose] >
00:01:07 #1526 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #1527 [Verbose] > inl new_disposable (fn : () -> ()) : disposable =
00:01:07 #1528 [Verbose] > run_target function
00:01:07 #1529 [Verbose] > | Fsharp _ => fun () => $'{ new System.IDisposable with member _.Dispose
00:01:07 #1530 [Verbose] > () = !fn () }'
00:01:07 #1531 [Verbose] > // | Rust _ =>
00:01:07 #1532 [Verbose] > // fun () =>
00:01:07 #1533 [Verbose] > // $'{ new System.IDisposable with member _.Dispose () =
00:01:07 #1534 [Verbose] > Fable.Core.RustInterop.emitRustExpr () "!fn()" }'
00:01:07 #1535 [Verbose] > | target => fun () => failwith $'$"new_disposable / target: {!target}"'
00:01:07 #1536 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3997-9737-9e7cd5357409\main.spi
00:01:07 #1537 [Verbose] >
00:01:07 #1538 [Verbose] > ╭─[ 245.47ms - stdout ]────────────────────────────────────────────────────────╮
00:01:07 #1539 [Verbose] > │ () │
00:01:07 #1540 [Verbose] > │ │
00:01:07 #1541 [Verbose] > │ │
00:01:07 #1542 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:07 #1543 [Verbose] >
00:01:07 #1544 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:07 #1545 [Verbose] > // // test
00:01:07 #1546 [Verbose] >
00:01:07 #1547 [Verbose] > inl new_disposable_test = mut 0i32
00:01:07 #1548 [Verbose] > new_disposable (fun () => new_disposable_test <- *new_disposable_test + 1)
00:01:07 #1549 [Verbose] > |> $'_.Dispose()'
00:01:07 #1550 [Verbose] > *new_disposable_test |> _assert_eq 1
00:01:08 #1551 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4022-2212-2420fdfd7e1d\main.spi
00:01:08 #1552 [Verbose] >
00:01:08 #1553 [Verbose] > ╭─[ 688.96ms - stdout ]────────────────────────────────────────────────────────╮
00:01:08 #1554 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:08 #1555 [Verbose] > │ and [<Struct>] US0 = │
00:01:08 #1556 [Verbose] > │ | US0_0 │
00:01:08 #1557 [Verbose] > │ | US0_1 │
00:01:08 #1558 [Verbose] > │ | US0_2 │
00:01:08 #1559 [Verbose] > │ | US0_3 │
00:01:08 #1560 [Verbose] > │ and [<Struct>] US1 = │
00:01:08 #1561 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:01:08 #1562 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:01:08 #1563 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:01:08 #1564 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:08 #1565 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:01:08 #1566 [Verbose] > │ v0.l0 <- v2 │
00:01:08 #1567 [Verbose] > │ () │
00:01:08 #1568 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:08 #1569 [Verbose] > │ v0 │
00:01:08 #1570 [Verbose] > │ and method0 () : unit = │
00:01:08 #1571 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:01:08 #1572 [Verbose] > │ let v1 : System.IDisposable option = None │
00:01:08 #1573 [Verbose] > │ let mutable _v1 = v1 │
00:01:08 #1574 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:08 #1575 [Verbose] > │ let v2 : US0 = US0_0 │
00:01:08 #1576 [Verbose] > │ let v3 : US1 = US1_0(v2) │
00:01:08 #1577 [Verbose] > │ let v4 : string = $"new_disposable / target: {v3}" │
00:01:08 #1578 [Verbose] > │ let v5 : System.IDisposable = failwith<System.IDisposable> v4 │
00:01:08 #1579 [Verbose] > │ v5 │
00:01:08 #1580 [Verbose] > │ #endif │
00:01:08 #1581 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:08 #1582 [Verbose] > │ let v6 : US0 = US0_2 │
00:01:08 #1583 [Verbose] > │ let v7 : US1 = US1_0(v6) │
00:01:08 #1584 [Verbose] > │ let v8 : string = $"new_disposable / target: {v7}" │
00:01:08 #1585 [Verbose] > │ let v9 : System.IDisposable = failwith<System.IDisposable> v8 │
00:01:08 #1586 [Verbose] > │ v9 │
00:01:08 #1587 [Verbose] > │ #endif │
00:01:08 #1588 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:08 #1589 [Verbose] > │ let v10 : US0 = US0_3 │
00:01:08 #1590 [Verbose] > │ let v11 : US1 = US1_0(v10) │
00:01:08 #1591 [Verbose] > │ let v12 : string = $"new_disposable / target: {v11}" │
00:01:08 #1592 [Verbose] > │ let v13 : System.IDisposable = failwith<System.IDisposable> v12 │
00:01:08 #1593 [Verbose] > │ v13 │
00:01:08 #1594 [Verbose] > │ #endif │
00:01:08 #1595 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:08 #1596 [Verbose] > │ let v14 : (unit -> unit) = closure0(v0) │
00:01:08 #1597 [Verbose] > │ let v15 : System.IDisposable = { new System.IDisposable with member │
00:01:08 #1598 [Verbose] > │ _.Dispose () = v14 () } │
00:01:08 #1599 [Verbose] > │ v15 │
00:01:08 #1600 [Verbose] > │ #endif │
00:01:08 #1601 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:08 #1602 [Verbose] > │ let v16 : System.IDisposable = { new System.IDisposable with member │
00:01:08 #1603 [Verbose] > │ _.Dispose () = v14 () } │
00:01:08 #1604 [Verbose] > │ v16 │
00:01:08 #1605 [Verbose] > │ #endif │
00:01:08 #1606 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:08 #1607 [Verbose] > │ let v17 : System.IDisposable = { new System.IDisposable with member │
00:01:08 #1608 [Verbose] > │ _.Dispose () = v14 () } │
00:01:08 #1609 [Verbose] > │ v17 │
00:01:08 #1610 [Verbose] > │ #endif │
00:01:08 #1611 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:08 #1612 [Verbose] > │ let v18 : System.IDisposable = _v1 |> Option.get │
00:01:08 #1613 [Verbose] > │ let v19 : (System.IDisposable -> unit) = _.Dispose() │
00:01:08 #1614 [Verbose] > │ v19 v18 │
00:01:08 #1615 [Verbose] > │ let v20 : int32 = v0.l0 │
00:01:08 #1616 [Verbose] > │ let v21 : string = $"%A{v20}" │
00:01:08 #1617 [Verbose] > │ System.Console.WriteLine v21 │
00:01:08 #1618 [Verbose] > │ let v22 : bool = v20 = 1 │
00:01:08 #1619 [Verbose] > │ let v24 : bool = │
00:01:08 #1620 [Verbose] > │ if v22 then │
00:01:08 #1621 [Verbose] > │ true │
00:01:08 #1622 [Verbose] > │ else │
00:01:08 #1623 [Verbose] > │ method1(v22) │
00:01:08 #1624 [Verbose] > │ let v25 : string = $"__expect / actual: %A{v20} / expected: %A{1}" │
00:01:08 #1625 [Verbose] > │ let v26 : bool = v24 = false │
00:01:08 #1626 [Verbose] > │ if v26 then │
00:01:08 #1627 [Verbose] > │ failwith<unit> v25 │
00:01:08 #1628 [Verbose] > │ method0() │
00:01:08 #1629 [Verbose] > │ │
00:01:08 #1630 [Verbose] > │ 1 │
00:01:08 #1631 [Verbose] > │ │
00:01:08 #1632 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:08 #1633 [Verbose] >
00:01:08 #1634 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:08 #1635 [Verbose] > // // test
00:01:08 #1636 [Verbose] >
00:01:08 #1637 [Verbose] > inl new_disposable_test = mut 0i32
00:01:08 #1638 [Verbose] > fun () =>
00:01:08 #1639 [Verbose] > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:01:08 #1640 [Verbose] > |> use_disposable
00:01:08 #1641 [Verbose] > |> ignore
00:01:08 #1642 [Verbose] > |> async.new_task
00:01:08 #1643 [Verbose] > |> async.await_task
00:01:08 #1644 [Verbose] > |> async.run_synchronously
00:01:08 #1645 [Verbose] > *new_disposable_test |> _assert_eq 1
00:01:08 #1646 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4097-9717-90e2fda89387\main.spi
00:01:09 #1647 [Verbose] >
00:01:09 #1648 [Verbose] > ╭─[ 858.77ms - stdout ]────────────────────────────────────────────────────────╮
00:01:09 #1649 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:09 #1650 [Verbose] > │ and [<Struct>] US0 = │
00:01:09 #1651 [Verbose] > │ | US0_0 │
00:01:09 #1652 [Verbose] > │ | US0_1 │
00:01:09 #1653 [Verbose] > │ | US0_2 │
00:01:09 #1654 [Verbose] > │ | US0_3 │
00:01:09 #1655 [Verbose] > │ and [<Struct>] US1 = │
00:01:09 #1656 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:01:09 #1657 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:01:09 #1658 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:01:09 #1659 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:09 #1660 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:01:09 #1661 [Verbose] > │ v0.l0 <- v2 │
00:01:09 #1662 [Verbose] > │ () │
00:01:09 #1663 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:09 #1664 [Verbose] > │ v0 │
00:01:09 #1665 [Verbose] > │ and method0 () : unit = │
00:01:09 #1666 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:01:09 #1667 [Verbose] > │ let mutable result = None │
00:01:09 #1668 [Verbose] > │ task { │
00:01:09 #1669 [Verbose] > │ let v1 : System.IDisposable option = None │
00:01:09 #1670 [Verbose] > │ let mutable _v1 = v1 │
00:01:09 #1671 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:09 #1672 [Verbose] > │ let v2 : US0 = US0_0 │
00:01:09 #1673 [Verbose] > │ let v3 : US1 = US1_0(v2) │
00:01:09 #1674 [Verbose] > │ let v4 : string = $"new_disposable / target: {v3}" │
00:01:09 #1675 [Verbose] > │ let v5 : System.IDisposable = failwith<System.IDisposable> v4 │
00:01:09 #1676 [Verbose] > │ v5 │
00:01:09 #1677 [Verbose] > │ #endif │
00:01:09 #1678 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:09 #1679 [Verbose] > │ let v6 : US0 = US0_2 │
00:01:09 #1680 [Verbose] > │ let v7 : US1 = US1_0(v6) │
00:01:09 #1681 [Verbose] > │ let v8 : string = $"new_disposable / target: {v7}" │
00:01:09 #1682 [Verbose] > │ let v9 : System.IDisposable = failwith<System.IDisposable> v8 │
00:01:09 #1683 [Verbose] > │ v9 │
00:01:09 #1684 [Verbose] > │ #endif │
00:01:09 #1685 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:09 #1686 [Verbose] > │ let v10 : US0 = US0_3 │
00:01:09 #1687 [Verbose] > │ let v11 : US1 = US1_0(v10) │
00:01:09 #1688 [Verbose] > │ let v12 : string = $"new_disposable / target: {v11}" │
00:01:09 #1689 [Verbose] > │ let v13 : System.IDisposable = failwith<System.IDisposable> v12 │
00:01:09 #1690 [Verbose] > │ v13 │
00:01:09 #1691 [Verbose] > │ #endif │
00:01:09 #1692 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:09 #1693 [Verbose] > │ let v14 : (unit -> unit) = closure0(v0) │
00:01:09 #1694 [Verbose] > │ let v15 : System.IDisposable = { new System.IDisposable with member │
00:01:09 #1695 [Verbose] > │ _.Dispose () = v14 () } │
00:01:09 #1696 [Verbose] > │ v15 │
00:01:09 #1697 [Verbose] > │ #endif │
00:01:09 #1698 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:09 #1699 [Verbose] > │ let v16 : System.IDisposable = { new System.IDisposable with member │
00:01:09 #1700 [Verbose] > │ _.Dispose () = v14 () } │
00:01:09 #1701 [Verbose] > │ v16 │
00:01:09 #1702 [Verbose] > │ #endif │
00:01:09 #1703 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:09 #1704 [Verbose] > │ let v17 : System.IDisposable = { new System.IDisposable with member │
00:01:09 #1705 [Verbose] > │ _.Dispose () = v14 () } │
00:01:09 #1706 [Verbose] > │ v17 │
00:01:09 #1707 [Verbose] > │ #endif │
00:01:09 #1708 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:09 #1709 [Verbose] > │ let v18 : System.IDisposable = _v1 |> Option.get │
00:01:09 #1710 [Verbose] > │ use v18 = v18 │
00:01:09 #1711 [Verbose] > │ let v19 : System.IDisposable = v18 │
00:01:09 #1712 [Verbose] > │ return () │
00:01:09 #1713 [Verbose] > │ } │
00:01:09 #1714 [Verbose] > │ |> fun x -> result <- Some x │
00:01:09 #1715 [Verbose] > │ let v20 : System.Threading.Tasks.Task<unit> = result |> Option.get │
00:01:09 #1716 [Verbose] > │ let v21 : (System.Threading.Tasks.Task<unit> -> Async<unit>) = │
00:01:09 #1717 [Verbose] > │ Async.AwaitTask │
00:01:09 #1718 [Verbose] > │ let v22 : Async<unit> = v21 v20 │
00:01:09 #1719 [Verbose] > │ let v23 : (Async<unit> -> unit) = Async.RunSynchronously │
00:01:09 #1720 [Verbose] > │ v23 v22 │
00:01:09 #1721 [Verbose] > │ let v24 : int32 = v0.l0 │
00:01:09 #1722 [Verbose] > │ let v25 : string = $"%A{v24}" │
00:01:09 #1723 [Verbose] > │ System.Console.WriteLine v25 │
00:01:09 #1724 [Verbose] > │ let v26 : bool = v24 = 1 │
00:01:09 #1725 [Verbose] > │ let v28 : bool = │
00:01:09 #1726 [Verbose] > │ if v26 then │
00:01:09 #1727 [Verbose] > │ true │
00:01:09 #1728 [Verbose] > │ else │
00:01:09 #1729 [Verbose] > │ method1(v26) │
00:01:09 #1730 [Verbose] > │ let v29 : string = $"__expect / actual: %A{v24} / expected: %A{1}" │
00:01:09 #1731 [Verbose] > │ let v30 : bool = v28 = false │
00:01:09 #1732 [Verbose] > │ if v30 then │
00:01:09 #1733 [Verbose] > │ failwith<unit> v29 │
00:01:09 #1734 [Verbose] > │ method0() │
00:01:09 #1735 [Verbose] > │ │
00:01:09 #1736 [Verbose] > │ 1 │
00:01:09 #1737 [Verbose] > │ │
00:01:09 #1738 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:09 #1739 [Verbose] >
00:01:09 #1740 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:09 #1741 [Verbose] > // // test
00:01:09 #1742 [Verbose] >
00:01:09 #1743 [Verbose] > inl new_disposable_test = mut 0i32
00:01:09 #1744 [Verbose] > fun () =>
00:01:09 #1745 [Verbose] > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:01:09 #1746 [Verbose] > |> use_disposable
00:01:09 #1747 [Verbose] > |> ignore
00:01:09 #1748 [Verbose] > |> async.new_async
00:01:09 #1749 [Verbose] > |> async.run_synchronously
00:01:09 #1750 [Verbose] > *new_disposable_test |> _assert_eq 1
00:01:09 #1751 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4189-8925-8c9b35754fb1\main.spi
00:01:10 #1752 [Verbose] >
00:01:10 #1753 [Verbose] > ╭─[ 503.52ms - stdout ]────────────────────────────────────────────────────────╮
00:01:10 #1754 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:10 #1755 [Verbose] > │ and [<Struct>] US0 = │
00:01:10 #1756 [Verbose] > │ | US0_0 │
00:01:10 #1757 [Verbose] > │ | US0_1 │
00:01:10 #1758 [Verbose] > │ | US0_2 │
00:01:10 #1759 [Verbose] > │ | US0_3 │
00:01:10 #1760 [Verbose] > │ and [<Struct>] US1 = │
00:01:10 #1761 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:01:10 #1762 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:01:10 #1763 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:01:10 #1764 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:10 #1765 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:01:10 #1766 [Verbose] > │ v0.l0 <- v2 │
00:01:10 #1767 [Verbose] > │ () │
00:01:10 #1768 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:10 #1769 [Verbose] > │ v0 │
00:01:10 #1770 [Verbose] > │ and method0 () : unit = │
00:01:10 #1771 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:01:10 #1772 [Verbose] > │ let mutable result = None │
00:01:10 #1773 [Verbose] > │ async { │
00:01:10 #1774 [Verbose] > │ let v1 : System.IDisposable option = None │
00:01:10 #1775 [Verbose] > │ let mutable _v1 = v1 │
00:01:10 #1776 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:10 #1777 [Verbose] > │ let v2 : US0 = US0_0 │
00:01:10 #1778 [Verbose] > │ let v3 : US1 = US1_0(v2) │
00:01:10 #1779 [Verbose] > │ let v4 : string = $"new_disposable / target: {v3}" │
00:01:10 #1780 [Verbose] > │ let v5 : System.IDisposable = failwith<System.IDisposable> v4 │
00:01:10 #1781 [Verbose] > │ v5 │
00:01:10 #1782 [Verbose] > │ #endif │
00:01:10 #1783 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:10 #1784 [Verbose] > │ let v6 : US0 = US0_2 │
00:01:10 #1785 [Verbose] > │ let v7 : US1 = US1_0(v6) │
00:01:10 #1786 [Verbose] > │ let v8 : string = $"new_disposable / target: {v7}" │
00:01:10 #1787 [Verbose] > │ let v9 : System.IDisposable = failwith<System.IDisposable> v8 │
00:01:10 #1788 [Verbose] > │ v9 │
00:01:10 #1789 [Verbose] > │ #endif │
00:01:10 #1790 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:10 #1791 [Verbose] > │ let v10 : US0 = US0_3 │
00:01:10 #1792 [Verbose] > │ let v11 : US1 = US1_0(v10) │
00:01:10 #1793 [Verbose] > │ let v12 : string = $"new_disposable / target: {v11}" │
00:01:10 #1794 [Verbose] > │ let v13 : System.IDisposable = failwith<System.IDisposable> v12 │
00:01:10 #1795 [Verbose] > │ v13 │
00:01:10 #1796 [Verbose] > │ #endif │
00:01:10 #1797 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:10 #1798 [Verbose] > │ let v14 : (unit -> unit) = closure0(v0) │
00:01:10 #1799 [Verbose] > │ let v15 : System.IDisposable = { new System.IDisposable with member │
00:01:10 #1800 [Verbose] > │ _.Dispose () = v14 () } │
00:01:10 #1801 [Verbose] > │ v15 │
00:01:10 #1802 [Verbose] > │ #endif │
00:01:10 #1803 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:10 #1804 [Verbose] > │ let v16 : System.IDisposable = { new System.IDisposable with member │
00:01:10 #1805 [Verbose] > │ _.Dispose () = v14 () } │
00:01:10 #1806 [Verbose] > │ v16 │
00:01:10 #1807 [Verbose] > │ #endif │
00:01:10 #1808 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:10 #1809 [Verbose] > │ let v17 : System.IDisposable = { new System.IDisposable with member │
00:01:10 #1810 [Verbose] > │ _.Dispose () = v14 () } │
00:01:10 #1811 [Verbose] > │ v17 │
00:01:10 #1812 [Verbose] > │ #endif │
00:01:10 #1813 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:10 #1814 [Verbose] > │ let v18 : System.IDisposable = _v1 |> Option.get │
00:01:10 #1815 [Verbose] > │ use v18 = v18 │
00:01:10 #1816 [Verbose] > │ let v19 : System.IDisposable = v18 │
00:01:10 #1817 [Verbose] > │ return () │
00:01:10 #1818 [Verbose] > │ } │
00:01:10 #1819 [Verbose] > │ |> fun x -> result <- Some x │
00:01:10 #1820 [Verbose] > │ let v20 : Async<unit> = result |> Option.get │
00:01:10 #1821 [Verbose] > │ let v21 : (Async<unit> -> unit) = Async.RunSynchronously │
00:01:10 #1822 [Verbose] > │ v21 v20 │
00:01:10 #1823 [Verbose] > │ let v22 : int32 = v0.l0 │
00:01:10 #1824 [Verbose] > │ let v23 : string = $"%A{v22}" │
00:01:10 #1825 [Verbose] > │ System.Console.WriteLine v23 │
00:01:10 #1826 [Verbose] > │ let v24 : bool = v22 = 1 │
00:01:10 #1827 [Verbose] > │ let v26 : bool = │
00:01:10 #1828 [Verbose] > │ if v24 then │
00:01:10 #1829 [Verbose] > │ true │
00:01:10 #1830 [Verbose] > │ else │
00:01:10 #1831 [Verbose] > │ method1(v24) │
00:01:10 #1832 [Verbose] > │ let v27 : string = $"__expect / actual: %A{v22} / expected: %A{1}" │
00:01:10 #1833 [Verbose] > │ let v28 : bool = v26 = false │
00:01:10 #1834 [Verbose] > │ if v28 then │
00:01:10 #1835 [Verbose] > │ failwith<unit> v27 │
00:01:10 #1836 [Verbose] > │ method0() │
00:01:10 #1837 [Verbose] > │ │
00:01:10 #1838 [Verbose] > │ 1 │
00:01:10 #1839 [Verbose] > │ │
00:01:10 #1840 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #1841 [Verbose] >
00:01:10 #1842 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:10 #1843 [Verbose] > // // test
00:01:10 #1844 [Verbose] >
00:01:10 #1845 [Verbose] > inl new_disposable_test = mut 0i32
00:01:10 #1846 [Verbose] > fun () =>
00:01:10 #1847 [Verbose] > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1
00:01:10 #1848 [Verbose] > |> ignore
00:01:10 #1849 [Verbose] > |> async.new_async
00:01:10 #1850 [Verbose] > |> async.run_synchronously
00:01:10 #1851 [Verbose] > *new_disposable_test |> _assert_eq 0
00:01:10 #1852 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4246-4644-43627188859b\main.spi
00:01:10 #1853 [Verbose] >
00:01:10 #1854 [Verbose] > ╭─[ 570.17ms - stdout ]────────────────────────────────────────────────────────╮
00:01:10 #1855 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:10 #1856 [Verbose] > │ and [<Struct>] US0 = │
00:01:10 #1857 [Verbose] > │ | US0_0 │
00:01:10 #1858 [Verbose] > │ | US0_1 │
00:01:10 #1859 [Verbose] > │ | US0_2 │
00:01:10 #1860 [Verbose] > │ | US0_3 │
00:01:10 #1861 [Verbose] > │ and [<Struct>] US1 = │
00:01:10 #1862 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:01:10 #1863 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:01:10 #1864 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit = │
00:01:10 #1865 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:10 #1866 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:01:10 #1867 [Verbose] > │ v0.l0 <- v2 │
00:01:10 #1868 [Verbose] > │ () │
00:01:10 #1869 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:10 #1870 [Verbose] > │ v0 │
00:01:10 #1871 [Verbose] > │ and method0 () : unit = │
00:01:10 #1872 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:01:10 #1873 [Verbose] > │ let mutable result = None │
00:01:10 #1874 [Verbose] > │ async { │
00:01:10 #1875 [Verbose] > │ let v1 : System.IDisposable option = None │
00:01:10 #1876 [Verbose] > │ let mutable _v1 = v1 │
00:01:10 #1877 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:10 #1878 [Verbose] > │ let v2 : US0 = US0_0 │
00:01:10 #1879 [Verbose] > │ let v3 : US1 = US1_0(v2) │
00:01:10 #1880 [Verbose] > │ let v4 : string = $"new_disposable / target: {v3}" │
00:01:10 #1881 [Verbose] > │ let v5 : System.IDisposable = failwith<System.IDisposable> v4 │
00:01:10 #1882 [Verbose] > │ v5 │
00:01:10 #1883 [Verbose] > │ #endif │
00:01:10 #1884 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:10 #1885 [Verbose] > │ let v6 : US0 = US0_2 │
00:01:10 #1886 [Verbose] > │ let v7 : US1 = US1_0(v6) │
00:01:10 #1887 [Verbose] > │ let v8 : string = $"new_disposable / target: {v7}" │
00:01:10 #1888 [Verbose] > │ let v9 : System.IDisposable = failwith<System.IDisposable> v8 │
00:01:10 #1889 [Verbose] > │ v9 │
00:01:10 #1890 [Verbose] > │ #endif │
00:01:10 #1891 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:10 #1892 [Verbose] > │ let v10 : US0 = US0_3 │
00:01:10 #1893 [Verbose] > │ let v11 : US1 = US1_0(v10) │
00:01:10 #1894 [Verbose] > │ let v12 : string = $"new_disposable / target: {v11}" │
00:01:10 #1895 [Verbose] > │ let v13 : System.IDisposable = failwith<System.IDisposable> v12 │
00:01:10 #1896 [Verbose] > │ v13 │
00:01:10 #1897 [Verbose] > │ #endif │
00:01:10 #1898 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:10 #1899 [Verbose] > │ let v14 : (unit -> unit) = closure0(v0) │
00:01:10 #1900 [Verbose] > │ let v15 : System.IDisposable = { new System.IDisposable with member │
00:01:10 #1901 [Verbose] > │ _.Dispose () = v14 () } │
00:01:10 #1902 [Verbose] > │ v15 │
00:01:10 #1903 [Verbose] > │ #endif │
00:01:10 #1904 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:10 #1905 [Verbose] > │ let v16 : System.IDisposable = { new System.IDisposable with member │
00:01:10 #1906 [Verbose] > │ _.Dispose () = v14 () } │
00:01:10 #1907 [Verbose] > │ v16 │
00:01:10 #1908 [Verbose] > │ #endif │
00:01:10 #1909 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:10 #1910 [Verbose] > │ let v17 : System.IDisposable = { new System.IDisposable with member │
00:01:10 #1911 [Verbose] > │ _.Dispose () = v14 () } │
00:01:10 #1912 [Verbose] > │ v17 │
00:01:10 #1913 [Verbose] > │ #endif │
00:01:10 #1914 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:10 #1915 [Verbose] > │ let v18 : System.IDisposable = _v1 |> Option.get │
00:01:10 #1916 [Verbose] > │ return () │
00:01:10 #1917 [Verbose] > │ } │
00:01:10 #1918 [Verbose] > │ |> fun x -> result <- Some x │
00:01:10 #1919 [Verbose] > │ let v19 : Async<unit> = result |> Option.get │
00:01:10 #1920 [Verbose] > │ let v20 : (Async<unit> -> unit) = Async.RunSynchronously │
00:01:10 #1921 [Verbose] > │ v20 v19 │
00:01:10 #1922 [Verbose] > │ let v21 : int32 = v0.l0 │
00:01:10 #1923 [Verbose] > │ let v22 : string = $"%A{v21}" │
00:01:10 #1924 [Verbose] > │ System.Console.WriteLine v22 │
00:01:10 #1925 [Verbose] > │ let v23 : bool = v21 = 0 │
00:01:10 #1926 [Verbose] > │ let v25 : bool = │
00:01:10 #1927 [Verbose] > │ if v23 then │
00:01:10 #1928 [Verbose] > │ true │
00:01:10 #1929 [Verbose] > │ else │
00:01:10 #1930 [Verbose] > │ method1(v23) │
00:01:10 #1931 [Verbose] > │ let v26 : string = $"__expect / actual: %A{v21} / expected: %A{0}" │
00:01:10 #1932 [Verbose] > │ let v27 : bool = v25 = false │
00:01:10 #1933 [Verbose] > │ if v27 then │
00:01:10 #1934 [Verbose] > │ failwith<unit> v26 │
00:01:10 #1935 [Verbose] > │ method0() │
00:01:10 #1936 [Verbose] > │ │
00:01:10 #1937 [Verbose] > │ 0 │
00:01:10 #1938 [Verbose] > │ │
00:01:10 #1939 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #1940 [Verbose] >
00:01:10 #1941 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:10 #1942 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:10 #1943 [Verbose] > │ ## exn │
00:01:10 #1944 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:10 #1945 [Verbose] >
00:01:10 #1946 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:10 #1947 [Verbose] > nominal exn = $"exn"
00:01:11 #1948 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4308-0886-074dfd396d6a\main.spi
00:01:11 #1949 [Verbose] >
00:01:11 #1950 [Verbose] > ╭─[ 584.00ms - stdout ]────────────────────────────────────────────────────────╮
00:01:11 #1951 [Verbose] > │ () │
00:01:11 #1952 [Verbose] > │ │
00:01:11 #1953 [Verbose] > │ │
00:01:11 #1954 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1955 [Verbose] >
00:01:11 #1956 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:11 #1957 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #1958 [Verbose] > │ ## try │
00:01:11 #1959 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1960 [Verbose] >
00:01:11 #1961 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:11 #1962 [Verbose] > inl try forall t. (fn : () -> t) (ex_fn : exn -> ()) : option t =
00:01:11 #1963 [Verbose] > inl none = None : option t
00:01:11 #1964 [Verbose] > inl some (s : t) = Some s
00:01:11 #1965 [Verbose] > $'try !fn () |> !some with ex -> !ex_fn ex; !none '
00:01:11 #1966 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4367-6778-6408da12d6ec\main.spi
00:01:11 #1967 [Verbose] >
00:01:11 #1968 [Verbose] > ╭─[ 227.36ms - stdout ]────────────────────────────────────────────────────────╮
00:01:11 #1969 [Verbose] > │ () │
00:01:11 #1970 [Verbose] > │ │
00:01:11 #1971 [Verbose] > │ │
00:01:11 #1972 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1973 [Verbose] >
00:01:11 #1974 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:11 #1975 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #1976 [Verbose] > │ ## sleep │
00:01:11 #1977 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1978 [Verbose] >
00:01:11 #1979 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:11 #1980 [Verbose] > inl sleep (n : i32) : () =
00:01:11 #1981 [Verbose] > run_target function
00:01:11 #1982 [Verbose] > | Fsharp (Native) => fun () => $'System.Threading.Thread.Sleep' n
00:01:11 #1983 [Verbose] > | _ => fun () => ()
00:01:11 #1984 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4391-9108-94db06f55eca\main.spi
00:01:11 #1985 [Verbose] >
00:01:11 #1986 [Verbose] > ╭─[ 192.90ms - stdout ]────────────────────────────────────────────────────────╮
00:01:11 #1987 [Verbose] > │ () │
00:01:11 #1988 [Verbose] > │ │
00:01:11 #1989 [Verbose] > │ │
00:01:11 #1990 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1991 [Verbose] >
00:01:11 #1992 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:11 #1993 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:11 #1994 [Verbose] > │ ## retry_fn │
00:01:11 #1995 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:11 #1996 [Verbose] >
00:01:11 #1997 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:11 #1998 [Verbose] > inl retry_fn forall t. retries (fn : () -> t) : option t =
00:01:11 #1999 [Verbose] > let rec loop retry =
00:01:11 #2000 [Verbose] > try
00:01:11 #2001 [Verbose] > fun () =>
00:01:11 #2002 [Verbose] > if retry < retries
00:01:11 #2003 [Verbose] > then fn () |> Some
00:01:11 #2004 [Verbose] > else None
00:01:11 #2005 [Verbose] > fun ex =>
00:01:11 #2006 [Verbose] > let getLocals () = $"retry: {retry} / ex: {ex |>
00:01:11 #2007 [Verbose] > SpiralSm.format_exception} / {getLocals ()}"
00:01:11 #2008 [Verbose] > // trace Warning (fun () => "retry_fn") getLocals
00:01:11 #2009 [Verbose] > sleep 1
00:01:11 #2010 [Verbose] > |> function
00:01:11 #2011 [Verbose] > | Some x => x
00:01:11 #2012 [Verbose] > | None => loop (retry + 1)
00:01:11 #2013 [Verbose] > loop 0
00:01:11 #2014 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4410-1081-133e9ab33dfb\main.spi
00:01:12 #2015 [Verbose] >
00:01:12 #2016 [Verbose] > ╭─[ 248.59ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #2017 [Verbose] > │ () │
00:01:12 #2018 [Verbose] > │ │
00:01:12 #2019 [Verbose] > │ │
00:01:12 #2020 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2021 [Verbose] >
00:01:12 #2022 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #2023 [Verbose] > // // test
00:01:12 #2024 [Verbose] >
00:01:12 #2025 [Verbose] > inl retry_fn_test = mut 0i32
00:01:12 #2026 [Verbose] > fun () =>
00:01:12 #2027 [Verbose] > retry_fn_test <- *retry_fn_test + 1
00:01:12 #2028 [Verbose] > *retry_fn_test
00:01:12 #2029 [Verbose] > |> retry_fn 3i32
00:01:12 #2030 [Verbose] > |> _assert_eq (Some 1i32)
00:01:12 #2031 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4435-3588-3f7693ef1a42\main.spi
00:01:12 #2032 [Verbose] >
00:01:12 #2033 [Verbose] > ╭─[ 324.74ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #2034 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:12 #2035 [Verbose] > │ and [<Struct>] US0 = │
00:01:12 #2036 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:01:12 #2037 [Verbose] > │ | US0_1 │
00:01:12 #2038 [Verbose] > │ and [<Struct>] US1 = │
00:01:12 #2039 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:01:12 #2040 [Verbose] > │ | US1_1 │
00:01:12 #2041 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 = │
00:01:12 #2042 [Verbose] > │ let v2 : bool = v1 < 3 │
00:01:12 #2043 [Verbose] > │ if v2 then │
00:01:12 #2044 [Verbose] > │ let v3 : int32 = v0.l0 │
00:01:12 #2045 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:01:12 #2046 [Verbose] > │ v0.l0 <- v4 │
00:01:12 #2047 [Verbose] > │ let v5 : int32 = v0.l0 │
00:01:12 #2048 [Verbose] > │ US0_0(v5) │
00:01:12 #2049 [Verbose] > │ else │
00:01:12 #2050 [Verbose] > │ US0_1 │
00:01:12 #2051 [Verbose] > │ and closure1 () (v0 : US0) : US1 = │
00:01:12 #2052 [Verbose] > │ US1_0(v0) │
00:01:12 #2053 [Verbose] > │ and closure2 () (v0 : exn) : unit = │
00:01:12 #2054 [Verbose] > │ let v1 : unit option = None │
00:01:12 #2055 [Verbose] > │ let mutable _v1 = v1 │
00:01:12 #2056 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:12 #2057 [Verbose] > │ () │
00:01:12 #2058 [Verbose] > │ #endif │
00:01:12 #2059 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:12 #2060 [Verbose] > │ () │
00:01:12 #2061 [Verbose] > │ #endif │
00:01:12 #2062 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:12 #2063 [Verbose] > │ () │
00:01:12 #2064 [Verbose] > │ #endif │
00:01:12 #2065 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:12 #2066 [Verbose] > │ let v2 : (int32 -> unit) = System.Threading.Thread.Sleep │
00:01:12 #2067 [Verbose] > │ v2 1 │
00:01:12 #2068 [Verbose] > │ () │
00:01:12 #2069 [Verbose] > │ #endif │
00:01:12 #2070 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:12 #2071 [Verbose] > │ () │
00:01:12 #2072 [Verbose] > │ #endif │
00:01:12 #2073 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:12 #2074 [Verbose] > │ () │
00:01:12 #2075 [Verbose] > │ #endif │
00:01:12 #2076 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:12 #2077 [Verbose] > │ _v1 |> Option.get │
00:01:12 #2078 [Verbose] > │ () │
00:01:12 #2079 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 = │
00:01:12 #2080 [Verbose] > │ let v2 : (unit -> US0) = closure0(v0, v1) │
00:01:12 #2081 [Verbose] > │ let v3 : (US0 -> US1) = closure1() │
00:01:12 #2082 [Verbose] > │ let v4 : (exn -> unit) = closure2() │
00:01:12 #2083 [Verbose] > │ let v5 : US1 = US1_1 │
00:01:12 #2084 [Verbose] > │ let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5 │
00:01:12 #2085 [Verbose] > │ match v6 with │
00:01:12 #2086 [Verbose] > │ | US1_1 -> (* None *) │
00:01:12 #2087 [Verbose] > │ let v8 : int32 = v1 + 1 │
00:01:12 #2088 [Verbose] > │ method1(v0, v8) │
00:01:12 #2089 [Verbose] > │ | US1_0(v7) -> (* Some *) │
00:01:12 #2090 [Verbose] > │ v7 │
00:01:12 #2091 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:12 #2092 [Verbose] > │ v0 │
00:01:12 #2093 [Verbose] > │ and method0 () : unit = │
00:01:12 #2094 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:01:12 #2095 [Verbose] > │ let v1 : int32 = 0 │
00:01:12 #2096 [Verbose] > │ let v2 : US0 = method1(v0, v1) │
00:01:12 #2097 [Verbose] > │ let v3 : string = $"%A{v2}" │
00:01:12 #2098 [Verbose] > │ System.Console.WriteLine v3 │
00:01:12 #2099 [Verbose] > │ let v7 : bool = │
00:01:12 #2100 [Verbose] > │ match v2 with │
00:01:12 #2101 [Verbose] > │ | US0_0(v5) -> (* Some *) │
00:01:12 #2102 [Verbose] > │ let v6 : bool = v5 = 1 │
00:01:12 #2103 [Verbose] > │ v6 │
00:01:12 #2104 [Verbose] > │ | _ -> │
00:01:12 #2105 [Verbose] > │ false │
00:01:12 #2106 [Verbose] > │ let v9 : bool = │
00:01:12 #2107 [Verbose] > │ if v7 then │
00:01:12 #2108 [Verbose] > │ true │
00:01:12 #2109 [Verbose] > │ else │
00:01:12 #2110 [Verbose] > │ method2(v7) │
00:01:12 #2111 [Verbose] > │ let v10 : US0 = US0_0(1) │
00:01:12 #2112 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}" │
00:01:12 #2113 [Verbose] > │ let v12 : bool = v9 = false │
00:01:12 #2114 [Verbose] > │ if v12 then │
00:01:12 #2115 [Verbose] > │ failwith<unit> v11 │
00:01:12 #2116 [Verbose] > │ method0() │
00:01:12 #2117 [Verbose] > │ │
00:01:12 #2118 [Verbose] > │ US0_0 1 │
00:01:12 #2119 [Verbose] > │ │
00:01:12 #2120 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2121 [Verbose] >
00:01:12 #2122 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #2123 [Verbose] > // // test
00:01:12 #2124 [Verbose] >
00:01:12 #2125 [Verbose] > inl retry_fn_test = mut 0i32
00:01:12 #2126 [Verbose] > fun () =>
00:01:12 #2127 [Verbose] > if *retry_fn_test >= 2
00:01:12 #2128 [Verbose] > then *retry_fn_test
00:01:12 #2129 [Verbose] > else
00:01:12 #2130 [Verbose] > retry_fn_test <- *retry_fn_test + 1
00:01:12 #2131 [Verbose] > failwith "test"
00:01:12 #2132 [Verbose] > |> retry_fn 3i32
00:01:12 #2133 [Verbose] > |> _assert_eq (Some 2i32)
00:01:12 #2134 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4473-7303-7e5f9064adf2\main.spi
00:01:12 #2135 [Verbose] >
00:01:12 #2136 [Verbose] > ╭─[ 356.63ms - stdout ]────────────────────────────────────────────────────────╮
00:01:12 #2137 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:12 #2138 [Verbose] > │ and [<Struct>] US0 = │
00:01:12 #2139 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:01:12 #2140 [Verbose] > │ | US0_1 │
00:01:12 #2141 [Verbose] > │ and [<Struct>] US1 = │
00:01:12 #2142 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:01:12 #2143 [Verbose] > │ | US1_1 │
00:01:12 #2144 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 = │
00:01:12 #2145 [Verbose] > │ let v2 : bool = v1 < 3 │
00:01:12 #2146 [Verbose] > │ if v2 then │
00:01:12 #2147 [Verbose] > │ let v3 : int32 = v0.l0 │
00:01:12 #2148 [Verbose] > │ let v4 : bool = v3 >= 2 │
00:01:12 #2149 [Verbose] > │ let v9 : int32 = │
00:01:12 #2150 [Verbose] > │ if v4 then │
00:01:12 #2151 [Verbose] > │ let v5 : int32 = v0.l0 │
00:01:12 #2152 [Verbose] > │ v5 │
00:01:12 #2153 [Verbose] > │ else │
00:01:12 #2154 [Verbose] > │ let v6 : int32 = v0.l0 │
00:01:12 #2155 [Verbose] > │ let v7 : int32 = v6 + 1 │
00:01:12 #2156 [Verbose] > │ v0.l0 <- v7 │
00:01:12 #2157 [Verbose] > │ failwith<int32> "test" │
00:01:12 #2158 [Verbose] > │ US0_0(v9) │
00:01:12 #2159 [Verbose] > │ else │
00:01:12 #2160 [Verbose] > │ US0_1 │
00:01:12 #2161 [Verbose] > │ and closure1 () (v0 : US0) : US1 = │
00:01:12 #2162 [Verbose] > │ US1_0(v0) │
00:01:12 #2163 [Verbose] > │ and closure2 () (v0 : exn) : unit = │
00:01:12 #2164 [Verbose] > │ let v1 : unit option = None │
00:01:12 #2165 [Verbose] > │ let mutable _v1 = v1 │
00:01:12 #2166 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:12 #2167 [Verbose] > │ () │
00:01:12 #2168 [Verbose] > │ #endif │
00:01:12 #2169 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:12 #2170 [Verbose] > │ () │
00:01:12 #2171 [Verbose] > │ #endif │
00:01:12 #2172 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:12 #2173 [Verbose] > │ () │
00:01:12 #2174 [Verbose] > │ #endif │
00:01:12 #2175 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:12 #2176 [Verbose] > │ let v2 : (int32 -> unit) = System.Threading.Thread.Sleep │
00:01:12 #2177 [Verbose] > │ v2 1 │
00:01:12 #2178 [Verbose] > │ () │
00:01:12 #2179 [Verbose] > │ #endif │
00:01:12 #2180 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:12 #2181 [Verbose] > │ () │
00:01:12 #2182 [Verbose] > │ #endif │
00:01:12 #2183 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:12 #2184 [Verbose] > │ () │
00:01:12 #2185 [Verbose] > │ #endif │
00:01:12 #2186 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:12 #2187 [Verbose] > │ _v1 |> Option.get │
00:01:12 #2188 [Verbose] > │ () │
00:01:12 #2189 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 = │
00:01:12 #2190 [Verbose] > │ let v2 : (unit -> US0) = closure0(v0, v1) │
00:01:12 #2191 [Verbose] > │ let v3 : (US0 -> US1) = closure1() │
00:01:12 #2192 [Verbose] > │ let v4 : (exn -> unit) = closure2() │
00:01:12 #2193 [Verbose] > │ let v5 : US1 = US1_1 │
00:01:12 #2194 [Verbose] > │ let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5 │
00:01:12 #2195 [Verbose] > │ match v6 with │
00:01:12 #2196 [Verbose] > │ | US1_1 -> (* None *) │
00:01:12 #2197 [Verbose] > │ let v8 : int32 = v1 + 1 │
00:01:12 #2198 [Verbose] > │ method1(v0, v8) │
00:01:12 #2199 [Verbose] > │ | US1_0(v7) -> (* Some *) │
00:01:12 #2200 [Verbose] > │ v7 │
00:01:12 #2201 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:12 #2202 [Verbose] > │ v0 │
00:01:12 #2203 [Verbose] > │ and method0 () : unit = │
00:01:12 #2204 [Verbose] > │ let v0 : Mut0 = {l0 = 0} : Mut0 │
00:01:12 #2205 [Verbose] > │ let v1 : int32 = 0 │
00:01:12 #2206 [Verbose] > │ let v2 : US0 = method1(v0, v1) │
00:01:12 #2207 [Verbose] > │ let v3 : string = $"%A{v2}" │
00:01:12 #2208 [Verbose] > │ System.Console.WriteLine v3 │
00:01:12 #2209 [Verbose] > │ let v7 : bool = │
00:01:12 #2210 [Verbose] > │ match v2 with │
00:01:12 #2211 [Verbose] > │ | US0_0(v5) -> (* Some *) │
00:01:12 #2212 [Verbose] > │ let v6 : bool = v5 = 2 │
00:01:12 #2213 [Verbose] > │ v6 │
00:01:12 #2214 [Verbose] > │ | _ -> │
00:01:12 #2215 [Verbose] > │ false │
00:01:12 #2216 [Verbose] > │ let v9 : bool = │
00:01:12 #2217 [Verbose] > │ if v7 then │
00:01:12 #2218 [Verbose] > │ true │
00:01:12 #2219 [Verbose] > │ else │
00:01:12 #2220 [Verbose] > │ method2(v7) │
00:01:12 #2221 [Verbose] > │ let v10 : US0 = US0_0(2) │
00:01:12 #2222 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}" │
00:01:12 #2223 [Verbose] > │ let v12 : bool = v9 = false │
00:01:12 #2224 [Verbose] > │ if v12 then │
00:01:12 #2225 [Verbose] > │ failwith<unit> v11 │
00:01:12 #2226 [Verbose] > │ method0() │
00:01:12 #2227 [Verbose] > │ │
00:01:12 #2228 [Verbose] > │ US0_0 2 │
00:01:12 #2229 [Verbose] > │ │
00:01:12 #2230 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2231 [Verbose] >
00:01:12 #2232 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:12 #2233 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:12 #2234 [Verbose] > │ ## main │
00:01:12 #2235 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #2236 [Verbose] >
00:01:12 #2237 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:12 #2238 [Verbose] > inl main () =
00:01:12 #2239 [Verbose] > inl retry_fn (r : i32) (x : () -> _) : optionm'.option' () =
00:01:12 #2240 [Verbose] > retry_fn r x |> optionm'.box
00:01:12 #2241 [Verbose] > $"let new_disposable x = !new_disposable x" : ()
00:01:12 #2242 [Verbose] > $"let retry_fn x = !retry_fn x" : ()
00:01:13 #2243 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4514-1451-16a04e6683b4\main.spi
00:01:13 #2244 [Verbose] >
00:01:13 #2245 [Verbose] > ╭─[ 383.56ms - stdout ]────────────────────────────────────────────────────────╮
00:01:13 #2246 [Verbose] > │ type [<Struct>] US0 = │
00:01:13 #2247 [Verbose] > │ | US0_0 │
00:01:13 #2248 [Verbose] > │ | US0_1 │
00:01:13 #2249 [Verbose] > │ | US0_2 │
00:01:13 #2250 [Verbose] > │ | US0_3 │
00:01:13 #2251 [Verbose] > │ and [<Struct>] US1 = │
00:01:13 #2252 [Verbose] > │ | US1_0 of f0_0 : US0 │
00:01:13 #2253 [Verbose] > │ | US1_1 of f1_0 : US0 │
00:01:13 #2254 [Verbose] > │ and [<Struct>] US2 = │
00:01:13 #2255 [Verbose] > │ | US2_0 │
00:01:13 #2256 [Verbose] > │ | US2_1 │
00:01:13 #2257 [Verbose] > │ and [<Struct>] US3 = │
00:01:13 #2258 [Verbose] > │ | US3_0 of f0_0 : US2 │
00:01:13 #2259 [Verbose] > │ | US3_1 │
00:01:13 #2260 [Verbose] > │ let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable = │
00:01:13 #2261 [Verbose] > │ let v1 : System.IDisposable option = None │
00:01:13 #2262 [Verbose] > │ let mutable _v1 = v1 │
00:01:13 #2263 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:13 #2264 [Verbose] > │ let v2 : US0 = US0_0 │
00:01:13 #2265 [Verbose] > │ let v3 : US1 = US1_0(v2) │
00:01:13 #2266 [Verbose] > │ let v4 : string = $"new_disposable / target: {v3}" │
00:01:13 #2267 [Verbose] > │ let v5 : System.IDisposable = failwith<System.IDisposable> v4 │
00:01:13 #2268 [Verbose] > │ v5 │
00:01:13 #2269 [Verbose] > │ #endif │
00:01:13 #2270 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:13 #2271 [Verbose] > │ let v6 : US0 = US0_2 │
00:01:13 #2272 [Verbose] > │ let v7 : US1 = US1_0(v6) │
00:01:13 #2273 [Verbose] > │ let v8 : string = $"new_disposable / target: {v7}" │
00:01:13 #2274 [Verbose] > │ let v9 : System.IDisposable = failwith<System.IDisposable> v8 │
00:01:13 #2275 [Verbose] > │ v9 │
00:01:13 #2276 [Verbose] > │ #endif │
00:01:13 #2277 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:13 #2278 [Verbose] > │ let v10 : US0 = US0_3 │
00:01:13 #2279 [Verbose] > │ let v11 : US1 = US1_0(v10) │
00:01:13 #2280 [Verbose] > │ let v12 : string = $"new_disposable / target: {v11}" │
00:01:13 #2281 [Verbose] > │ let v13 : System.IDisposable = failwith<System.IDisposable> v12 │
00:01:13 #2282 [Verbose] > │ v13 │
00:01:13 #2283 [Verbose] > │ #endif │
00:01:13 #2284 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2285 [Verbose] > │ let v14 : System.IDisposable = { new System.IDisposable with member │
00:01:13 #2286 [Verbose] > │ _.Dispose () = v0 () } │
00:01:13 #2287 [Verbose] > │ v14 │
00:01:13 #2288 [Verbose] > │ #endif │
00:01:13 #2289 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2290 [Verbose] > │ let v15 : System.IDisposable = { new System.IDisposable with member │
00:01:13 #2291 [Verbose] > │ _.Dispose () = v0 () } │
00:01:13 #2292 [Verbose] > │ v15 │
00:01:13 #2293 [Verbose] > │ #endif │
00:01:13 #2294 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:13 #2295 [Verbose] > │ let v16 : System.IDisposable = { new System.IDisposable with member │
00:01:13 #2296 [Verbose] > │ _.Dispose () = v0 () } │
00:01:13 #2297 [Verbose] > │ v16 │
00:01:13 #2298 [Verbose] > │ #endif │
00:01:13 #2299 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:13 #2300 [Verbose] > │ let v17 : System.IDisposable = _v1 |> Option.get │
00:01:13 #2301 [Verbose] > │ v17 │
00:01:13 #2302 [Verbose] > │ and closure3 (v0 : int32, v1 : (unit -> unit), v2 : int32) () : US2 = │
00:01:13 #2303 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:13 #2304 [Verbose] > │ if v3 then │
00:01:13 #2305 [Verbose] > │ v1 () │
00:01:13 #2306 [Verbose] > │ US2_0 │
00:01:13 #2307 [Verbose] > │ else │
00:01:13 #2308 [Verbose] > │ US2_1 │
00:01:13 #2309 [Verbose] > │ and closure4 () (v0 : US2) : US3 = │
00:01:13 #2310 [Verbose] > │ US3_0(v0) │
00:01:13 #2311 [Verbose] > │ and closure5 () (v0 : exn) : unit = │
00:01:13 #2312 [Verbose] > │ let v1 : unit option = None │
00:01:13 #2313 [Verbose] > │ let mutable _v1 = v1 │
00:01:13 #2314 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:13 #2315 [Verbose] > │ () │
00:01:13 #2316 [Verbose] > │ #endif │
00:01:13 #2317 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:13 #2318 [Verbose] > │ () │
00:01:13 #2319 [Verbose] > │ #endif │
00:01:13 #2320 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:13 #2321 [Verbose] > │ () │
00:01:13 #2322 [Verbose] > │ #endif │
00:01:13 #2323 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2324 [Verbose] > │ let v2 : (int32 -> unit) = System.Threading.Thread.Sleep │
00:01:13 #2325 [Verbose] > │ v2 1 │
00:01:13 #2326 [Verbose] > │ () │
00:01:13 #2327 [Verbose] > │ #endif │
00:01:13 #2328 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:13 #2329 [Verbose] > │ () │
00:01:13 #2330 [Verbose] > │ #endif │
00:01:13 #2331 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:13 #2332 [Verbose] > │ () │
00:01:13 #2333 [Verbose] > │ #endif │
00:01:13 #2334 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:01:13 #2335 [Verbose] > │ _v1 |> Option.get │
00:01:13 #2336 [Verbose] > │ () │
00:01:13 #2337 [Verbose] > │ and method0 (v0 : int32, v1 : (unit -> unit), v2 : int32) : US2 = │
00:01:13 #2338 [Verbose] > │ let v3 : (unit -> US2) = closure3(v0, v1, v2) │
00:01:13 #2339 [Verbose] > │ let v4 : (US2 -> US3) = closure4() │
00:01:13 #2340 [Verbose] > │ let v5 : (exn -> unit) = closure5() │
00:01:13 #2341 [Verbose] > │ let v6 : US3 = US3_1 │
00:01:13 #2342 [Verbose] > │ let v7 : US3 = try v3 () |> v4 with ex -> v5 ex; v6 │
00:01:13 #2343 [Verbose] > │ match v7 with │
00:01:13 #2344 [Verbose] > │ | US3_1 -> (* None *) │
00:01:13 #2345 [Verbose] > │ let v9 : int32 = v2 + 1 │
00:01:13 #2346 [Verbose] > │ method0(v0, v1, v9) │
00:01:13 #2347 [Verbose] > │ | US3_0(v8) -> (* Some *) │
00:01:13 #2348 [Verbose] > │ v8 │
00:01:13 #2349 [Verbose] > │ and closure2 (v0 : int32) (v1 : (unit -> unit)) : unit option = │
00:01:13 #2350 [Verbose] > │ let v2 : int32 = 0 │
00:01:13 #2351 [Verbose] > │ let v3 : US2 = method0(v0, v1, v2) │
00:01:13 #2352 [Verbose] > │ match v3 with │
00:01:13 #2353 [Verbose] > │ | US2_1 -> (* None *) │
00:01:13 #2354 [Verbose] > │ let v5 : unit option = None │
00:01:13 #2355 [Verbose] > │ v5 │
00:01:13 #2356 [Verbose] > │ | US2_0 -> (* Some *) │
00:01:13 #2357 [Verbose] > │ let v4 : unit option = Some () │
00:01:13 #2358 [Verbose] > │ v4 │
00:01:13 #2359 [Verbose] > │ and closure1 () (v0 : int32) : ((unit -> unit) -> unit option) = │
00:01:13 #2360 [Verbose] > │ closure2(v0) │
00:01:13 #2361 [Verbose] > │ let v0 : ((unit -> unit) -> System.IDisposable) = closure0() │
00:01:13 #2362 [Verbose] > │ let new_disposable x = v0 x │
00:01:13 #2363 [Verbose] > │ let v1 : (int32 -> ((unit -> unit) -> unit option)) = closure1() │
00:01:13 #2364 [Verbose] > │ let retry_fn x = v1 x │
00:01:13 #2365 [Verbose] > │ () │
00:01:13 #2366 [Verbose] > │ │
00:01:13 #2367 [Verbose] > │ │
00:01:13 #2368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:15 #2369 [Verbose] > [NbConvertApp] Converting notebook common.dib.ipynb to html
00:01:15 #2370 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:15 #2371 [Verbose] > validate(nb)
00:01:16 #2372 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:16 #2373 [Verbose] > return _pygments_highlight(
00:01:16 #2374 [Verbose] > [NbConvertApp] Writing 420165 bytes to common.dib.html
00:01:17 #2375 [Debug] executeAsync / exitCode: 0 / output.Length: 132258
00:01:17 #2376 [Debug] main / executeCommand / exitCode: 0
00:01:17 #2377 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 console.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:20 #2378 [Verbose] >
00:01:20 #2379 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:20 #2380 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:20 #2381 [Verbose] > │ # console │
00:01:20 #2382 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:20 #2383 [Verbose] >
00:01:20 #2384 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:20 #2385 [Verbose] > // // test
00:01:20 #2386 [Verbose] >
00:01:20 #2387 [Verbose] > open testing
00:01:24 #2388 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5579-7986-77fa09684f42\main.spi
00:01:25 #2389 [Verbose] >
00:01:25 #2390 [Verbose] > ╭─[ 4.65s - stdout ]───────────────────────────────────────────────────────────╮
00:01:25 #2391 [Verbose] > │ () │
00:01:25 #2392 [Verbose] > │ │
00:01:25 #2393 [Verbose] > │ │
00:01:25 #2394 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #2395 [Verbose] >
00:01:25 #2396 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:25 #2397 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:25 #2398 [Verbose] > │ ## write_line │
00:01:25 #2399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #2400 [Verbose] >
00:01:25 #2401 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #2402 [Verbose] > inl write_line obj : () =
00:01:25 #2403 [Verbose] > $"System.Console.WriteLine !obj"
00:01:25 #2404 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5762-6274-691734be8360\main.spi
00:01:25 #2405 [Verbose] >
00:01:25 #2406 [Verbose] > ╭─[ 222.59ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #2407 [Verbose] > │ () │
00:01:25 #2408 [Verbose] > │ │
00:01:25 #2409 [Verbose] > │ │
00:01:25 #2410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #2411 [Verbose] >
00:01:25 #2412 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #2413 [Verbose] > inl write_line_ ~obj : () =
00:01:25 #2414 [Verbose] > $"System.Console.WriteLine !obj"
00:01:25 #2415 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5784-8465-8436e7d25500\main.spi
00:01:25 #2416 [Verbose] >
00:01:25 #2417 [Verbose] > ╭─[ 211.97ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #2418 [Verbose] > │ () │
00:01:25 #2419 [Verbose] > │ │
00:01:25 #2420 [Verbose] > │ │
00:01:25 #2421 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:25 #2422 [Verbose] >
00:01:25 #2423 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:25 #2424 [Verbose] > nominal console_color = $"System.ConsoleColor"
00:01:25 #2425 [Verbose] >
00:01:25 #2426 [Verbose] > inl reset_color () : () =
00:01:25 #2427 [Verbose] > run_target function
00:01:25 #2428 [Verbose] > | Fsharp => fun () => $"System.Console.ResetColor ()"
00:01:25 #2429 [Verbose] > | _ => fun () => ()
00:01:25 #2430 [Verbose] >
00:01:25 #2431 [Verbose] > inl set_foreground_color (color : console_color) : () =
00:01:25 #2432 [Verbose] > run_target function
00:01:25 #2433 [Verbose] > | Fsharp => fun () => $"System.Console.ForegroundColor <- !color"
00:01:25 #2434 [Verbose] > | _ => fun () => ()
00:01:25 #2435 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5806-0612-0404de901d19\main.spi
00:01:25 #2436 [Verbose] >
00:01:25 #2437 [Verbose] > ╭─[ 203.44ms - stdout ]────────────────────────────────────────────────────────╮
00:01:25 #2438 [Verbose] > │ () │
00:01:25 #2439 [Verbose] > │ │
00:01:25 #2440 [Verbose] > │ │
00:01:25 #2441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #2442 [Verbose] > [NbConvertApp] Converting notebook console.dib.ipynb to html
00:01:28 #2443 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:28 #2444 [Verbose] > validate(nb)
00:01:28 #2445 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:28 #2446 [Verbose] > return _pygments_highlight(
00:01:29 #2447 [Verbose] > [NbConvertApp] Writing 276933 bytes to console.dib.html
00:01:30 #2448 [Debug] executeAsync / exitCode: 0 / output.Length: 3869
00:01:30 #2449 [Debug] main / executeCommand / exitCode: 0
00:01:30 #2450 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 date_time.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:01:33 #2451 [Verbose] >
00:01:33 #2452 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:33 #2453 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:33 #2454 [Verbose] > │ # date_time │
00:01:33 #2455 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:33 #2456 [Verbose] >
00:01:33 #2457 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:33 #2458 [Verbose] > open rust_operators
00:01:33 #2459 [Verbose] > open sm'_operators
00:01:36 #2460 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-0801-0124-08a06a5af62c\main.spi
00:01:37 #2461 [Verbose] >
00:01:37 #2462 [Verbose] > ╭─[ 4.36s - stdout ]───────────────────────────────────────────────────────────╮
00:01:37 #2463 [Verbose] > │ () │
00:01:37 #2464 [Verbose] > │ │
00:01:37 #2465 [Verbose] > │ │
00:01:37 #2466 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #2467 [Verbose] >
00:01:37 #2468 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:37 #2469 [Verbose] > // // test
00:01:37 #2470 [Verbose] >
00:01:37 #2471 [Verbose] > open testing
00:01:37 #2472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-0975-7573-75e6957ddda2\main.spi
00:01:37 #2473 [Verbose] >
00:01:37 #2474 [Verbose] > ╭─[ 215.49ms - stdout ]────────────────────────────────────────────────────────╮
00:01:37 #2475 [Verbose] > │ () │
00:01:37 #2476 [Verbose] > │ │
00:01:37 #2477 [Verbose] > │ │
00:01:37 #2478 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #2479 [Verbose] >
00:01:37 #2480 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:37 #2481 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:37 #2482 [Verbose] > │ ## types │
00:01:37 #2483 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #2484 [Verbose] >
00:01:37 #2485 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:37 #2486 [Verbose] > inl types () =
00:01:37 #2487 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::DateTime<$0>\")>]]
00:01:37 #2488 [Verbose] > type chrono_DateTime<'T> = class end"
00:01:37 #2489 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Local\")>]] type
00:01:37 #2490 [Verbose] > chrono_Local = class end"
00:01:37 #2491 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::NaiveDateTime\")>]]
00:01:37 #2492 [Verbose] > type chrono_NaiveDateTime = class end"
00:01:37 #2493 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Utc\")>]] type
00:01:37 #2494 [Verbose] > chrono_Utc = class end"
00:01:37 #2495 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::time::Duration\")>]]
00:01:37 #2496 [Verbose] > type std_time_Duration = class end"
00:01:37 #2497 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-0997-9787-90ddf760d615\main.spi
00:01:37 #2498 [Verbose] >
00:01:37 #2499 [Verbose] > ╭─[ 196.73ms - stdout ]────────────────────────────────────────────────────────╮
00:01:37 #2500 [Verbose] > │ () │
00:01:37 #2501 [Verbose] > │ │
00:01:37 #2502 [Verbose] > │ │
00:01:37 #2503 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #2504 [Verbose] >
00:01:37 #2505 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:37 #2506 [Verbose] > nominal timestamp = i64
00:01:37 #2507 [Verbose] > nominal duration = $"std_time_Duration"
00:01:37 #2508 [Verbose] > nominal date_time = $"System.DateTime"
00:01:37 #2509 [Verbose] > nominal date_time' t = $"chrono_DateTime<`t>"
00:01:37 #2510 [Verbose] > nominal local = $"chrono_Local"
00:01:37 #2511 [Verbose] > nominal naive_date_time = $"chrono_NaiveDateTime"
00:01:37 #2512 [Verbose] > nominal utc = $"chrono_Utc"
00:01:38 #2513 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1017-1748-142abdb69cb4\main.spi
00:01:38 #2514 [Verbose] >
00:01:38 #2515 [Verbose] > ╭─[ 196.84ms - stdout ]────────────────────────────────────────────────────────╮
00:01:38 #2516 [Verbose] > │ () │
00:01:38 #2517 [Verbose] > │ │
00:01:38 #2518 [Verbose] > │ │
00:01:38 #2519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2520 [Verbose] >
00:01:38 #2521 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #2522 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #2523 [Verbose] > │ ## naive_utc │
00:01:38 #2524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2525 [Verbose] >
00:01:38 #2526 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #2527 [Verbose] > inl naive_utc (date_time : date_time' utc) : naive_date_time =
00:01:38 #2528 [Verbose] > inl date_time = join date_time
00:01:38 #2529 [Verbose] > !\($'"!date_time.naive_utc()"')
00:01:38 #2530 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1037-3752-39051336dc14\main.spi
00:01:38 #2531 [Verbose] >
00:01:38 #2532 [Verbose] > ╭─[ 215.32ms - stdout ]────────────────────────────────────────────────────────╮
00:01:38 #2533 [Verbose] > │ () │
00:01:38 #2534 [Verbose] > │ │
00:01:38 #2535 [Verbose] > │ │
00:01:38 #2536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2537 [Verbose] >
00:01:38 #2538 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #2539 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #2540 [Verbose] > │ ## to_local │
00:01:38 #2541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2542 [Verbose] >
00:01:38 #2543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #2544 [Verbose] > inl to_local (date_time : date_time' utc) : date_time' local =
00:01:38 #2545 [Verbose] > inl naive_date_time = date_time |> naive_utc
00:01:38 #2546 [Verbose] > !\($'"chrono::offset::TimeZone::from_utc_datetime(&chrono::Local,
00:01:38 #2547 [Verbose] > &!naive_date_time)"')
00:01:38 #2548 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1060-6013-66ebc226294d\main.spi
00:01:38 #2549 [Verbose] >
00:01:38 #2550 [Verbose] > ╭─[ 215.03ms - stdout ]────────────────────────────────────────────────────────╮
00:01:38 #2551 [Verbose] > │ () │
00:01:38 #2552 [Verbose] > │ │
00:01:38 #2553 [Verbose] > │ │
00:01:38 #2554 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2555 [Verbose] >
00:01:38 #2556 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #2557 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #2558 [Verbose] > │ ## from_timestamp' │
00:01:38 #2559 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2560 [Verbose] >
00:01:38 #2561 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #2562 [Verbose] > inl from_timestamp' forall t {number; int}. (timestamp : t) : option (date_time'
00:01:38 #2563 [Verbose] > utc) =
00:01:38 #2564 [Verbose] > inl timestamp = join timestamp
00:01:38 #2565 [Verbose] > inl result : optionm'.option' (date_time' utc) =
00:01:38 #2566 [Verbose] > !\($'"chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)"')
00:01:38 #2567 [Verbose] > result |> optionm'.unbox
00:01:38 #2568 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1082-8214-8b4bb9a76fbd\main.spi
00:01:38 #2569 [Verbose] >
00:01:38 #2570 [Verbose] > ╭─[ 194.22ms - stdout ]────────────────────────────────────────────────────────╮
00:01:38 #2571 [Verbose] > │ () │
00:01:38 #2572 [Verbose] > │ │
00:01:38 #2573 [Verbose] > │ │
00:01:38 #2574 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2575 [Verbose] >
00:01:38 #2576 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #2577 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #2578 [Verbose] > │ ## ticks │
00:01:38 #2579 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2580 [Verbose] >
00:01:38 #2581 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #2582 [Verbose] > inl ticks (date_time : date_time) : timestamp =
00:01:38 #2583 [Verbose] > date_time |> $'_.Ticks'
00:01:38 #2584 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1101-0169-04c236565409\main.spi
00:01:38 #2585 [Verbose] >
00:01:38 #2586 [Verbose] > ╭─[ 218.13ms - stdout ]────────────────────────────────────────────────────────╮
00:01:38 #2587 [Verbose] > │ () │
00:01:38 #2588 [Verbose] > │ │
00:01:38 #2589 [Verbose] > │ │
00:01:38 #2590 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2591 [Verbose] >
00:01:38 #2592 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #2593 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #2594 [Verbose] > │ ## format │
00:01:38 #2595 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #2596 [Verbose] >
00:01:38 #2597 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #2598 [Verbose] > inl format (format : string) (date_time : date_time) : string =
00:01:38 #2599 [Verbose] > $'!date_time.ToString' format
00:01:39 #2600 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1124-2411-23d201c5ccdb\main.spi
00:01:39 #2601 [Verbose] >
00:01:39 #2602 [Verbose] > ╭─[ 276.17ms - stdout ]────────────────────────────────────────────────────────╮
00:01:39 #2603 [Verbose] > │ () │
00:01:39 #2604 [Verbose] > │ │
00:01:39 #2605 [Verbose] > │ │
00:01:39 #2606 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #2607 [Verbose] >
00:01:39 #2608 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:39 #2609 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:39 #2610 [Verbose] > │ ## format_iso8601 │
00:01:39 #2611 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #2612 [Verbose] >
00:01:39 #2613 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:39 #2614 [Verbose] > inl format_iso8601 (date_time : date_time) =
00:01:39 #2615 [Verbose] > date_time |> format "yyyy-MM-ddTHH-mm-ss.fff"
00:01:39 #2616 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1152-5262-545db3ae78e2\main.spi
00:01:39 #2617 [Verbose] >
00:01:39 #2618 [Verbose] > ╭─[ 259.82ms - stdout ]────────────────────────────────────────────────────────╮
00:01:39 #2619 [Verbose] > │ () │
00:01:39 #2620 [Verbose] > │ │
00:01:39 #2621 [Verbose] > │ │
00:01:39 #2622 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #2623 [Verbose] >
00:01:39 #2624 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:39 #2625 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:39 #2626 [Verbose] > │ ## format' │
00:01:39 #2627 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #2628 [Verbose] >
00:01:39 #2629 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:39 #2630 [Verbose] > inl format' (format : string) (date_time : date_time' utc) : sm'.std_string =
00:01:39 #2631 [Verbose] > inl format = #format
00:01:39 #2632 [Verbose] > inl date_time = join date_time
00:01:39 #2633 [Verbose] > !\($'"!date_time.format(!format).to_string()"')
00:01:39 #2634 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1179-7918-7e9c5c60055f\main.spi
00:01:39 #2635 [Verbose] >
00:01:39 #2636 [Verbose] > ╭─[ 259.14ms - stdout ]────────────────────────────────────────────────────────╮
00:01:39 #2637 [Verbose] > │ () │
00:01:39 #2638 [Verbose] > │ │
00:01:39 #2639 [Verbose] > │ │
00:01:39 #2640 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #2641 [Verbose] >
00:01:39 #2642 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:39 #2643 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:39 #2644 [Verbose] > │ ## format'' │
00:01:39 #2645 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #2646 [Verbose] >
00:01:39 #2647 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:39 #2648 [Verbose] > inl format'' (format : string) (date_time : date_time' _) : sm'.std_string =
00:01:39 #2649 [Verbose] > inl format = #format
00:01:39 #2650 [Verbose] > inl date_time = join date_time
00:01:39 #2651 [Verbose] > !\($'"!date_time.format(!format).to_string()"')
00:01:39 #2652 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1205-0575-098bb32612c8\main.spi
00:01:40 #2653 [Verbose] >
00:01:40 #2654 [Verbose] > ╭─[ 265.34ms - stdout ]────────────────────────────────────────────────────────╮
00:01:40 #2655 [Verbose] > │ () │
00:01:40 #2656 [Verbose] > │ │
00:01:40 #2657 [Verbose] > │ │
00:01:40 #2658 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #2659 [Verbose] >
00:01:40 #2660 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #2661 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #2662 [Verbose] > │ ## format_timestamp │
00:01:40 #2663 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #2664 [Verbose] >
00:01:40 #2665 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #2666 [Verbose] > inl format_timestamp (timestamp : sm'.std_string) =
00:01:40 #2667 [Verbose] > inl timestamp = join timestamp
00:01:40 #2668 [Verbose] > timestamp
00:01:40 #2669 [Verbose] > |> fun x => !\($'"!x.parse().unwrap()"') : i64
00:01:40 #2670 [Verbose] > |> from_timestamp'
00:01:40 #2671 [Verbose] > |> optionm.map fun x =>
00:01:40 #2672 [Verbose] > x
00:01:40 #2673 [Verbose] > |> to_local
00:01:40 #2674 [Verbose] > |> format'' "%Y-%m-%d %H:%M:%S"
00:01:40 #2675 [Verbose] > |> sm'.from_std_string
00:01:40 #2676 [Verbose] > |> resultm.from_option
00:01:40 #2677 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1232-3295-3613fa2321cd\main.spi
00:01:40 #2678 [Verbose] >
00:01:40 #2679 [Verbose] > ╭─[ 300.57ms - stdout ]────────────────────────────────────────────────────────╮
00:01:40 #2680 [Verbose] > │ () │
00:01:40 #2681 [Verbose] > │ │
00:01:40 #2682 [Verbose] > │ │
00:01:40 #2683 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #2684 [Verbose] >
00:01:40 #2685 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #2686 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #2687 [Verbose] > │ ## duration_from_millis │
00:01:40 #2688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #2689 [Verbose] >
00:01:40 #2690 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #2691 [Verbose] > inl duration_from_millis (ms : u64) : duration =
00:01:40 #2692 [Verbose] > inl ms = join ms
00:01:40 #2693 [Verbose] > !\($'"std::time::Duration::from_millis(!ms)"')
00:01:40 #2694 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1263-6378-6520ff84944a\main.spi
00:01:40 #2695 [Verbose] >
00:01:40 #2696 [Verbose] > ╭─[ 352.28ms - stdout ]────────────────────────────────────────────────────────╮
00:01:40 #2697 [Verbose] > │ () │
00:01:40 #2698 [Verbose] > │ │
00:01:40 #2699 [Verbose] > │ │
00:01:40 #2700 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #2701 [Verbose] >
00:01:40 #2702 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:40 #2703 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:40 #2704 [Verbose] > │ ## get_environment_variable │
00:01:40 #2705 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:40 #2706 [Verbose] >
00:01:40 #2707 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:40 #2708 [Verbose] > inl get_environment_variable (var : string) : string =
00:01:40 #2709 [Verbose] > $"System.Environment.GetEnvironmentVariable !var"
00:01:40 #2710 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1299-9990-9b1e26378728\main.spi
00:01:41 #2711 [Verbose] >
00:01:41 #2712 [Verbose] > ╭─[ 285.96ms - stdout ]────────────────────────────────────────────────────────╮
00:01:41 #2713 [Verbose] > │ () │
00:01:41 #2714 [Verbose] > │ │
00:01:41 #2715 [Verbose] > │ │
00:01:41 #2716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #2717 [Verbose] >
00:01:41 #2718 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:41 #2719 [Verbose] > // // test
00:01:41 #2720 [Verbose] >
00:01:41 #2721 [Verbose] > inl test_guid () =
00:01:41 #2722 [Verbose] > guid.new_guid "FEDCBA98-7654-3210-FEDC-BA9876543210"
00:01:41 #2723 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1328-2893-28ab72f7d39d\main.spi
00:01:41 #2724 [Verbose] >
00:01:41 #2725 [Verbose] > ╭─[ 277.48ms - stdout ]────────────────────────────────────────────────────────╮
00:01:41 #2726 [Verbose] > │ () │
00:01:41 #2727 [Verbose] > │ │
00:01:41 #2728 [Verbose] > │ │
00:01:41 #2729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #2730 [Verbose] >
00:01:41 #2731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:41 #2732 [Verbose] > type timestamp_guid = guid.guid
00:01:41 #2733 [Verbose] > type date_time_guid = guid.guid
00:01:41 #2734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1356-5686-5c3b0e090889\main.spi
00:01:41 #2735 [Verbose] >
00:01:41 #2736 [Verbose] > ╭─[ 636.57ms - stdout ]────────────────────────────────────────────────────────╮
00:01:41 #2737 [Verbose] > │ () │
00:01:41 #2738 [Verbose] > │ │
00:01:41 #2739 [Verbose] > │ │
00:01:41 #2740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #2741 [Verbose] >
00:01:41 #2742 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:41 #2743 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:41 #2744 [Verbose] > │ ## date_time_guid_from_date_time │
00:01:41 #2745 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #2746 [Verbose] >
00:01:41 #2747 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:41 #2748 [Verbose] > inl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =
00:01:41 #2749 [Verbose] > inl guid = guid |> sm'.obj_to_string
00:01:41 #2750 [Verbose] > inl prefix = $'!date_time.ToString "yyyyMMdd-HHmm-ssff-ffff-f"' : string
00:01:41 #2751 [Verbose] > $'`date_time_guid $"{!prefix}{!guid.[[!prefix.Length..]]}"' : date_time_guid
00:01:42 #2752 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1421-2142-25ef1db940a0\main.spi
00:01:42 #2753 [Verbose] >
00:01:42 #2754 [Verbose] > ╭─[ 222.59ms - stdout ]────────────────────────────────────────────────────────╮
00:01:42 #2755 [Verbose] > │ () │
00:01:42 #2756 [Verbose] > │ │
00:01:42 #2757 [Verbose] > │ │
00:01:42 #2758 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:42 #2759 [Verbose] >
00:01:42 #2760 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:42 #2761 [Verbose] > // // test
00:01:42 #2762 [Verbose] >
00:01:42 #2763 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MinValue'
00:01:42 #2764 [Verbose] > |> sm'.obj_to_string
00:01:42 #2765 [Verbose] > |> _assert_eq' "00010101-0000-0000-0000-0a9876543210"
00:01:42 #2766 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1443-4391-43f1ed951b94\main.spi
00:01:43 #2767 [Verbose] >
00:01:43 #2768 [Verbose] > ╭─[ 1.44s - stdout ]───────────────────────────────────────────────────────────╮
00:01:43 #2769 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:43 #2770 [Verbose] > │ v0 │
00:01:43 #2771 [Verbose] > │ and method0 () : unit = │
00:01:43 #2772 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:43 #2773 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:43 #2774 [Verbose] > │ let v2 : System.DateTime = System.DateTime.MinValue │
00:01:43 #2775 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:43 #2776 [Verbose] > │ let v4 : string = v3 v1 │
00:01:43 #2777 [Verbose] > │ let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:43 #2778 [Verbose] > │ let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}" │
00:01:43 #2779 [Verbose] > │ let v7 : (System.Guid -> string) = _.ToString() │
00:01:43 #2780 [Verbose] > │ let v8 : string = v7 v6 │
00:01:43 #2781 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:01:43 #2782 [Verbose] > │ System.Console.WriteLine v9 │
00:01:43 #2783 [Verbose] > │ let v10 : string = "00010101-0000-0000-0000-0a9876543210" │
00:01:43 #2784 [Verbose] > │ let v11 : bool = v8 = v10 │
00:01:43 #2785 [Verbose] > │ let v13 : bool = │
00:01:43 #2786 [Verbose] > │ if v11 then │
00:01:43 #2787 [Verbose] > │ true │
00:01:43 #2788 [Verbose] > │ else │
00:01:43 #2789 [Verbose] > │ method1(v11) │
00:01:43 #2790 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v8} / expected: %A{v10}" │
00:01:43 #2791 [Verbose] > │ let v15 : bool = v13 = false │
00:01:43 #2792 [Verbose] > │ if v15 then │
00:01:43 #2793 [Verbose] > │ failwith<unit> v14 │
00:01:43 #2794 [Verbose] > │ method0() │
00:01:43 #2795 [Verbose] > │ │
00:01:43 #2796 [Verbose] > │ "00010101-0000-0000-0000-0a9876543210" │
00:01:43 #2797 [Verbose] > │ │
00:01:43 #2798 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:43 #2799 [Verbose] >
00:01:43 #2800 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:43 #2801 [Verbose] > // // test
00:01:43 #2802 [Verbose] >
00:01:43 #2803 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MaxValue'
00:01:43 #2804 [Verbose] > |> sm'.obj_to_string
00:01:43 #2805 [Verbose] > |> _assert_eq $'$"99991231-2359-5999-9999-9{(!test_guid() |>
00:01:43 #2806 [Verbose] > string).[[^10..]]}"'
00:01:43 #2807 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1589-8914-80c5cbaf329e\main.spi
00:01:44 #2808 [Verbose] >
00:01:44 #2809 [Verbose] > ╭─[ 414.64ms - stdout ]────────────────────────────────────────────────────────╮
00:01:44 #2810 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:44 #2811 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:44 #2812 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:44 #2813 [Verbose] > │ v1 │
00:01:44 #2814 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:44 #2815 [Verbose] > │ v0 │
00:01:44 #2816 [Verbose] > │ and method0 () : unit = │
00:01:44 #2817 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:44 #2818 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:44 #2819 [Verbose] > │ let v2 : System.DateTime = System.DateTime.MaxValue │
00:01:44 #2820 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:44 #2821 [Verbose] > │ let v4 : string = v3 v1 │
00:01:44 #2822 [Verbose] > │ let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:44 #2823 [Verbose] > │ let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}" │
00:01:44 #2824 [Verbose] > │ let v7 : (System.Guid -> string) = _.ToString() │
00:01:44 #2825 [Verbose] > │ let v8 : string = v7 v6 │
00:01:44 #2826 [Verbose] > │ let v9 : (unit -> System.Guid) = closure0() │
00:01:44 #2827 [Verbose] > │ let v10 : string = $"99991231-2359-5999-9999-9{(v9() |> string).[ │
00:01:44 #2828 [Verbose] > │ ^10..]}" │
00:01:44 #2829 [Verbose] > │ let v11 : string = $"%A{v8}" │
00:01:44 #2830 [Verbose] > │ System.Console.WriteLine v11 │
00:01:44 #2831 [Verbose] > │ let v12 : bool = v8 = v10 │
00:01:44 #2832 [Verbose] > │ let v14 : bool = │
00:01:44 #2833 [Verbose] > │ if v12 then │
00:01:44 #2834 [Verbose] > │ true │
00:01:44 #2835 [Verbose] > │ else │
00:01:44 #2836 [Verbose] > │ method1(v12) │
00:01:44 #2837 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v8} / expected: %A{v10}" │
00:01:44 #2838 [Verbose] > │ let v16 : bool = v14 = false │
00:01:44 #2839 [Verbose] > │ if v16 then │
00:01:44 #2840 [Verbose] > │ failwith<unit> v15 │
00:01:44 #2841 [Verbose] > │ method0() │
00:01:44 #2842 [Verbose] > │ │
00:01:44 #2843 [Verbose] > │ "99991231-2359-5999-9999-9a9876543210" │
00:01:44 #2844 [Verbose] > │ │
00:01:44 #2845 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #2846 [Verbose] >
00:01:44 #2847 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:44 #2848 [Verbose] > // // test
00:01:44 #2849 [Verbose] >
00:01:44 #2850 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.UnixEpoch'
00:01:44 #2851 [Verbose] > |> sm'.obj_to_string
00:01:44 #2852 [Verbose] > |> _assert_eq $'$"19700101-0000-0000-0000-0{(!test_guid () |>
00:01:44 #2853 [Verbose] > string).[[^10..]]}"'
00:01:44 #2854 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1632-3231-3c93decb4349\main.spi
00:01:44 #2855 [Verbose] >
00:01:44 #2856 [Verbose] > ╭─[ 250.63ms - stdout ]────────────────────────────────────────────────────────╮
00:01:44 #2857 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:44 #2858 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:44 #2859 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:44 #2860 [Verbose] > │ v1 │
00:01:44 #2861 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:44 #2862 [Verbose] > │ v0 │
00:01:44 #2863 [Verbose] > │ and method0 () : unit = │
00:01:44 #2864 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:44 #2865 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:44 #2866 [Verbose] > │ let v2 : System.DateTime = System.DateTime.UnixEpoch │
00:01:44 #2867 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:44 #2868 [Verbose] > │ let v4 : string = v3 v1 │
00:01:44 #2869 [Verbose] > │ let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:44 #2870 [Verbose] > │ let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}" │
00:01:44 #2871 [Verbose] > │ let v7 : (System.Guid -> string) = _.ToString() │
00:01:44 #2872 [Verbose] > │ let v8 : string = v7 v6 │
00:01:44 #2873 [Verbose] > │ let v9 : (unit -> System.Guid) = closure0() │
00:01:44 #2874 [Verbose] > │ let v10 : string = $"19700101-0000-0000-0000-0{(v9 () |> string).[ │
00:01:44 #2875 [Verbose] > │ ^10..]}" │
00:01:44 #2876 [Verbose] > │ let v11 : string = $"%A{v8}" │
00:01:44 #2877 [Verbose] > │ System.Console.WriteLine v11 │
00:01:44 #2878 [Verbose] > │ let v12 : bool = v8 = v10 │
00:01:44 #2879 [Verbose] > │ let v14 : bool = │
00:01:44 #2880 [Verbose] > │ if v12 then │
00:01:44 #2881 [Verbose] > │ true │
00:01:44 #2882 [Verbose] > │ else │
00:01:44 #2883 [Verbose] > │ method1(v12) │
00:01:44 #2884 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v8} / expected: %A{v10}" │
00:01:44 #2885 [Verbose] > │ let v16 : bool = v14 = false │
00:01:44 #2886 [Verbose] > │ if v16 then │
00:01:44 #2887 [Verbose] > │ failwith<unit> v15 │
00:01:44 #2888 [Verbose] > │ method0() │
00:01:44 #2889 [Verbose] > │ │
00:01:44 #2890 [Verbose] > │ "19700101-0000-0000-0000-0a9876543210" │
00:01:44 #2891 [Verbose] > │ │
00:01:44 #2892 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #2893 [Verbose] >
00:01:44 #2894 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:44 #2895 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:44 #2896 [Verbose] > │ ## date_time_from_guid │
00:01:44 #2897 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #2898 [Verbose] >
00:01:44 #2899 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:44 #2900 [Verbose] > inl date_time_from_guid (date_time_guid : date_time_guid) =
00:01:44 #2901 [Verbose] > inl date_time_guid = date_time_guid |> sm'.obj_to_string
00:01:44 #2902 [Verbose] > inl sm'_replace = join sm'.replace
00:01:44 #2903 [Verbose] > run_target function
00:01:44 #2904 [Verbose] > | Fsharp => fun () => $'System.DateTime.ParseExact
00:01:44 #2905 [Verbose] > (!date_time_guid.[[..24]] |> !sm'_replace "-" "", "yyyyMMddHHmmssfffffff",
00:01:44 #2906 [Verbose] > null)' : date_time
00:01:44 #2907 [Verbose] > | Rust _ => fun () =>
00:01:44 #2908 [Verbose] > $'System.DateTime.Parse (!date_time_guid.[[..24]] |> !sm'_replace
00:01:44 #2909 [Verbose] > "-" "")' : date_time
00:01:44 #2910 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1659-5991-56e02adf88a3\main.spi
00:01:44 #2911 [Verbose] >
00:01:44 #2912 [Verbose] > ╭─[ 230.02ms - stdout ]────────────────────────────────────────────────────────╮
00:01:44 #2913 [Verbose] > │ () │
00:01:44 #2914 [Verbose] > │ │
00:01:44 #2915 [Verbose] > │ │
00:01:44 #2916 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:44 #2917 [Verbose] >
00:01:44 #2918 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:44 #2919 [Verbose] > // // test
00:01:44 #2920 [Verbose] >
00:01:44 #2921 [Verbose] > date_time_from_guid (guid.new_guid "00010101-0000-0000-0000-0a9876543210")
00:01:44 #2922 [Verbose] > |> _assert_eq' $'System.DateTime.MinValue'
00:01:44 #2923 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1683-8311-85a432584316\main.spi
00:01:44 #2924 [Verbose] >
00:01:44 #2925 [Verbose] > ╭─[ 423.58ms - stdout ]────────────────────────────────────────────────────────╮
00:01:44 #2926 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:44 #2927 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:44 #2928 [Verbose] > │ v3 │
00:01:44 #2929 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) = │
00:01:44 #2930 [Verbose] > │ closure2(v0, v1) │
00:01:44 #2931 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) = │
00:01:44 #2932 [Verbose] > │ closure1(v0) │
00:01:44 #2933 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:44 #2934 [Verbose] > │ closure0() │
00:01:44 #2935 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:44 #2936 [Verbose] > │ v0 │
00:01:44 #2937 [Verbose] > │ and method0 () : unit = │
00:01:44 #2938 [Verbose] > │ let v0 : string = "00010101-0000-0000-0000-0a9876543210" │
00:01:44 #2939 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:44 #2940 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:44 #2941 [Verbose] > │ let v3 : string = v2 v1 │
00:01:44 #2942 [Verbose] > │ let v4 : (string -> (string -> (string -> string))) = method1() │
00:01:44 #2943 [Verbose] > │ let v5 : System.DateTime option = None │
00:01:44 #2944 [Verbose] > │ let mutable _v5 = v5 │
00:01:44 #2945 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:44 #2946 [Verbose] > │ let v6 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-" │
00:01:44 #2947 [Verbose] > │ "") │
00:01:44 #2948 [Verbose] > │ v6 │
00:01:44 #2949 [Verbose] > │ #endif │
00:01:44 #2950 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:44 #2951 [Verbose] > │ let v7 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-" │
00:01:44 #2952 [Verbose] > │ "") │
00:01:44 #2953 [Verbose] > │ v7 │
00:01:44 #2954 [Verbose] > │ #endif │
00:01:44 #2955 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:44 #2956 [Verbose] > │ let v8 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-" │
00:01:44 #2957 [Verbose] > │ "") │
00:01:44 #2958 [Verbose] > │ v8 │
00:01:44 #2959 [Verbose] > │ #endif │
00:01:44 #2960 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:44 #2961 [Verbose] > │ let v9 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4 │
00:01:44 #2962 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #2963 [Verbose] > │ v9 │
00:01:45 #2964 [Verbose] > │ #endif │
00:01:45 #2965 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:45 #2966 [Verbose] > │ let v10 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4 │
00:01:45 #2967 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #2968 [Verbose] > │ v10 │
00:01:45 #2969 [Verbose] > │ #endif │
00:01:45 #2970 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:45 #2971 [Verbose] > │ let v11 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4 │
00:01:45 #2972 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #2973 [Verbose] > │ v11 │
00:01:45 #2974 [Verbose] > │ #endif │
00:01:45 #2975 [Verbose] > │ |> fun x -> _v5 <- Some x │
00:01:45 #2976 [Verbose] > │ let v12 : System.DateTime = _v5 |> Option.get │
00:01:45 #2977 [Verbose] > │ let v13 : System.DateTime = System.DateTime.MinValue │
00:01:45 #2978 [Verbose] > │ let v14 : string = $"%A{v12}" │
00:01:45 #2979 [Verbose] > │ System.Console.WriteLine v14 │
00:01:45 #2980 [Verbose] > │ let v15 : bool = v12 = v13 │
00:01:45 #2981 [Verbose] > │ let v17 : bool = │
00:01:45 #2982 [Verbose] > │ if v15 then │
00:01:45 #2983 [Verbose] > │ true │
00:01:45 #2984 [Verbose] > │ else │
00:01:45 #2985 [Verbose] > │ method2(v15) │
00:01:45 #2986 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v12} / expected: %A{v13}" │
00:01:45 #2987 [Verbose] > │ let v19 : bool = v17 = false │
00:01:45 #2988 [Verbose] > │ if v19 then │
00:01:45 #2989 [Verbose] > │ failwith<unit> v18 │
00:01:45 #2990 [Verbose] > │ method0() │
00:01:45 #2991 [Verbose] > │ │
00:01:45 #2992 [Verbose] > │ 0001-01-01 12:00:00 AM │
00:01:45 #2993 [Verbose] > │ │
00:01:45 #2994 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #2995 [Verbose] >
00:01:45 #2996 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:45 #2997 [Verbose] > // // test
00:01:45 #2998 [Verbose] >
00:01:45 #2999 [Verbose] > date_time_from_guid (guid.new_guid $'$"99991231-2359-5999-9999-9{(!test_guid ()
00:01:45 #3000 [Verbose] > |> string).[[^10..]]}"')
00:01:45 #3001 [Verbose] > |> _assert_eq' $'System.DateTime.MaxValue'
00:01:45 #3002 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1728-2864-2de733ff6014\main.spi
00:01:45 #3003 [Verbose] >
00:01:45 #3004 [Verbose] > ╭─[ 295.24ms - stdout ]────────────────────────────────────────────────────────╮
00:01:45 #3005 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:45 #3006 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:45 #3007 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:45 #3008 [Verbose] > │ v1 │
00:01:45 #3009 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:45 #3010 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:45 #3011 [Verbose] > │ v3 │
00:01:45 #3012 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) = │
00:01:45 #3013 [Verbose] > │ closure3(v0, v1) │
00:01:45 #3014 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) = │
00:01:45 #3015 [Verbose] > │ closure2(v0) │
00:01:45 #3016 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:45 #3017 [Verbose] > │ closure1() │
00:01:45 #3018 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:45 #3019 [Verbose] > │ v0 │
00:01:45 #3020 [Verbose] > │ and method0 () : unit = │
00:01:45 #3021 [Verbose] > │ let v0 : (unit -> System.Guid) = closure0() │
00:01:45 #3022 [Verbose] > │ let v1 : string = $"99991231-2359-5999-9999-9{(v0 () |> string).[ │
00:01:45 #3023 [Verbose] > │ ^10..]}" │
00:01:45 #3024 [Verbose] > │ let v2 : System.Guid = System.Guid v1 │
00:01:45 #3025 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:45 #3026 [Verbose] > │ let v4 : string = v3 v2 │
00:01:45 #3027 [Verbose] > │ let v5 : (string -> (string -> (string -> string))) = method1() │
00:01:45 #3028 [Verbose] > │ let v6 : System.DateTime option = None │
00:01:45 #3029 [Verbose] > │ let mutable _v6 = v6 │
00:01:45 #3030 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:45 #3031 [Verbose] > │ let v7 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:45 #3032 [Verbose] > │ "") │
00:01:45 #3033 [Verbose] > │ v7 │
00:01:45 #3034 [Verbose] > │ #endif │
00:01:45 #3035 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:45 #3036 [Verbose] > │ let v8 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:45 #3037 [Verbose] > │ "") │
00:01:45 #3038 [Verbose] > │ v8 │
00:01:45 #3039 [Verbose] > │ #endif │
00:01:45 #3040 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:45 #3041 [Verbose] > │ let v9 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:45 #3042 [Verbose] > │ "") │
00:01:45 #3043 [Verbose] > │ v9 │
00:01:45 #3044 [Verbose] > │ #endif │
00:01:45 #3045 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:45 #3046 [Verbose] > │ let v10 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:45 #3047 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #3048 [Verbose] > │ v10 │
00:01:45 #3049 [Verbose] > │ #endif │
00:01:45 #3050 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:45 #3051 [Verbose] > │ let v11 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:45 #3052 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #3053 [Verbose] > │ v11 │
00:01:45 #3054 [Verbose] > │ #endif │
00:01:45 #3055 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:45 #3056 [Verbose] > │ let v12 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:45 #3057 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #3058 [Verbose] > │ v12 │
00:01:45 #3059 [Verbose] > │ #endif │
00:01:45 #3060 [Verbose] > │ |> fun x -> _v6 <- Some x │
00:01:45 #3061 [Verbose] > │ let v13 : System.DateTime = _v6 |> Option.get │
00:01:45 #3062 [Verbose] > │ let v14 : System.DateTime = System.DateTime.MaxValue │
00:01:45 #3063 [Verbose] > │ let v15 : string = $"%A{v13}" │
00:01:45 #3064 [Verbose] > │ System.Console.WriteLine v15 │
00:01:45 #3065 [Verbose] > │ let v16 : bool = v13 = v14 │
00:01:45 #3066 [Verbose] > │ let v18 : bool = │
00:01:45 #3067 [Verbose] > │ if v16 then │
00:01:45 #3068 [Verbose] > │ true │
00:01:45 #3069 [Verbose] > │ else │
00:01:45 #3070 [Verbose] > │ method2(v16) │
00:01:45 #3071 [Verbose] > │ let v19 : string = $"__expect / actual: %A{v13} / expected: %A{v14}" │
00:01:45 #3072 [Verbose] > │ let v20 : bool = v18 = false │
00:01:45 #3073 [Verbose] > │ if v20 then │
00:01:45 #3074 [Verbose] > │ failwith<unit> v19 │
00:01:45 #3075 [Verbose] > │ method0() │
00:01:45 #3076 [Verbose] > │ │
00:01:45 #3077 [Verbose] > │ 9999-12-31 11:59:59 PM │
00:01:45 #3078 [Verbose] > │ │
00:01:45 #3079 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #3080 [Verbose] >
00:01:45 #3081 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:45 #3082 [Verbose] > // // test
00:01:45 #3083 [Verbose] >
00:01:45 #3084 [Verbose] > date_time_from_guid (guid.new_guid $'$"19700101-0000-0000-0000-0{(!test_guid ()
00:01:45 #3085 [Verbose] > |> string).[[^10..]]}"')
00:01:45 #3086 [Verbose] > |> _assert_eq' $'System.DateTime.UnixEpoch'
00:01:45 #3087 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1762-6236-6cbb06b4d664\main.spi
00:01:45 #3088 [Verbose] >
00:01:45 #3089 [Verbose] > ╭─[ 324.43ms - stdout ]────────────────────────────────────────────────────────╮
00:01:45 #3090 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:45 #3091 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:45 #3092 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:45 #3093 [Verbose] > │ v1 │
00:01:45 #3094 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:45 #3095 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:45 #3096 [Verbose] > │ v3 │
00:01:45 #3097 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) = │
00:01:45 #3098 [Verbose] > │ closure3(v0, v1) │
00:01:45 #3099 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) = │
00:01:45 #3100 [Verbose] > │ closure2(v0) │
00:01:45 #3101 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:45 #3102 [Verbose] > │ closure1() │
00:01:45 #3103 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:45 #3104 [Verbose] > │ v0 │
00:01:45 #3105 [Verbose] > │ and method0 () : unit = │
00:01:45 #3106 [Verbose] > │ let v0 : (unit -> System.Guid) = closure0() │
00:01:45 #3107 [Verbose] > │ let v1 : string = $"19700101-0000-0000-0000-0{(v0 () |> string).[ │
00:01:45 #3108 [Verbose] > │ ^10..]}" │
00:01:45 #3109 [Verbose] > │ let v2 : System.Guid = System.Guid v1 │
00:01:45 #3110 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:45 #3111 [Verbose] > │ let v4 : string = v3 v2 │
00:01:45 #3112 [Verbose] > │ let v5 : (string -> (string -> (string -> string))) = method1() │
00:01:45 #3113 [Verbose] > │ let v6 : System.DateTime option = None │
00:01:45 #3114 [Verbose] > │ let mutable _v6 = v6 │
00:01:45 #3115 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:45 #3116 [Verbose] > │ let v7 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:45 #3117 [Verbose] > │ "") │
00:01:45 #3118 [Verbose] > │ v7 │
00:01:45 #3119 [Verbose] > │ #endif │
00:01:45 #3120 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:45 #3121 [Verbose] > │ let v8 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:45 #3122 [Verbose] > │ "") │
00:01:45 #3123 [Verbose] > │ v8 │
00:01:45 #3124 [Verbose] > │ #endif │
00:01:45 #3125 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:45 #3126 [Verbose] > │ let v9 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-" │
00:01:45 #3127 [Verbose] > │ "") │
00:01:45 #3128 [Verbose] > │ v9 │
00:01:45 #3129 [Verbose] > │ #endif │
00:01:45 #3130 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:45 #3131 [Verbose] > │ let v10 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:45 #3132 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #3133 [Verbose] > │ v10 │
00:01:45 #3134 [Verbose] > │ #endif │
00:01:45 #3135 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:45 #3136 [Verbose] > │ let v11 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:45 #3137 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #3138 [Verbose] > │ v11 │
00:01:45 #3139 [Verbose] > │ #endif │
00:01:45 #3140 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:45 #3141 [Verbose] > │ let v12 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5 │
00:01:45 #3142 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:45 #3143 [Verbose] > │ v12 │
00:01:45 #3144 [Verbose] > │ #endif │
00:01:45 #3145 [Verbose] > │ |> fun x -> _v6 <- Some x │
00:01:45 #3146 [Verbose] > │ let v13 : System.DateTime = _v6 |> Option.get │
00:01:45 #3147 [Verbose] > │ let v14 : System.DateTime = System.DateTime.UnixEpoch │
00:01:45 #3148 [Verbose] > │ let v15 : string = $"%A{v13}" │
00:01:45 #3149 [Verbose] > │ System.Console.WriteLine v15 │
00:01:45 #3150 [Verbose] > │ let v16 : bool = v13 = v14 │
00:01:45 #3151 [Verbose] > │ let v18 : bool = │
00:01:45 #3152 [Verbose] > │ if v16 then │
00:01:45 #3153 [Verbose] > │ true │
00:01:45 #3154 [Verbose] > │ else │
00:01:45 #3155 [Verbose] > │ method2(v16) │
00:01:45 #3156 [Verbose] > │ let v19 : string = $"__expect / actual: %A{v13} / expected: %A{v14}" │
00:01:45 #3157 [Verbose] > │ let v20 : bool = v18 = false │
00:01:45 #3158 [Verbose] > │ if v20 then │
00:01:45 #3159 [Verbose] > │ failwith<unit> v19 │
00:01:45 #3160 [Verbose] > │ method0() │
00:01:45 #3161 [Verbose] > │ │
00:01:45 #3162 [Verbose] > │ 1970-01-01 12:00:00 AM │
00:01:45 #3163 [Verbose] > │ │
00:01:45 #3164 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #3165 [Verbose] >
00:01:45 #3166 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:45 #3167 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:45 #3168 [Verbose] > │ ## timestamp_guid_from_timestamp │
00:01:45 #3169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #3170 [Verbose] >
00:01:45 #3171 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:45 #3172 [Verbose] > inl timestamp_guid_from_timestamp (guid : guid.guid) (timestamp : timestamp) :
00:01:45 #3173 [Verbose] > timestamp_guid =
00:01:45 #3174 [Verbose] > inl guid = guid |> sm'.obj_to_string
00:01:45 #3175 [Verbose] > inl timestamp = timestamp |> sm'.obj_to_string |> sm'.pad_left 18i32 '0'
00:01:45 #3176 [Verbose] > $'`timestamp_guid
00:01:45 #3177 [Verbose] > $"{!timestamp.[[0..7]]}-{!timestamp.[[8..11]]}-{!timestamp.[[12..15]]}-{!timesta
00:01:45 #3178 [Verbose] > mp.[[16..17]]}{!guid.[[21..]]}"'
00:01:45 #3179 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1799-9987-98830e0e0920\main.spi
00:01:45 #3180 [Verbose] >
00:01:45 #3181 [Verbose] > ╭─[ 222.13ms - stdout ]────────────────────────────────────────────────────────╮
00:01:45 #3182 [Verbose] > │ () │
00:01:45 #3183 [Verbose] > │ │
00:01:45 #3184 [Verbose] > │ │
00:01:45 #3185 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:45 #3186 [Verbose] >
00:01:45 #3187 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:45 #3188 [Verbose] > // // test
00:01:45 #3189 [Verbose] >
00:01:45 #3190 [Verbose] > timestamp_guid_from_timestamp (test_guid ()) (timestamp 0i64)
00:01:45 #3191 [Verbose] > |> _assert_eq' (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")
00:01:46 #3192 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1822-2210-2557cff590b9\main.spi
00:01:46 #3193 [Verbose] >
00:01:46 #3194 [Verbose] > ╭─[ 266.15ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #3195 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:46 #3196 [Verbose] > │ v0 │
00:01:46 #3197 [Verbose] > │ and method0 () : unit = │
00:01:46 #3198 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:46 #3199 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:46 #3200 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:46 #3201 [Verbose] > │ let v3 : string = v2 v1 │
00:01:46 #3202 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:46 #3203 [Verbose] > │ let v5 : string = v4 0L │
00:01:46 #3204 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:46 #3205 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:46 #3206 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:46 #3207 [Verbose] > │ let v8 : string = "00000000-0000-0000-00dc-ba9876543210" │
00:01:46 #3208 [Verbose] > │ let v9 : System.Guid = System.Guid v8 │
00:01:46 #3209 [Verbose] > │ let v10 : string = $"%A{v7}" │
00:01:46 #3210 [Verbose] > │ System.Console.WriteLine v10 │
00:01:46 #3211 [Verbose] > │ let v11 : bool = v7 = v9 │
00:01:46 #3212 [Verbose] > │ let v13 : bool = │
00:01:46 #3213 [Verbose] > │ if v11 then │
00:01:46 #3214 [Verbose] > │ true │
00:01:46 #3215 [Verbose] > │ else │
00:01:46 #3216 [Verbose] > │ method1(v11) │
00:01:46 #3217 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v7} / expected: %A{v9}" │
00:01:46 #3218 [Verbose] > │ let v15 : bool = v13 = false │
00:01:46 #3219 [Verbose] > │ if v15 then │
00:01:46 #3220 [Verbose] > │ failwith<unit> v14 │
00:01:46 #3221 [Verbose] > │ method0() │
00:01:46 #3222 [Verbose] > │ │
00:01:46 #3223 [Verbose] > │ 00000000-0000-0000-00dc-ba9876543210 │
00:01:46 #3224 [Verbose] > │ │
00:01:46 #3225 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3226 [Verbose] >
00:01:46 #3227 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #3228 [Verbose] > // // test
00:01:46 #3229 [Verbose] >
00:01:46 #3230 [Verbose] > timestamp_guid_from_timestamp (test_guid ()) (timestamp 999999999999999999i64)
00:01:46 #3231 [Verbose] > |> _assert_eq' (guid.new_guid $'$"99999999-9999-9999-99dc-b{(!test_guid () |>
00:01:46 #3232 [Verbose] > string).[[^10..]]}"')
00:01:46 #3233 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1850-5068-59bec62177b9\main.spi
00:01:46 #3234 [Verbose] >
00:01:46 #3235 [Verbose] > ╭─[ 327.10ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #3236 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:46 #3237 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:46 #3238 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:46 #3239 [Verbose] > │ v1 │
00:01:46 #3240 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:46 #3241 [Verbose] > │ v0 │
00:01:46 #3242 [Verbose] > │ and method0 () : unit = │
00:01:46 #3243 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:46 #3244 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:46 #3245 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:46 #3246 [Verbose] > │ let v3 : string = v2 v1 │
00:01:46 #3247 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:46 #3248 [Verbose] > │ let v5 : string = v4 999999999999999999L │
00:01:46 #3249 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:46 #3250 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:46 #3251 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:46 #3252 [Verbose] > │ let v8 : (unit -> System.Guid) = closure0() │
00:01:46 #3253 [Verbose] > │ let v9 : string = $"99999999-9999-9999-99dc-b{(v8 () |> string).[ │
00:01:46 #3254 [Verbose] > │ ^10..]}" │
00:01:46 #3255 [Verbose] > │ let v10 : System.Guid = System.Guid v9 │
00:01:46 #3256 [Verbose] > │ let v11 : string = $"%A{v7}" │
00:01:46 #3257 [Verbose] > │ System.Console.WriteLine v11 │
00:01:46 #3258 [Verbose] > │ let v12 : bool = v7 = v10 │
00:01:46 #3259 [Verbose] > │ let v14 : bool = │
00:01:46 #3260 [Verbose] > │ if v12 then │
00:01:46 #3261 [Verbose] > │ true │
00:01:46 #3262 [Verbose] > │ else │
00:01:46 #3263 [Verbose] > │ method1(v12) │
00:01:46 #3264 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v7} / expected: %A{v10}" │
00:01:46 #3265 [Verbose] > │ let v16 : bool = v14 = false │
00:01:46 #3266 [Verbose] > │ if v16 then │
00:01:46 #3267 [Verbose] > │ failwith<unit> v15 │
00:01:46 #3268 [Verbose] > │ method0() │
00:01:46 #3269 [Verbose] > │ │
00:01:46 #3270 [Verbose] > │ 99999999-9999-9999-99dc-ba9876543210 │
00:01:46 #3271 [Verbose] > │ │
00:01:46 #3272 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3273 [Verbose] >
00:01:46 #3274 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:46 #3275 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:46 #3276 [Verbose] > │ ## timestamp_from_guid │
00:01:46 #3277 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3278 [Verbose] >
00:01:46 #3279 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #3280 [Verbose] > inl timestamp_from_guid (guid : date_time_guid) : timestamp =
00:01:46 #3281 [Verbose] > inl guid = guid |> sm'.obj_to_string
00:01:46 #3282 [Verbose] > $'`i64
00:01:46 #3283 [Verbose] > $"{!guid.[[0..7]]}{!guid.[[9..12]]}{!guid.[[14..17]]}{!guid.[[19..20]]}"'
00:01:46 #3284 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1886-8611-83ab75a617d7\main.spi
00:01:46 #3285 [Verbose] >
00:01:46 #3286 [Verbose] > ╭─[ 233.86ms - stdout ]────────────────────────────────────────────────────────╮
00:01:46 #3287 [Verbose] > │ () │
00:01:46 #3288 [Verbose] > │ │
00:01:46 #3289 [Verbose] > │ │
00:01:46 #3290 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:46 #3291 [Verbose] >
00:01:46 #3292 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:46 #3293 [Verbose] > // // test
00:01:46 #3294 [Verbose] >
00:01:46 #3295 [Verbose] > timestamp_from_guid (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")
00:01:46 #3296 [Verbose] > |> _assert_eq (timestamp 0)
00:01:46 #3297 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1909-0956-02ec106adc37\main.spi
00:01:47 #3298 [Verbose] >
00:01:47 #3299 [Verbose] > ╭─[ 285.87ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #3300 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:47 #3301 [Verbose] > │ v0 │
00:01:47 #3302 [Verbose] > │ and method0 () : unit = │
00:01:47 #3303 [Verbose] > │ let v0 : string = "00000000-0000-0000-00dc-ba9876543210" │
00:01:47 #3304 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:47 #3305 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:47 #3306 [Verbose] > │ let v3 : string = v2 v1 │
00:01:47 #3307 [Verbose] > │ let v4 : int64 = int64 $"{v3.[0..7]}{v3.[9..12]}{v3.[14..17]}{v3.[ │
00:01:47 #3308 [Verbose] > │ 19..20]}" │
00:01:47 #3309 [Verbose] > │ let v5 : string = $"%A{v4}" │
00:01:47 #3310 [Verbose] > │ System.Console.WriteLine v5 │
00:01:47 #3311 [Verbose] > │ let v6 : bool = v4 = 0L │
00:01:47 #3312 [Verbose] > │ let v8 : bool = │
00:01:47 #3313 [Verbose] > │ if v6 then │
00:01:47 #3314 [Verbose] > │ true │
00:01:47 #3315 [Verbose] > │ else │
00:01:47 #3316 [Verbose] > │ method1(v6) │
00:01:47 #3317 [Verbose] > │ let v9 : string = $"__expect / actual: %A{v4} / expected: %A{0L}" │
00:01:47 #3318 [Verbose] > │ let v10 : bool = v8 = false │
00:01:47 #3319 [Verbose] > │ if v10 then │
00:01:47 #3320 [Verbose] > │ failwith<unit> v9 │
00:01:47 #3321 [Verbose] > │ method0() │
00:01:47 #3322 [Verbose] > │ │
00:01:47 #3323 [Verbose] > │ 0L │
00:01:47 #3324 [Verbose] > │ │
00:01:47 #3325 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3326 [Verbose] >
00:01:47 #3327 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #3328 [Verbose] > // // test
00:01:47 #3329 [Verbose] >
00:01:47 #3330 [Verbose] > timestamp_from_guid (guid.new_guid $'$"99999999-9999-9999-99{(!test_guid () |>
00:01:47 #3331 [Verbose] > string).[[^14..]]}"')
00:01:47 #3332 [Verbose] > |> _assert_eq (timestamp 999999999999999999)
00:01:47 #3333 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1939-3957-3292da5509a7\main.spi
00:01:47 #3334 [Verbose] >
00:01:47 #3335 [Verbose] > ╭─[ 267.18ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #3336 [Verbose] > │ let rec closure0 () () : System.Guid = │
00:01:47 #3337 [Verbose] > │ let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210" │
00:01:47 #3338 [Verbose] > │ let v1 : System.Guid = System.Guid v0 │
00:01:47 #3339 [Verbose] > │ v1 │
00:01:47 #3340 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:01:47 #3341 [Verbose] > │ v0 │
00:01:47 #3342 [Verbose] > │ and method0 () : unit = │
00:01:47 #3343 [Verbose] > │ let v0 : (unit -> System.Guid) = closure0() │
00:01:47 #3344 [Verbose] > │ let v1 : string = $"99999999-9999-9999-99{(v0 () |> string).[^14..]}" │
00:01:47 #3345 [Verbose] > │ let v2 : System.Guid = System.Guid v1 │
00:01:47 #3346 [Verbose] > │ let v3 : (System.Guid -> string) = _.ToString() │
00:01:47 #3347 [Verbose] > │ let v4 : string = v3 v2 │
00:01:47 #3348 [Verbose] > │ let v5 : int64 = int64 $"{v4.[0..7]}{v4.[9..12]}{v4.[14..17]}{v4.[ │
00:01:47 #3349 [Verbose] > │ 19..20]}" │
00:01:47 #3350 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:01:47 #3351 [Verbose] > │ System.Console.WriteLine v6 │
00:01:47 #3352 [Verbose] > │ let v7 : bool = v5 = 999999999999999999L │
00:01:47 #3353 [Verbose] > │ let v9 : bool = │
00:01:47 #3354 [Verbose] > │ if v7 then │
00:01:47 #3355 [Verbose] > │ true │
00:01:47 #3356 [Verbose] > │ else │
00:01:47 #3357 [Verbose] > │ method1(v7) │
00:01:47 #3358 [Verbose] > │ let v10 : string = $"__expect / actual: %A{v5} / expected: │
00:01:47 #3359 [Verbose] > │ %A{999999999999999999L}" │
00:01:47 #3360 [Verbose] > │ let v11 : bool = v9 = false │
00:01:47 #3361 [Verbose] > │ if v11 then │
00:01:47 #3362 [Verbose] > │ failwith<unit> v10 │
00:01:47 #3363 [Verbose] > │ method0() │
00:01:47 #3364 [Verbose] > │ │
00:01:47 #3365 [Verbose] > │ 999999999999999999L │
00:01:47 #3366 [Verbose] > │ │
00:01:47 #3367 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3368 [Verbose] >
00:01:47 #3369 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #3370 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #3371 [Verbose] > │ ## utc_now │
00:01:47 #3372 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3373 [Verbose] >
00:01:47 #3374 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #3375 [Verbose] > inl utc_now () : date_time =
00:01:47 #3376 [Verbose] > $'System.DateTime.UtcNow'
00:01:47 #3377 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1968-6879-60ec1693181a\main.spi
00:01:47 #3378 [Verbose] >
00:01:47 #3379 [Verbose] > ╭─[ 233.10ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #3380 [Verbose] > │ () │
00:01:47 #3381 [Verbose] > │ │
00:01:47 #3382 [Verbose] > │ │
00:01:47 #3383 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3384 [Verbose] >
00:01:47 #3385 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #3386 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #3387 [Verbose] > │ ## time_span │
00:01:47 #3388 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3389 [Verbose] >
00:01:47 #3390 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #3391 [Verbose] > nominal time_span = $'System.TimeSpan'
00:01:47 #3392 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1992-9262-93cad1d9dd9e\main.spi
00:01:47 #3393 [Verbose] >
00:01:47 #3394 [Verbose] > ╭─[ 228.31ms - stdout ]────────────────────────────────────────────────────────╮
00:01:47 #3395 [Verbose] > │ () │
00:01:47 #3396 [Verbose] > │ │
00:01:47 #3397 [Verbose] > │ │
00:01:47 #3398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3399 [Verbose] >
00:01:47 #3400 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:47 #3401 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:47 #3402 [Verbose] > │ ## new_time_span │
00:01:47 #3403 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:47 #3404 [Verbose] >
00:01:47 #3405 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:47 #3406 [Verbose] > inl new_time_span (a : date_time) (b : date_time) : time_span =
00:01:47 #3407 [Verbose] > $'!b - !a '
00:01:48 #3408 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2016-1607-166cc79052d7\main.spi
00:01:48 #3409 [Verbose] >
00:01:48 #3410 [Verbose] > ╭─[ 212.56ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #3411 [Verbose] > │ () │
00:01:48 #3412 [Verbose] > │ │
00:01:48 #3413 [Verbose] > │ │
00:01:48 #3414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3415 [Verbose] >
00:01:48 #3416 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #3417 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #3418 [Verbose] > │ ## total_seconds │
00:01:48 #3419 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3420 [Verbose] >
00:01:48 #3421 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #3422 [Verbose] > inl total_seconds (time_span : time_span) : f64 =
00:01:48 #3423 [Verbose] > time_span |> $'_.TotalSeconds'
00:01:48 #3424 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2037-3781-3e3340f74eda\main.spi
00:01:48 #3425 [Verbose] >
00:01:48 #3426 [Verbose] > ╭─[ 199.19ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #3427 [Verbose] > │ () │
00:01:48 #3428 [Verbose] > │ │
00:01:48 #3429 [Verbose] > │ │
00:01:48 #3430 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3431 [Verbose] >
00:01:48 #3432 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #3433 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #3434 [Verbose] > │ ## new_guid_from_date_time │
00:01:48 #3435 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3436 [Verbose] >
00:01:48 #3437 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #3438 [Verbose] > inl new_guid_from_date_time (date_time : date_time) =
00:01:48 #3439 [Verbose] > inl guid = guid.new_raw_guid ()
00:01:48 #3440 [Verbose] > date_time_guid_from_date_time guid date_time
00:01:48 #3441 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2058-5833-5b890179d96e\main.spi
00:01:48 #3442 [Verbose] >
00:01:48 #3443 [Verbose] > ╭─[ 230.49ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #3444 [Verbose] > │ () │
00:01:48 #3445 [Verbose] > │ │
00:01:48 #3446 [Verbose] > │ │
00:01:48 #3447 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3448 [Verbose] >
00:01:48 #3449 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #3450 [Verbose] > // // test
00:01:48 #3451 [Verbose] >
00:01:48 #3452 [Verbose] > utc_now ()
00:01:48 #3453 [Verbose] > |> new_guid_from_date_time
00:01:48 #3454 [Verbose] > |> date_time_from_guid
00:01:48 #3455 [Verbose] > |> fun date_time => new_time_span date_time (utc_now ()) |> total_seconds |> i32
00:01:48 #3456 [Verbose] > |> _assert_eq 0
00:01:48 #3457 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2081-8178-834790cf10ff\main.spi
00:01:48 #3458 [Verbose] >
00:01:48 #3459 [Verbose] > ╭─[ 279.07ms - stdout ]────────────────────────────────────────────────────────╮
00:01:48 #3460 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:48 #3461 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:48 #3462 [Verbose] > │ v3 │
00:01:48 #3463 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) = │
00:01:48 #3464 [Verbose] > │ closure2(v0, v1) │
00:01:48 #3465 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) = │
00:01:48 #3466 [Verbose] > │ closure1(v0) │
00:01:48 #3467 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) = │
00:01:48 #3468 [Verbose] > │ closure0() │
00:01:48 #3469 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:01:48 #3470 [Verbose] > │ v0 │
00:01:48 #3471 [Verbose] > │ and method0 () : unit = │
00:01:48 #3472 [Verbose] > │ let v0 : System.DateTime = System.DateTime.UtcNow │
00:01:48 #3473 [Verbose] > │ let v1 : System.Guid = System.Guid.NewGuid () │
00:01:48 #3474 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:48 #3475 [Verbose] > │ let v3 : string = v2 v1 │
00:01:48 #3476 [Verbose] > │ let v4 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:48 #3477 [Verbose] > │ let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}" │
00:01:48 #3478 [Verbose] > │ let v6 : (System.Guid -> string) = _.ToString() │
00:01:48 #3479 [Verbose] > │ let v7 : string = v6 v5 │
00:01:48 #3480 [Verbose] > │ let v8 : (string -> (string -> (string -> string))) = method1() │
00:01:48 #3481 [Verbose] > │ let v9 : System.DateTime option = None │
00:01:48 #3482 [Verbose] > │ let mutable _v9 = v9 │
00:01:48 #3483 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:48 #3484 [Verbose] > │ let v10 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-" │
00:01:48 #3485 [Verbose] > │ "") │
00:01:48 #3486 [Verbose] > │ v10 │
00:01:48 #3487 [Verbose] > │ #endif │
00:01:48 #3488 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:48 #3489 [Verbose] > │ let v11 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-" │
00:01:48 #3490 [Verbose] > │ "") │
00:01:48 #3491 [Verbose] > │ v11 │
00:01:48 #3492 [Verbose] > │ #endif │
00:01:48 #3493 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:48 #3494 [Verbose] > │ let v12 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-" │
00:01:48 #3495 [Verbose] > │ "") │
00:01:48 #3496 [Verbose] > │ v12 │
00:01:48 #3497 [Verbose] > │ #endif │
00:01:48 #3498 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:48 #3499 [Verbose] > │ let v13 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8 │
00:01:48 #3500 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:48 #3501 [Verbose] > │ v13 │
00:01:48 #3502 [Verbose] > │ #endif │
00:01:48 #3503 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:48 #3504 [Verbose] > │ let v14 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8 │
00:01:48 #3505 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:48 #3506 [Verbose] > │ v14 │
00:01:48 #3507 [Verbose] > │ #endif │
00:01:48 #3508 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:48 #3509 [Verbose] > │ let v15 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8 │
00:01:48 #3510 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:48 #3511 [Verbose] > │ v15 │
00:01:48 #3512 [Verbose] > │ #endif │
00:01:48 #3513 [Verbose] > │ |> fun x -> _v9 <- Some x │
00:01:48 #3514 [Verbose] > │ let v16 : System.DateTime = _v9 |> Option.get │
00:01:48 #3515 [Verbose] > │ let v17 : System.DateTime = System.DateTime.UtcNow │
00:01:48 #3516 [Verbose] > │ let v18 : System.TimeSpan = v17 - v16 │
00:01:48 #3517 [Verbose] > │ let v19 : (System.TimeSpan -> float) = _.TotalSeconds │
00:01:48 #3518 [Verbose] > │ let v20 : float = v19 v18 │
00:01:48 #3519 [Verbose] > │ let v21 : int32 = int32 v20 │
00:01:48 #3520 [Verbose] > │ let v22 : string = $"%A{v21}" │
00:01:48 #3521 [Verbose] > │ System.Console.WriteLine v22 │
00:01:48 #3522 [Verbose] > │ let v23 : bool = v21 = 0 │
00:01:48 #3523 [Verbose] > │ let v25 : bool = │
00:01:48 #3524 [Verbose] > │ if v23 then │
00:01:48 #3525 [Verbose] > │ true │
00:01:48 #3526 [Verbose] > │ else │
00:01:48 #3527 [Verbose] > │ method2(v23) │
00:01:48 #3528 [Verbose] > │ let v26 : string = $"__expect / actual: %A{v21} / expected: %A{0}" │
00:01:48 #3529 [Verbose] > │ let v27 : bool = v25 = false │
00:01:48 #3530 [Verbose] > │ if v27 then │
00:01:48 #3531 [Verbose] > │ failwith<unit> v26 │
00:01:48 #3532 [Verbose] > │ method0() │
00:01:48 #3533 [Verbose] > │ │
00:01:48 #3534 [Verbose] > │ 0 │
00:01:48 #3535 [Verbose] > │ │
00:01:48 #3536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3537 [Verbose] >
00:01:48 #3538 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:48 #3539 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:48 #3540 [Verbose] > │ ## new_guid_from_timestamp │
00:01:48 #3541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:48 #3542 [Verbose] >
00:01:48 #3543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:48 #3544 [Verbose] > inl new_guid_from_timestamp (timestamp : timestamp) =
00:01:48 #3545 [Verbose] > inl guid = guid.new_raw_guid ()
00:01:48 #3546 [Verbose] > timestamp_guid_from_timestamp guid timestamp
00:01:49 #3547 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2112-1272-1c4d1df423c7\main.spi
00:01:49 #3548 [Verbose] >
00:01:49 #3549 [Verbose] > ╭─[ 214.32ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #3550 [Verbose] > │ () │
00:01:49 #3551 [Verbose] > │ │
00:01:49 #3552 [Verbose] > │ │
00:01:49 #3553 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #3554 [Verbose] >
00:01:49 #3555 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #3556 [Verbose] > // // test
00:01:49 #3557 [Verbose] >
00:01:49 #3558 [Verbose] > utc_now ()
00:01:49 #3559 [Verbose] > |> ticks
00:01:49 #3560 [Verbose] > |> new_guid_from_timestamp
00:01:49 #3561 [Verbose] > |> timestamp_from_guid
00:01:49 #3562 [Verbose] > |> fun (timestamp timestamp) => (timestamp - (utc_now () |> ticks |> fun
00:01:49 #3563 [Verbose] > (timestamp x) => x)) / 100000i64
00:01:49 #3564 [Verbose] > |> _assert_eq 0i64
00:01:49 #3565 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2134-3437-3120d02874fe\main.spi
00:01:50 #3566 [Verbose] >
00:01:50 #3567 [Verbose] > ╭─[ 1.31s - stdout ]───────────────────────────────────────────────────────────╮
00:01:50 #3568 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:01:50 #3569 [Verbose] > │ v0 │
00:01:50 #3570 [Verbose] > │ and method0 () : unit = │
00:01:50 #3571 [Verbose] > │ let v0 : System.DateTime = System.DateTime.UtcNow │
00:01:50 #3572 [Verbose] > │ let v1 : (System.DateTime -> int64) = _.Ticks │
00:01:50 #3573 [Verbose] > │ let v2 : int64 = v1 v0 │
00:01:50 #3574 [Verbose] > │ let v3 : System.Guid = System.Guid.NewGuid () │
00:01:50 #3575 [Verbose] > │ let v4 : (System.Guid -> string) = _.ToString() │
00:01:50 #3576 [Verbose] > │ let v5 : string = v4 v3 │
00:01:50 #3577 [Verbose] > │ let v6 : (int64 -> string) = _.ToString() │
00:01:50 #3578 [Verbose] > │ let v7 : string = v6 v2 │
00:01:50 #3579 [Verbose] > │ let v8 : string = v7.PadLeft (18, '0') │
00:01:50 #3580 [Verbose] > │ let v9 : System.Guid = System.Guid $"{v8.[0..7]}-{v8.[8..11]}-{v8.[ │
00:01:50 #3581 [Verbose] > │ 12..15]}-{v8.[16..17]}{v5.[21..]}" │
00:01:50 #3582 [Verbose] > │ let v10 : (System.Guid -> string) = _.ToString() │
00:01:50 #3583 [Verbose] > │ let v11 : string = v10 v9 │
00:01:50 #3584 [Verbose] > │ let v12 : int64 = int64 $"{v11.[0..7]}{v11.[9..12]}{v11.[14..17]}{v11.[ │
00:01:50 #3585 [Verbose] > │ 19..20]}" │
00:01:50 #3586 [Verbose] > │ let v13 : System.DateTime = System.DateTime.UtcNow │
00:01:50 #3587 [Verbose] > │ let v14 : (System.DateTime -> int64) = _.Ticks │
00:01:50 #3588 [Verbose] > │ let v15 : int64 = v14 v13 │
00:01:50 #3589 [Verbose] > │ let v16 : int64 = v12 - v15 │
00:01:50 #3590 [Verbose] > │ let v17 : int64 = v16 / 100000L │
00:01:50 #3591 [Verbose] > │ let v18 : string = $"%A{v17}" │
00:01:50 #3592 [Verbose] > │ System.Console.WriteLine v18 │
00:01:50 #3593 [Verbose] > │ let v19 : bool = v17 = 0L │
00:01:50 #3594 [Verbose] > │ let v21 : bool = │
00:01:50 #3595 [Verbose] > │ if v19 then │
00:01:50 #3596 [Verbose] > │ true │
00:01:50 #3597 [Verbose] > │ else │
00:01:50 #3598 [Verbose] > │ method1(v19) │
00:01:50 #3599 [Verbose] > │ let v22 : string = $"__expect / actual: %A{v17} / expected: %A{0L}" │
00:01:50 #3600 [Verbose] > │ let v23 : bool = v21 = false │
00:01:50 #3601 [Verbose] > │ if v23 then │
00:01:50 #3602 [Verbose] > │ failwith<unit> v22 │
00:01:50 #3603 [Verbose] > │ method0() │
00:01:50 #3604 [Verbose] > │ │
00:01:50 #3605 [Verbose] > │ 0L │
00:01:50 #3606 [Verbose] > │ │
00:01:50 #3607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:50 #3608 [Verbose] >
00:01:50 #3609 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:50 #3610 [Verbose] > //// test
00:01:50 #3611 [Verbose] >
00:01:50 #3612 [Verbose] > type DateTimeWithZone = {
00:01:50 #3613 [Verbose] > DateTime: System.DateTimeOffset
00:01:50 #3614 [Verbose] > TimeZone: System.TimeZoneInfo
00:01:50 #3615 [Verbose] > }
00:01:50 #3616 [Verbose] >
00:01:50 #3617 [Verbose] > try
00:01:50 #3618 [Verbose] > let now = System.DateTimeOffset.Now
00:01:50 #3619 [Verbose] > let timeZoneInfo = System.TimeZoneInfo.Local
00:01:50 #3620 [Verbose] > let dateTimeWithZone = { DateTime = now; TimeZone = timeZoneInfo }
00:01:50 #3621 [Verbose] >
00:01:50 #3622 [Verbose] > printfn "DateTime: %O" dateTimeWithZone.DateTime
00:01:50 #3623 [Verbose] > printfn "Time Zone: %s" dateTimeWithZone.TimeZone.DisplayName
00:01:50 #3624 [Verbose] > printfn "Is DST: %b"
00:01:50 #3625 [Verbose] > (timeZoneInfo.IsDaylightSavingTime(dateTimeWithZone.DateTime.DateTime))
00:01:50 #3626 [Verbose] > printfn "v1: %s" (dateTimeWithZone.TimeZone.GetUtcOffset(now) |> string)
00:01:50 #3627 [Verbose] > printfn "v2: %s" (dateTimeWithZone.TimeZone |> string)
00:01:50 #3628 [Verbose] > with ex ->
00:01:50 #3629 [Verbose] > printfn "error: %A" ex
00:01:50 #3630 [Verbose] >
00:01:50 #3631 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:50 #3632 [Verbose] > #r
00:01:50 #3633 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:01:50 #3634 [Verbose] > spNetCore.Html.Abstractions.dll"
00:01:50 #3635 [Verbose] > #r
00:01:50 #3636 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:50 #3637 [Verbose] > otNet.Interactive.dll"
00:01:50 #3638 [Verbose] > #r
00:01:50 #3639 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:50 #3640 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:50 #3641 [Verbose] > #r
00:01:50 #3642 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:50 #3643 [Verbose] > otNet.Interactive.Formatting.dll"
00:01:50 #3644 [Verbose] > open System
00:01:50 #3645 [Verbose] > open System.IO
00:01:50 #3646 [Verbose] > open System.Text
00:01:50 #3647 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:01:51 #3648 [Verbose] >
00:01:51 #3649 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:01:51 #3650 [Verbose] > #r
00:01:51 #3651 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:51 #3652 [Verbose] > otNet.Interactive.FSharp.dll"
00:01:51 #3653 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:01:51 #3654 [Verbose] > #r
00:01:51 #3655 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:01:51 #3656 [Verbose] > otNet.Interactive.dll"
00:01:51 #3657 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:01:52 #3658 [Verbose] >
00:01:52 #3659 [Verbose] > ╭─[ 2.16s - stdout ]───────────────────────────────────────────────────────────╮
00:01:52 #3660 [Verbose] > │ DateTime: 2024-04-04 12:51:24 PM -04:00 │
00:01:52 #3661 [Verbose] > │ Time Zone: (UTC-04:00) Cuiaba │
00:01:52 #3662 [Verbose] > │ Is DST: false │
00:01:52 #3663 [Verbose] > │ v1: -04:00:00 │
00:01:52 #3664 [Verbose] > │ v2: (UTC-04:00) Cuiaba │
00:01:52 #3665 [Verbose] > │ │
00:01:52 #3666 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:52 #3667 [Verbose] >
00:01:52 #3668 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:52 #3669 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:52 #3670 [Verbose] > │ ## main │
00:01:52 #3671 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:52 #3672 [Verbose] >
00:01:52 #3673 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:52 #3674 [Verbose] > inl main () =
00:01:52 #3675 [Verbose] > $"let date_time_guid_from_date_time x = !date_time_guid_from_date_time x" :
00:01:52 #3676 [Verbose] > ()
00:01:52 #3677 [Verbose] > $"let date_time_from_guid x = !date_time_from_guid x" : ()
00:01:52 #3678 [Verbose] > $"let timestamp_guid_from_timestamp x = !timestamp_guid_from_timestamp x" :
00:01:52 #3679 [Verbose] > ()
00:01:52 #3680 [Verbose] > $"let timestamp_from_guid x = !timestamp_from_guid x" : ()
00:01:52 #3681 [Verbose] > $"let new_guid_from_date_time x = !new_guid_from_date_time x" : ()
00:01:52 #3682 [Verbose] > $"let new_guid_from_timestamp x = !new_guid_from_timestamp x" : ()
00:01:52 #3683 [Verbose] > $"let format x = !format x" : ()
00:01:52 #3684 [Verbose] > $"let format_iso8601 x = !format_iso8601 x" : ()
00:01:52 #3685 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2485-8558-807cf015857a\main.spi
00:01:52 #3686 [Verbose] >
00:01:52 #3687 [Verbose] > ╭─[ 412.90ms - stdout ]────────────────────────────────────────────────────────╮
00:01:53 #3688 [Verbose] > │ let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid = │
00:01:53 #3689 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:53 #3690 [Verbose] > │ let v3 : string = v2 v0 │
00:01:53 #3691 [Verbose] > │ let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:53 #3692 [Verbose] > │ let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}" │
00:01:53 #3693 [Verbose] > │ v5 │
00:01:53 #3694 [Verbose] > │ and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) = │
00:01:53 #3695 [Verbose] > │ closure1(v0) │
00:01:53 #3696 [Verbose] > │ and closure5 (v0 : string, v1 : string) (v2 : string) : string = │
00:01:53 #3697 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:01:53 #3698 [Verbose] > │ v3 │
00:01:53 #3699 [Verbose] > │ and closure4 (v0 : string) (v1 : string) : (string -> string) = │
00:01:53 #3700 [Verbose] > │ closure5(v0, v1) │
00:01:53 #3701 [Verbose] > │ and closure3 () (v0 : string) : (string -> (string -> string)) = │
00:01:53 #3702 [Verbose] > │ closure4(v0) │
00:01:53 #3703 [Verbose] > │ and method0 () : (string -> (string -> (string -> string))) = │
00:01:53 #3704 [Verbose] > │ closure3() │
00:01:53 #3705 [Verbose] > │ and closure2 () (v0 : System.Guid) : System.DateTime = │
00:01:53 #3706 [Verbose] > │ let v1 : (System.Guid -> string) = _.ToString() │
00:01:53 #3707 [Verbose] > │ let v2 : string = v1 v0 │
00:01:53 #3708 [Verbose] > │ let v3 : (string -> (string -> (string -> string))) = method0() │
00:01:53 #3709 [Verbose] > │ let v4 : System.DateTime option = None │
00:01:53 #3710 [Verbose] > │ let mutable _v4 = v4 │
00:01:53 #3711 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:53 #3712 [Verbose] > │ let v5 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-" │
00:01:53 #3713 [Verbose] > │ "") │
00:01:53 #3714 [Verbose] > │ v5 │
00:01:53 #3715 [Verbose] > │ #endif │
00:01:53 #3716 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:53 #3717 [Verbose] > │ let v6 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-" │
00:01:53 #3718 [Verbose] > │ "") │
00:01:53 #3719 [Verbose] > │ v6 │
00:01:53 #3720 [Verbose] > │ #endif │
00:01:53 #3721 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:53 #3722 [Verbose] > │ let v7 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-" │
00:01:53 #3723 [Verbose] > │ "") │
00:01:53 #3724 [Verbose] > │ v7 │
00:01:53 #3725 [Verbose] > │ #endif │
00:01:53 #3726 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:53 #3727 [Verbose] > │ let v8 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3 │
00:01:53 #3728 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:53 #3729 [Verbose] > │ v8 │
00:01:53 #3730 [Verbose] > │ #endif │
00:01:53 #3731 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:53 #3732 [Verbose] > │ let v9 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3 │
00:01:53 #3733 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:53 #3734 [Verbose] > │ v9 │
00:01:53 #3735 [Verbose] > │ #endif │
00:01:53 #3736 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:53 #3737 [Verbose] > │ let v10 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3 │
00:01:53 #3738 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null) │
00:01:53 #3739 [Verbose] > │ v10 │
00:01:53 #3740 [Verbose] > │ #endif │
00:01:53 #3741 [Verbose] > │ |> fun x -> _v4 <- Some x │
00:01:53 #3742 [Verbose] > │ let v11 : System.DateTime = _v4 |> Option.get │
00:01:53 #3743 [Verbose] > │ v11 │
00:01:53 #3744 [Verbose] > │ and closure7 (v0 : System.Guid) (v1 : int64) : System.Guid = │
00:01:53 #3745 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:53 #3746 [Verbose] > │ let v3 : string = v2 v0 │
00:01:53 #3747 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:53 #3748 [Verbose] > │ let v5 : string = v4 v1 │
00:01:53 #3749 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:53 #3750 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:53 #3751 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:53 #3752 [Verbose] > │ v7 │
00:01:53 #3753 [Verbose] > │ and closure6 () (v0 : System.Guid) : (int64 -> System.Guid) = │
00:01:53 #3754 [Verbose] > │ closure7(v0) │
00:01:53 #3755 [Verbose] > │ and closure8 () (v0 : System.Guid) : int64 = │
00:01:53 #3756 [Verbose] > │ let v1 : (System.Guid -> string) = _.ToString() │
00:01:53 #3757 [Verbose] > │ let v2 : string = v1 v0 │
00:01:53 #3758 [Verbose] > │ let v3 : int64 = int64 $"{v2.[0..7]}{v2.[9..12]}{v2.[14..17]}{v2.[ │
00:01:53 #3759 [Verbose] > │ 19..20]}" │
00:01:53 #3760 [Verbose] > │ v3 │
00:01:53 #3761 [Verbose] > │ and closure9 () (v0 : System.DateTime) : System.Guid = │
00:01:53 #3762 [Verbose] > │ let v1 : System.Guid = System.Guid.NewGuid () │
00:01:53 #3763 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:53 #3764 [Verbose] > │ let v3 : string = v2 v1 │
00:01:53 #3765 [Verbose] > │ let v4 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:01:53 #3766 [Verbose] > │ let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}" │
00:01:53 #3767 [Verbose] > │ v5 │
00:01:53 #3768 [Verbose] > │ and closure10 () (v0 : int64) : System.Guid = │
00:01:53 #3769 [Verbose] > │ let v1 : System.Guid = System.Guid.NewGuid () │
00:01:53 #3770 [Verbose] > │ let v2 : (System.Guid -> string) = _.ToString() │
00:01:53 #3771 [Verbose] > │ let v3 : string = v2 v1 │
00:01:53 #3772 [Verbose] > │ let v4 : (int64 -> string) = _.ToString() │
00:01:53 #3773 [Verbose] > │ let v5 : string = v4 v0 │
00:01:53 #3774 [Verbose] > │ let v6 : string = v5.PadLeft (18, '0') │
00:01:53 #3775 [Verbose] > │ let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[ │
00:01:53 #3776 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}" │
00:01:53 #3777 [Verbose] > │ v7 │
00:01:53 #3778 [Verbose] > │ and closure12 (v0 : string) (v1 : System.DateTime) : string = │
00:01:53 #3779 [Verbose] > │ let v2 : (string -> string) = v1.ToString │
00:01:53 #3780 [Verbose] > │ v2 v0 │
00:01:53 #3781 [Verbose] > │ and closure11 () (v0 : string) : (System.DateTime -> string) = │
00:01:53 #3782 [Verbose] > │ closure12(v0) │
00:01:53 #3783 [Verbose] > │ and closure13 () (v0 : System.DateTime) : string = │
00:01:53 #3784 [Verbose] > │ let v1 : (string -> string) = v0.ToString │
00:01:53 #3785 [Verbose] > │ let v2 : string = "yyyy-MM-ddTHH-mm-ss.fff" │
00:01:53 #3786 [Verbose] > │ v1 v2 │
00:01:53 #3787 [Verbose] > │ let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() │
00:01:53 #3788 [Verbose] > │ let date_time_guid_from_date_time x = v0 x │
00:01:53 #3789 [Verbose] > │ let v1 : (System.Guid -> System.DateTime) = closure2() │
00:01:53 #3790 [Verbose] > │ let date_time_from_guid x = v1 x │
00:01:53 #3791 [Verbose] > │ let v2 : (System.Guid -> (int64 -> System.Guid)) = closure6() │
00:01:53 #3792 [Verbose] > │ let timestamp_guid_from_timestamp x = v2 x │
00:01:53 #3793 [Verbose] > │ let v3 : (System.Guid -> int64) = closure8() │
00:01:53 #3794 [Verbose] > │ let timestamp_from_guid x = v3 x │
00:01:53 #3795 [Verbose] > │ let v4 : (System.DateTime -> System.Guid) = closure9() │
00:01:53 #3796 [Verbose] > │ let new_guid_from_date_time x = v4 x │
00:01:53 #3797 [Verbose] > │ let v5 : (int64 -> System.Guid) = closure10() │
00:01:53 #3798 [Verbose] > │ let new_guid_from_timestamp x = v5 x │
00:01:53 #3799 [Verbose] > │ let v6 : (string -> (System.DateTime -> string)) = closure11() │
00:01:53 #3800 [Verbose] > │ let format x = v6 x │
00:01:53 #3801 [Verbose] > │ let v7 : (System.DateTime -> string) = closure13() │
00:01:53 #3802 [Verbose] > │ let format_iso8601 x = v7 x │
00:01:53 #3803 [Verbose] > │ () │
00:01:53 #3804 [Verbose] > │ │
00:01:53 #3805 [Verbose] > │ │
00:01:53 #3806 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:55 #3807 [Verbose] > [NbConvertApp] Converting notebook date_time.dib.ipynb to html
00:01:55 #3808 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:55 #3809 [Verbose] > validate(nb)
00:01:56 #3810 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:56 #3811 [Verbose] > return _pygments_highlight(
00:01:56 #3812 [Verbose] > [NbConvertApp] Writing 373550 bytes to date_time.dib.html
00:01:57 #3813 [Debug] executeAsync / exitCode: 0 / output.Length: 88842
00:01:57 #3814 [Debug] main / executeCommand / exitCode: 0
00:01:57 #3815 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:00 #3816 [Verbose] >
00:02:00 #3817 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:00 #3818 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:00 #3819 [Verbose] > │ # math │
00:02:00 #3820 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:01 #3821 [Verbose] >
00:02:01 #3822 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:01 #3823 [Verbose] > // // test
00:02:01 #3824 [Verbose] >
00:02:01 #3825 [Verbose] > open testing
00:02:04 #3826 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3606-0686-015b10b3476a\main.spi
00:02:05 #3827 [Verbose] >
00:02:05 #3828 [Verbose] > ╭─[ 4.65s - stdout ]───────────────────────────────────────────────────────────╮
00:02:05 #3829 [Verbose] > │ () │
00:02:05 #3830 [Verbose] > │ │
00:02:05 #3831 [Verbose] > │ │
00:02:05 #3832 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:05 #3833 [Verbose] >
00:02:05 #3834 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:05 #3835 [Verbose] > // // test
00:02:05 #3836 [Verbose] >
00:02:05 #3837 [Verbose] > 2 * 2 / 0.4f64 |> sqrt
00:02:05 #3838 [Verbose] > |> _assert_approx_eq None 3.1622776601683795
00:02:05 #3839 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3793-9333-9ce193b896bf\main.spi
00:02:06 #3840 [Verbose] >
00:02:06 #3841 [Verbose] > ╭─[ 1.03s - stdout ]───────────────────────────────────────────────────────────╮
00:02:06 #3842 [Verbose] > │ let rec method0 () : unit = │
00:02:06 #3843 [Verbose] > │ let v0 : string = $"%A{3.1622776601683795}" │
00:02:06 #3844 [Verbose] > │ System.Console.WriteLine v0 │
00:02:06 #3845 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.1622776601683795} / │
00:02:06 #3846 [Verbose] > │ expected: %A{3.1622776601683795}" │
00:02:06 #3847 [Verbose] > │ () │
00:02:06 #3848 [Verbose] > │ method0() │
00:02:06 #3849 [Verbose] > │ │
00:02:06 #3850 [Verbose] > │ 3.16227766 │
00:02:06 #3851 [Verbose] > │ │
00:02:06 #3852 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #3853 [Verbose] >
00:02:06 #3854 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:06 #3855 [Verbose] > // // test
00:02:06 #3856 [Verbose] >
00:02:06 #3857 [Verbose] > 2f64 / 3
00:02:06 #3858 [Verbose] > |> _assert_approx_eq None 0.6666666666666666
00:02:06 #3859 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3897-9706-922b16b13363\main.spi
00:02:06 #3860 [Verbose] >
00:02:06 #3861 [Verbose] > ╭─[ 232.48ms - stdout ]────────────────────────────────────────────────────────╮
00:02:06 #3862 [Verbose] > │ let rec method0 () : unit = │
00:02:06 #3863 [Verbose] > │ let v0 : string = $"%A{0.6666666666666666}" │
00:02:06 #3864 [Verbose] > │ System.Console.WriteLine v0 │
00:02:06 #3865 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.6666666666666666} / │
00:02:06 #3866 [Verbose] > │ expected: %A{0.6666666666666666}" │
00:02:06 #3867 [Verbose] > │ () │
00:02:06 #3868 [Verbose] > │ method0() │
00:02:06 #3869 [Verbose] > │ │
00:02:06 #3870 [Verbose] > │ 0.6666666667 │
00:02:06 #3871 [Verbose] > │ │
00:02:06 #3872 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:06 #3873 [Verbose] >
00:02:06 #3874 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:06 #3875 [Verbose] > // // test
00:02:06 #3876 [Verbose] >
00:02:06 #3877 [Verbose] > 2f64 |> log
00:02:06 #3878 [Verbose] > |> _assert_approx_eq None 0.6931471805599453
00:02:07 #3879 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3920-2064-2f469bdee58a\main.spi
00:02:07 #3880 [Verbose] >
00:02:07 #3881 [Verbose] > ╭─[ 225.21ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #3882 [Verbose] > │ let rec method0 () : unit = │
00:02:07 #3883 [Verbose] > │ let v0 : string = $"%A{0.6931471805599453}" │
00:02:07 #3884 [Verbose] > │ System.Console.WriteLine v0 │
00:02:07 #3885 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.6931471805599453} / │
00:02:07 #3886 [Verbose] > │ expected: %A{0.6931471805599453}" │
00:02:07 #3887 [Verbose] > │ () │
00:02:07 #3888 [Verbose] > │ method0() │
00:02:07 #3889 [Verbose] > │ │
00:02:07 #3890 [Verbose] > │ 0.6931471806 │
00:02:07 #3891 [Verbose] > │ │
00:02:07 #3892 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #3893 [Verbose] >
00:02:07 #3894 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #3895 [Verbose] > // // test
00:02:07 #3896 [Verbose] >
00:02:07 #3897 [Verbose] > pi
00:02:07 #3898 [Verbose] > |> _assert_approx_eq None 3.141592653589793f64
00:02:07 #3899 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3943-4377-460f65bf51e9\main.spi
00:02:07 #3900 [Verbose] >
00:02:07 #3901 [Verbose] > ╭─[ 231.40ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #3902 [Verbose] > │ let rec method0 () : unit = │
00:02:07 #3903 [Verbose] > │ let v0 : string = $"%A{3.141592653589793}" │
00:02:07 #3904 [Verbose] > │ System.Console.WriteLine v0 │
00:02:07 #3905 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.141592653589793} / expected: │
00:02:07 #3906 [Verbose] > │ %A{3.141592653589793}" │
00:02:07 #3907 [Verbose] > │ () │
00:02:07 #3908 [Verbose] > │ method0() │
00:02:07 #3909 [Verbose] > │ │
00:02:07 #3910 [Verbose] > │ 3.141592654 │
00:02:07 #3911 [Verbose] > │ │
00:02:07 #3912 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #3913 [Verbose] >
00:02:07 #3914 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #3915 [Verbose] > // // test
00:02:07 #3916 [Verbose] >
00:02:07 #3917 [Verbose] > pi |> cos
00:02:07 #3918 [Verbose] > |> _assert_eq -1f64
00:02:07 #3919 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3967-6742-68c0c6c94ece\main.spi
00:02:07 #3920 [Verbose] >
00:02:07 #3921 [Verbose] > ╭─[ 214.35ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #3922 [Verbose] > │ let rec method0 () : unit = │
00:02:07 #3923 [Verbose] > │ let v0 : string = $"%A{-1.0}" │
00:02:07 #3924 [Verbose] > │ System.Console.WriteLine v0 │
00:02:07 #3925 [Verbose] > │ let v1 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}" │
00:02:07 #3926 [Verbose] > │ () │
00:02:07 #3927 [Verbose] > │ method0() │
00:02:07 #3928 [Verbose] > │ │
00:02:07 #3929 [Verbose] > │ -1.0 │
00:02:07 #3930 [Verbose] > │ │
00:02:07 #3931 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #3932 [Verbose] >
00:02:07 #3933 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #3934 [Verbose] > // // test
00:02:07 #3935 [Verbose] >
00:02:07 #3936 [Verbose] > pi
00:02:07 #3937 [Verbose] > |> cos
00:02:07 #3938 [Verbose] > |> fun n => n / 2f64
00:02:07 #3939 [Verbose] > |> _assert_approx_eq None -0.5
00:02:07 #3940 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3989-8955-8eba8c7671a3\main.spi
00:02:07 #3941 [Verbose] >
00:02:07 #3942 [Verbose] > ╭─[ 213.39ms - stdout ]────────────────────────────────────────────────────────╮
00:02:07 #3943 [Verbose] > │ let rec method0 () : unit = │
00:02:07 #3944 [Verbose] > │ let v0 : string = $"%A{-0.5}" │
00:02:07 #3945 [Verbose] > │ System.Console.WriteLine v0 │
00:02:07 #3946 [Verbose] > │ let v1 : string = $"__expect / actual: %A{-0.5} / expected: %A{-0.5}" │
00:02:07 #3947 [Verbose] > │ () │
00:02:07 #3948 [Verbose] > │ method0() │
00:02:07 #3949 [Verbose] > │ │
00:02:07 #3950 [Verbose] > │ -0.5 │
00:02:07 #3951 [Verbose] > │ │
00:02:07 #3952 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:07 #3953 [Verbose] >
00:02:07 #3954 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:07 #3955 [Verbose] > // // test
00:02:07 #3956 [Verbose] >
00:02:07 #3957 [Verbose] > pi / 2 |> cos
00:02:07 #3958 [Verbose] > |> _assert_approx_eq None 0.00000000000000006123233995736766f64
00:02:07 #3959 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4011-1163-1b2381972525\main.spi
00:02:08 #3960 [Verbose] >
00:02:08 #3961 [Verbose] > ╭─[ 242.28ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #3962 [Verbose] > │ let rec method0 () : unit = │
00:02:08 #3963 [Verbose] > │ let v0 : string = $"%A{6.123233995736766E-17}" │
00:02:08 #3964 [Verbose] > │ System.Console.WriteLine v0 │
00:02:08 #3965 [Verbose] > │ let v1 : string = $"__expect / actual: %A{6.123233995736766E-17} / │
00:02:08 #3966 [Verbose] > │ expected: %A{6.123233995736766E-17}" │
00:02:08 #3967 [Verbose] > │ () │
00:02:08 #3968 [Verbose] > │ method0() │
00:02:08 #3969 [Verbose] > │ │
00:02:08 #3970 [Verbose] > │ 6.123233996e-17 │
00:02:08 #3971 [Verbose] > │ │
00:02:08 #3972 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #3973 [Verbose] >
00:02:08 #3974 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #3975 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #3976 [Verbose] > │ ## atan2 │
00:02:08 #3977 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #3978 [Verbose] >
00:02:08 #3979 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #3980 [Verbose] > inl atan2 (y : f64) (x : f64) =
00:02:08 #3981 [Verbose] > $"System.Math.Atan2 (!y, !x)" : f64
00:02:08 #3982 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4037-3701-3bc60154cb6f\main.spi
00:02:08 #3983 [Verbose] >
00:02:08 #3984 [Verbose] > ╭─[ 195.56ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #3985 [Verbose] > │ () │
00:02:08 #3986 [Verbose] > │ │
00:02:08 #3987 [Verbose] > │ │
00:02:08 #3988 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #3989 [Verbose] >
00:02:08 #3990 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #3991 [Verbose] > // // test
00:02:08 #3992 [Verbose] >
00:02:08 #3993 [Verbose] > 0 |> atan2 1
00:02:08 #3994 [Verbose] > |> _assert_eq 1.5707963267948966
00:02:08 #3995 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4056-5639-515d2ac5b6ef\main.spi
00:02:08 #3996 [Verbose] >
00:02:08 #3997 [Verbose] > ╭─[ 352.11ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #3998 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:08 #3999 [Verbose] > │ v0 │
00:02:08 #4000 [Verbose] > │ and method0 () : unit = │
00:02:08 #4001 [Verbose] > │ let v0 : float = System.Math.Atan2 (1.0, 0.0) │
00:02:08 #4002 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:02:08 #4003 [Verbose] > │ System.Console.WriteLine v1 │
00:02:08 #4004 [Verbose] > │ let v2 : bool = v0 = 1.5707963267948966 │
00:02:08 #4005 [Verbose] > │ let v4 : bool = │
00:02:08 #4006 [Verbose] > │ if v2 then │
00:02:08 #4007 [Verbose] > │ true │
00:02:08 #4008 [Verbose] > │ else │
00:02:08 #4009 [Verbose] > │ method1(v2) │
00:02:08 #4010 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: │
00:02:08 #4011 [Verbose] > │ %A{1.5707963267948966}" │
00:02:08 #4012 [Verbose] > │ let v6 : bool = v4 = false │
00:02:08 #4013 [Verbose] > │ if v6 then │
00:02:08 #4014 [Verbose] > │ failwith<unit> v5 │
00:02:08 #4015 [Verbose] > │ method0() │
00:02:08 #4016 [Verbose] > │ │
00:02:08 #4017 [Verbose] > │ 1.570796327 │
00:02:08 #4018 [Verbose] > │ │
00:02:08 #4019 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #4020 [Verbose] >
00:02:08 #4021 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #4022 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #4023 [Verbose] > │ ## e │
00:02:08 #4024 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #4025 [Verbose] >
00:02:08 #4026 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #4027 [Verbose] > inl e () =
00:02:08 #4028 [Verbose] > exp 1f64
00:02:08 #4029 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4093-9301-9b1b7387a140\main.spi
00:02:08 #4030 [Verbose] >
00:02:08 #4031 [Verbose] > ╭─[ 229.04ms - stdout ]────────────────────────────────────────────────────────╮
00:02:08 #4032 [Verbose] > │ () │
00:02:08 #4033 [Verbose] > │ │
00:02:08 #4034 [Verbose] > │ │
00:02:08 #4035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #4036 [Verbose] >
00:02:08 #4037 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:08 #4038 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:08 #4039 [Verbose] > │ ## floor │
00:02:08 #4040 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:08 #4041 [Verbose] >
00:02:08 #4042 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:08 #4043 [Verbose] > inl floor forall t {float}. (n : t) : t =
00:02:08 #4044 [Verbose] > n |> $'floor'
00:02:09 #4045 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4116-1657-182c4d93a37d\main.spi
00:02:09 #4046 [Verbose] >
00:02:09 #4047 [Verbose] > ╭─[ 193.79ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #4048 [Verbose] > │ () │
00:02:09 #4049 [Verbose] > │ │
00:02:09 #4050 [Verbose] > │ │
00:02:09 #4051 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #4052 [Verbose] >
00:02:09 #4053 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #4054 [Verbose] > // // test
00:02:09 #4055 [Verbose] >
00:02:09 #4056 [Verbose] > 0.6 |> floor
00:02:09 #4057 [Verbose] > |> _assert_eq 0f64
00:02:09 #4058 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4136-3620-3e6c6a0fcb6e\main.spi
00:02:09 #4059 [Verbose] >
00:02:09 #4060 [Verbose] > ╭─[ 295.52ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #4061 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:09 #4062 [Verbose] > │ v0 │
00:02:09 #4063 [Verbose] > │ and method0 () : unit = │
00:02:09 #4064 [Verbose] > │ let v0 : (float -> float) = floor │
00:02:09 #4065 [Verbose] > │ let v1 : float = v0 0.6 │
00:02:09 #4066 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:02:09 #4067 [Verbose] > │ System.Console.WriteLine v2 │
00:02:09 #4068 [Verbose] > │ let v3 : bool = v1 = 0.0 │
00:02:09 #4069 [Verbose] > │ let v5 : bool = │
00:02:09 #4070 [Verbose] > │ if v3 then │
00:02:09 #4071 [Verbose] > │ true │
00:02:09 #4072 [Verbose] > │ else │
00:02:09 #4073 [Verbose] > │ method1(v3) │
00:02:09 #4074 [Verbose] > │ let v6 : string = $"__expect / actual: %A{v1} / expected: %A{0.0}" │
00:02:09 #4075 [Verbose] > │ let v7 : bool = v5 = false │
00:02:09 #4076 [Verbose] > │ if v7 then │
00:02:09 #4077 [Verbose] > │ failwith<unit> v6 │
00:02:09 #4078 [Verbose] > │ method0() │
00:02:09 #4079 [Verbose] > │ │
00:02:09 #4080 [Verbose] > │ 0.0 │
00:02:09 #4081 [Verbose] > │ │
00:02:09 #4082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #4083 [Verbose] >
00:02:09 #4084 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #4085 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #4086 [Verbose] > │ ## ceil │
00:02:09 #4087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #4088 [Verbose] >
00:02:09 #4089 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #4090 [Verbose] > inl ceil forall t {float}. (n : t) : t =
00:02:09 #4091 [Verbose] > n |> $'ceil'
00:02:09 #4092 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4167-6732-61eafe87c66e\main.spi
00:02:09 #4093 [Verbose] >
00:02:09 #4094 [Verbose] > ╭─[ 233.63ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #4095 [Verbose] > │ () │
00:02:09 #4096 [Verbose] > │ │
00:02:09 #4097 [Verbose] > │ │
00:02:09 #4098 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #4099 [Verbose] >
00:02:09 #4100 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #4101 [Verbose] > // // test
00:02:09 #4102 [Verbose] >
00:02:09 #4103 [Verbose] > 0.6 |> ceil
00:02:09 #4104 [Verbose] > |> _assert_eq 1f64
00:02:09 #4105 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4190-9092-99a0d3ae9fdf\main.spi
00:02:09 #4106 [Verbose] >
00:02:09 #4107 [Verbose] > ╭─[ 239.56ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #4108 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:09 #4109 [Verbose] > │ v0 │
00:02:09 #4110 [Verbose] > │ and method0 () : unit = │
00:02:09 #4111 [Verbose] > │ let v0 : (float -> float) = ceil │
00:02:09 #4112 [Verbose] > │ let v1 : float = v0 0.6 │
00:02:09 #4113 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:02:09 #4114 [Verbose] > │ System.Console.WriteLine v2 │
00:02:09 #4115 [Verbose] > │ let v3 : bool = v1 = 1.0 │
00:02:09 #4116 [Verbose] > │ let v5 : bool = │
00:02:09 #4117 [Verbose] > │ if v3 then │
00:02:09 #4118 [Verbose] > │ true │
00:02:09 #4119 [Verbose] > │ else │
00:02:09 #4120 [Verbose] > │ method1(v3) │
00:02:09 #4121 [Verbose] > │ let v6 : string = $"__expect / actual: %A{v1} / expected: %A{1.0}" │
00:02:09 #4122 [Verbose] > │ let v7 : bool = v5 = false │
00:02:09 #4123 [Verbose] > │ if v7 then │
00:02:09 #4124 [Verbose] > │ failwith<unit> v6 │
00:02:09 #4125 [Verbose] > │ method0() │
00:02:09 #4126 [Verbose] > │ │
00:02:09 #4127 [Verbose] > │ 1.0 │
00:02:09 #4128 [Verbose] > │ │
00:02:09 #4129 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #4130 [Verbose] >
00:02:09 #4131 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #4132 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #4133 [Verbose] > │ ## round │
00:02:09 #4134 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #4135 [Verbose] >
00:02:09 #4136 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #4137 [Verbose] > inl round forall t {float}. (n : t) : t =
00:02:09 #4138 [Verbose] > n |> $'round'
00:02:10 #4139 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4216-1656-1a7eea6474c3\main.spi
00:02:10 #4140 [Verbose] >
00:02:10 #4141 [Verbose] > ╭─[ 212.23ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #4142 [Verbose] > │ () │
00:02:10 #4143 [Verbose] > │ │
00:02:10 #4144 [Verbose] > │ │
00:02:10 #4145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4146 [Verbose] >
00:02:10 #4147 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #4148 [Verbose] > // // test
00:02:10 #4149 [Verbose] >
00:02:10 #4150 [Verbose] > 0.5 |> round
00:02:10 #4151 [Verbose] > |> _assert_eq 0f64
00:02:10 #4152 [Verbose] >
00:02:10 #4153 [Verbose] > 1.5 |> round
00:02:10 #4154 [Verbose] > |> _assert_eq 2f64
00:02:10 #4155 [Verbose] >
00:02:10 #4156 [Verbose] > 2.5 |> round
00:02:10 #4157 [Verbose] > |> _assert_eq 2f64
00:02:10 #4158 [Verbose] >
00:02:10 #4159 [Verbose] > 3.5 |> round
00:02:10 #4160 [Verbose] > |> _assert_eq 4f64
00:02:10 #4161 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4238-3802-38c1a24c78e4\main.spi
00:02:10 #4162 [Verbose] >
00:02:10 #4163 [Verbose] > ╭─[ 277.58ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #4164 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:10 #4165 [Verbose] > │ v0 │
00:02:10 #4166 [Verbose] > │ and method0 () : unit = │
00:02:10 #4167 [Verbose] > │ let v0 : (float -> float) = round │
00:02:10 #4168 [Verbose] > │ let v1 : float = v0 0.5 │
00:02:10 #4169 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:02:10 #4170 [Verbose] > │ System.Console.WriteLine v2 │
00:02:10 #4171 [Verbose] > │ let v3 : bool = v1 = 0.0 │
00:02:10 #4172 [Verbose] > │ let v5 : bool = │
00:02:10 #4173 [Verbose] > │ if v3 then │
00:02:10 #4174 [Verbose] > │ true │
00:02:10 #4175 [Verbose] > │ else │
00:02:10 #4176 [Verbose] > │ method1(v3) │
00:02:10 #4177 [Verbose] > │ let v6 : string = $"__expect / actual: %A{v1} / expected: %A{0.0}" │
00:02:10 #4178 [Verbose] > │ let v7 : bool = v5 = false │
00:02:10 #4179 [Verbose] > │ if v7 then │
00:02:10 #4180 [Verbose] > │ failwith<unit> v6 │
00:02:10 #4181 [Verbose] > │ let v8 : (float -> float) = round │
00:02:10 #4182 [Verbose] > │ let v9 : float = v8 1.5 │
00:02:10 #4183 [Verbose] > │ let v10 : string = $"%A{v9}" │
00:02:10 #4184 [Verbose] > │ System.Console.WriteLine v10 │
00:02:10 #4185 [Verbose] > │ let v11 : bool = v9 = 2.0 │
00:02:10 #4186 [Verbose] > │ let v13 : bool = │
00:02:10 #4187 [Verbose] > │ if v11 then │
00:02:10 #4188 [Verbose] > │ true │
00:02:10 #4189 [Verbose] > │ else │
00:02:10 #4190 [Verbose] > │ method1(v11) │
00:02:10 #4191 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v9} / expected: %A{2.0}" │
00:02:10 #4192 [Verbose] > │ let v15 : bool = v13 = false │
00:02:10 #4193 [Verbose] > │ if v15 then │
00:02:10 #4194 [Verbose] > │ failwith<unit> v14 │
00:02:10 #4195 [Verbose] > │ let v16 : (float -> float) = round │
00:02:10 #4196 [Verbose] > │ let v17 : float = v16 2.5 │
00:02:10 #4197 [Verbose] > │ let v18 : string = $"%A{v17}" │
00:02:10 #4198 [Verbose] > │ System.Console.WriteLine v18 │
00:02:10 #4199 [Verbose] > │ let v19 : bool = v17 = 2.0 │
00:02:10 #4200 [Verbose] > │ let v21 : bool = │
00:02:10 #4201 [Verbose] > │ if v19 then │
00:02:10 #4202 [Verbose] > │ true │
00:02:10 #4203 [Verbose] > │ else │
00:02:10 #4204 [Verbose] > │ method1(v19) │
00:02:10 #4205 [Verbose] > │ let v22 : string = $"__expect / actual: %A{v17} / expected: %A{2.0}" │
00:02:10 #4206 [Verbose] > │ let v23 : bool = v21 = false │
00:02:10 #4207 [Verbose] > │ if v23 then │
00:02:10 #4208 [Verbose] > │ failwith<unit> v22 │
00:02:10 #4209 [Verbose] > │ let v24 : (float -> float) = round │
00:02:10 #4210 [Verbose] > │ let v25 : float = v24 3.5 │
00:02:10 #4211 [Verbose] > │ let v26 : string = $"%A{v25}" │
00:02:10 #4212 [Verbose] > │ System.Console.WriteLine v26 │
00:02:10 #4213 [Verbose] > │ let v27 : bool = v25 = 4.0 │
00:02:10 #4214 [Verbose] > │ let v29 : bool = │
00:02:10 #4215 [Verbose] > │ if v27 then │
00:02:10 #4216 [Verbose] > │ true │
00:02:10 #4217 [Verbose] > │ else │
00:02:10 #4218 [Verbose] > │ method1(v27) │
00:02:10 #4219 [Verbose] > │ let v30 : string = $"__expect / actual: %A{v25} / expected: %A{4.0}" │
00:02:10 #4220 [Verbose] > │ let v31 : bool = v29 = false │
00:02:10 #4221 [Verbose] > │ if v31 then │
00:02:10 #4222 [Verbose] > │ failwith<unit> v30 │
00:02:10 #4223 [Verbose] > │ method0() │
00:02:10 #4224 [Verbose] > │ │
00:02:10 #4225 [Verbose] > │ 0.0 │
00:02:10 #4226 [Verbose] > │ 2.0 │
00:02:10 #4227 [Verbose] > │ 2.0 │
00:02:10 #4228 [Verbose] > │ 4.0 │
00:02:10 #4229 [Verbose] > │ │
00:02:10 #4230 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4231 [Verbose] >
00:02:10 #4232 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:10 #4233 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:10 #4234 [Verbose] > │ ## log_base │
00:02:10 #4235 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4236 [Verbose] >
00:02:10 #4237 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #4238 [Verbose] > inl log_base (new_base : f64) (a : f64) =
00:02:10 #4239 [Verbose] > $"System.Math.Log (!a, !new_base)" : f64
00:02:10 #4240 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4269-6929-604a40056924\main.spi
00:02:10 #4241 [Verbose] >
00:02:10 #4242 [Verbose] > ╭─[ 222.96ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #4243 [Verbose] > │ () │
00:02:10 #4244 [Verbose] > │ │
00:02:10 #4245 [Verbose] > │ │
00:02:10 #4246 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4247 [Verbose] >
00:02:10 #4248 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #4249 [Verbose] > // // test
00:02:10 #4250 [Verbose] >
00:02:10 #4251 [Verbose] > 100 |> log_base 10
00:02:10 #4252 [Verbose] > |> _assert_eq 2
00:02:10 #4253 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4292-9254-97cdf37b89e9\main.spi
00:02:10 #4254 [Verbose] >
00:02:10 #4255 [Verbose] > ╭─[ 250.12ms - stdout ]────────────────────────────────────────────────────────╮
00:02:10 #4256 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:10 #4257 [Verbose] > │ v0 │
00:02:10 #4258 [Verbose] > │ and method0 () : unit = │
00:02:10 #4259 [Verbose] > │ let v0 : float = System.Math.Log (100.0, 10.0) │
00:02:10 #4260 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:02:10 #4261 [Verbose] > │ System.Console.WriteLine v1 │
00:02:10 #4262 [Verbose] > │ let v2 : bool = v0 = 2.0 │
00:02:10 #4263 [Verbose] > │ let v4 : bool = │
00:02:10 #4264 [Verbose] > │ if v2 then │
00:02:10 #4265 [Verbose] > │ true │
00:02:10 #4266 [Verbose] > │ else │
00:02:10 #4267 [Verbose] > │ method1(v2) │
00:02:10 #4268 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}" │
00:02:10 #4269 [Verbose] > │ let v6 : bool = v4 = false │
00:02:10 #4270 [Verbose] > │ if v6 then │
00:02:10 #4271 [Verbose] > │ failwith<unit> v5 │
00:02:10 #4272 [Verbose] > │ method0() │
00:02:10 #4273 [Verbose] > │ │
00:02:10 #4274 [Verbose] > │ 2.0 │
00:02:10 #4275 [Verbose] > │ │
00:02:10 #4276 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4277 [Verbose] >
00:02:10 #4278 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:10 #4279 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:10 #4280 [Verbose] > │ ## round │
00:02:10 #4281 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:10 #4282 [Verbose] >
00:02:10 #4283 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:10 #4284 [Verbose] > inl round forall t {float}. (x : t) : t =
00:02:10 #4285 [Verbose] > $"round !x"
00:02:11 #4286 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4319-1903-155a7697d67a\main.spi
00:02:11 #4287 [Verbose] >
00:02:11 #4288 [Verbose] > ╭─[ 251.05ms - stdout ]────────────────────────────────────────────────────────╮
00:02:11 #4289 [Verbose] > │ () │
00:02:11 #4290 [Verbose] > │ │
00:02:11 #4291 [Verbose] > │ │
00:02:11 #4292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #4293 [Verbose] >
00:02:11 #4294 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:11 #4295 [Verbose] > // // test
00:02:11 #4296 [Verbose] >
00:02:11 #4297 [Verbose] > 0.5 |> round
00:02:11 #4298 [Verbose] > |> _assert_eq 0f64
00:02:11 #4299 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4344-4440-4ba5f3ce26b0\main.spi
00:02:11 #4300 [Verbose] >
00:02:11 #4301 [Verbose] > ╭─[ 235.90ms - stdout ]────────────────────────────────────────────────────────╮
00:02:11 #4302 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:11 #4303 [Verbose] > │ v0 │
00:02:11 #4304 [Verbose] > │ and method0 () : unit = │
00:02:11 #4305 [Verbose] > │ let v0 : float = round 0.5 │
00:02:11 #4306 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:02:11 #4307 [Verbose] > │ System.Console.WriteLine v1 │
00:02:11 #4308 [Verbose] > │ let v2 : bool = v0 = 0.0 │
00:02:11 #4309 [Verbose] > │ let v4 : bool = │
00:02:11 #4310 [Verbose] > │ if v2 then │
00:02:11 #4311 [Verbose] > │ true │
00:02:11 #4312 [Verbose] > │ else │
00:02:11 #4313 [Verbose] > │ method1(v2) │
00:02:11 #4314 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: %A{0.0}" │
00:02:11 #4315 [Verbose] > │ let v6 : bool = v4 = false │
00:02:11 #4316 [Verbose] > │ if v6 then │
00:02:11 #4317 [Verbose] > │ failwith<unit> v5 │
00:02:11 #4318 [Verbose] > │ method0() │
00:02:11 #4319 [Verbose] > │ │
00:02:11 #4320 [Verbose] > │ 0.0 │
00:02:11 #4321 [Verbose] > │ │
00:02:11 #4322 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #4323 [Verbose] >
00:02:11 #4324 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:11 #4325 [Verbose] > // // test
00:02:11 #4326 [Verbose] >
00:02:11 #4327 [Verbose] > 0.6 |> round
00:02:11 #4328 [Verbose] > |> _assert_eq 1f64
00:02:11 #4329 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4369-6939-6b891a239be7\main.spi
00:02:11 #4330 [Verbose] >
00:02:11 #4331 [Verbose] > ╭─[ 257.90ms - stdout ]────────────────────────────────────────────────────────╮
00:02:11 #4332 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:11 #4333 [Verbose] > │ v0 │
00:02:11 #4334 [Verbose] > │ and method0 () : unit = │
00:02:11 #4335 [Verbose] > │ let v0 : float = round 0.6 │
00:02:11 #4336 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:02:11 #4337 [Verbose] > │ System.Console.WriteLine v1 │
00:02:11 #4338 [Verbose] > │ let v2 : bool = v0 = 1.0 │
00:02:11 #4339 [Verbose] > │ let v4 : bool = │
00:02:11 #4340 [Verbose] > │ if v2 then │
00:02:11 #4341 [Verbose] > │ true │
00:02:11 #4342 [Verbose] > │ else │
00:02:11 #4343 [Verbose] > │ method1(v2) │
00:02:11 #4344 [Verbose] > │ let v5 : string = $"__expect / actual: %A{v0} / expected: %A{1.0}" │
00:02:11 #4345 [Verbose] > │ let v6 : bool = v4 = false │
00:02:11 #4346 [Verbose] > │ if v6 then │
00:02:11 #4347 [Verbose] > │ failwith<unit> v5 │
00:02:11 #4348 [Verbose] > │ method0() │
00:02:11 #4349 [Verbose] > │ │
00:02:11 #4350 [Verbose] > │ 1.0 │
00:02:11 #4351 [Verbose] > │ │
00:02:11 #4352 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #4353 [Verbose] >
00:02:11 #4354 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:11 #4355 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:11 #4356 [Verbose] > │ ## square │
00:02:11 #4357 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:11 #4358 [Verbose] >
00:02:11 #4359 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:11 #4360 [Verbose] > inl square x =
00:02:11 #4361 [Verbose] > x ** 2
00:02:11 #4362 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4396-9664-93f0d69dfb0b\main.spi
00:02:12 #4363 [Verbose] >
00:02:12 #4364 [Verbose] > ╭─[ 552.41ms - stdout ]────────────────────────────────────────────────────────╮
00:02:12 #4365 [Verbose] > │ () │
00:02:12 #4366 [Verbose] > │ │
00:02:12 #4367 [Verbose] > │ │
00:02:12 #4368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:12 #4369 [Verbose] >
00:02:12 #4370 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:12 #4371 [Verbose] > // // test
00:02:12 #4372 [Verbose] >
00:02:12 #4373 [Verbose] > 5f64
00:02:12 #4374 [Verbose] > |> sqrt
00:02:12 #4375 [Verbose] > |> square
00:02:12 #4376 [Verbose] > |> _assert_approx_eq None 5
00:02:12 #4377 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4452-5211-5e2657311602\main.spi
00:02:12 #4378 [Verbose] >
00:02:12 #4379 [Verbose] > ╭─[ 356.96ms - stdout ]────────────────────────────────────────────────────────╮
00:02:12 #4380 [Verbose] > │ let rec method0 () : unit = │
00:02:12 #4381 [Verbose] > │ let v0 : string = $"%A{5.000000000000001}" │
00:02:12 #4382 [Verbose] > │ System.Console.WriteLine v0 │
00:02:12 #4383 [Verbose] > │ let v1 : string = $"__expect / actual: %A{5.000000000000001} / expected: │
00:02:12 #4384 [Verbose] > │ %A{5.0}" │
00:02:12 #4385 [Verbose] > │ () │
00:02:12 #4386 [Verbose] > │ method0() │
00:02:12 #4387 [Verbose] > │ │
00:02:12 #4388 [Verbose] > │ 5.0 │
00:02:12 #4389 [Verbose] > │ │
00:02:12 #4390 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:12 #4391 [Verbose] >
00:02:12 #4392 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:12 #4393 [Verbose] > // // test
00:02:12 #4394 [Verbose] >
00:02:12 #4395 [Verbose] > e () |> square
00:02:12 #4396 [Verbose] > |> _assert_approx_eq None 7.3890560989306495
00:02:12 #4397 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4488-8886-85b697637dfc\main.spi
00:02:12 #4398 [Verbose] >
00:02:12 #4399 [Verbose] > ╭─[ 263.13ms - stdout ]────────────────────────────────────────────────────────╮
00:02:12 #4400 [Verbose] > │ let rec method0 () : unit = │
00:02:12 #4401 [Verbose] > │ let v0 : string = $"%A{7.3890560989306495}" │
00:02:12 #4402 [Verbose] > │ System.Console.WriteLine v0 │
00:02:12 #4403 [Verbose] > │ let v1 : string = $"__expect / actual: %A{7.3890560989306495} / │
00:02:12 #4404 [Verbose] > │ expected: %A{7.3890560989306495}" │
00:02:12 #4405 [Verbose] > │ () │
00:02:12 #4406 [Verbose] > │ method0() │
00:02:12 #4407 [Verbose] > │ │
00:02:12 #4408 [Verbose] > │ 7.389056099 │
00:02:12 #4409 [Verbose] > │ │
00:02:12 #4410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:15 #4411 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html
00:02:15 #4412 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:15 #4413 [Verbose] > validate(nb)
00:02:16 #4414 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:16 #4415 [Verbose] > return _pygments_highlight(
00:02:16 #4416 [Verbose] > [NbConvertApp] Writing 313224 bytes to math.dib.html
00:02:17 #4417 [Debug] executeAsync / exitCode: 0 / output.Length: 35922
00:02:17 #4418 [Debug] main / executeCommand / exitCode: 0
00:02:17 #4419 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"optionm'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:20 #4420 [Verbose] >
00:02:20 #4421 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:20 #4422 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:20 #4423 [Verbose] > │ # optionm │
00:02:20 #4424 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #4425 [Verbose] >
00:02:20 #4426 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:20 #4427 [Verbose] > // // test
00:02:20 #4428 [Verbose] >
00:02:20 #4429 [Verbose] > open testing
00:02:23 #4430 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5534-3449-300db1f5f954\main.spi
00:02:24 #4431 [Verbose] >
00:02:25 #4432 [Verbose] > ╭─[ 4.65s - stdout ]───────────────────────────────────────────────────────────╮
00:02:25 #4433 [Verbose] > │ () │
00:02:25 #4434 [Verbose] > │ │
00:02:25 #4435 [Verbose] > │ │
00:02:25 #4436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #4437 [Verbose] >
00:02:25 #4438 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #4439 [Verbose] > open rust_operators
00:02:25 #4440 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5728-2847-272c76d68851\main.spi
00:02:25 #4441 [Verbose] >
00:02:25 #4442 [Verbose] > ╭─[ 226.37ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #4443 [Verbose] > │ () │
00:02:25 #4444 [Verbose] > │ │
00:02:25 #4445 [Verbose] > │ │
00:02:25 #4446 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #4447 [Verbose] >
00:02:25 #4448 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:25 #4449 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:25 #4450 [Verbose] > │ ## default_value │
00:02:25 #4451 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #4452 [Verbose] >
00:02:25 #4453 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #4454 [Verbose] > inl default_value d =
00:02:25 #4455 [Verbose] > optionm.defaultWith d
00:02:25 #4456 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5751-5182-503b72f62274\main.spi
00:02:25 #4457 [Verbose] >
00:02:25 #4458 [Verbose] > ╭─[ 225.16ms - stdout ]────────────────────────────────────────────────────────╮
00:02:25 #4459 [Verbose] > │ () │
00:02:25 #4460 [Verbose] > │ │
00:02:25 #4461 [Verbose] > │ │
00:02:25 #4462 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:25 #4463 [Verbose] >
00:02:25 #4464 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:25 #4465 [Verbose] > // // test
00:02:25 #4466 [Verbose] >
00:02:25 #4467 [Verbose] > None
00:02:25 #4468 [Verbose] > |> default_value 3i32
00:02:25 #4469 [Verbose] > |> _assert_eq 3i32
00:02:25 #4470 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5774-7432-7bb0407099fa\main.spi
00:02:26 #4471 [Verbose] >
00:02:26 #4472 [Verbose] > ╭─[ 983.94ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #4473 [Verbose] > │ let rec method0 () : unit = │
00:02:26 #4474 [Verbose] > │ let v0 : string = $"%A{3}" │
00:02:26 #4475 [Verbose] > │ System.Console.WriteLine v0 │
00:02:26 #4476 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}" │
00:02:26 #4477 [Verbose] > │ () │
00:02:26 #4478 [Verbose] > │ method0() │
00:02:26 #4479 [Verbose] > │ │
00:02:26 #4480 [Verbose] > │ 3 │
00:02:26 #4481 [Verbose] > │ │
00:02:26 #4482 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #4483 [Verbose] >
00:02:26 #4484 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:26 #4485 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:26 #4486 [Verbose] > │ ## (/??) │
00:02:26 #4487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #4488 [Verbose] >
00:02:26 #4489 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #4490 [Verbose] > inl (/??) a b =
00:02:26 #4491 [Verbose] > a |> default_value b
00:02:26 #4492 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5873-7357-7953832c2005\main.spi
00:02:26 #4493 [Verbose] >
00:02:26 #4494 [Verbose] > ╭─[ 229.93ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #4495 [Verbose] > │ () │
00:02:26 #4496 [Verbose] > │ │
00:02:26 #4497 [Verbose] > │ │
00:02:26 #4498 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #4499 [Verbose] >
00:02:26 #4500 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #4501 [Verbose] > // // test
00:02:26 #4502 [Verbose] >
00:02:26 #4503 [Verbose] > None /?? 3i32
00:02:26 #4504 [Verbose] > |> _assert_eq 3i32
00:02:26 #4505 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5896-9678-9fd147b0a923\main.spi
00:02:26 #4506 [Verbose] >
00:02:26 #4507 [Verbose] > ╭─[ 218.07ms - stdout ]────────────────────────────────────────────────────────╮
00:02:26 #4508 [Verbose] > │ let rec method0 () : unit = │
00:02:26 #4509 [Verbose] > │ let v0 : string = $"%A{3}" │
00:02:26 #4510 [Verbose] > │ System.Console.WriteLine v0 │
00:02:26 #4511 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}" │
00:02:26 #4512 [Verbose] > │ () │
00:02:26 #4513 [Verbose] > │ method0() │
00:02:26 #4514 [Verbose] > │ │
00:02:26 #4515 [Verbose] > │ 3 │
00:02:26 #4516 [Verbose] > │ │
00:02:26 #4517 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #4518 [Verbose] >
00:02:26 #4519 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:26 #4520 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:26 #4521 [Verbose] > │ ## default_with │
00:02:26 #4522 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:26 #4523 [Verbose] >
00:02:26 #4524 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:26 #4525 [Verbose] > inl default_with fn =
00:02:26 #4526 [Verbose] > function Some x => x | None => fn ()
00:02:27 #4527 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5919-1928-1a04973b9b52\main.spi
00:02:27 #4528 [Verbose] >
00:02:27 #4529 [Verbose] > ╭─[ 200.31ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #4530 [Verbose] > │ () │
00:02:27 #4531 [Verbose] > │ │
00:02:27 #4532 [Verbose] > │ │
00:02:27 #4533 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #4534 [Verbose] >
00:02:27 #4535 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #4536 [Verbose] > // // test
00:02:27 #4537 [Verbose] >
00:02:27 #4538 [Verbose] > None
00:02:27 #4539 [Verbose] > |> default_with (fun () => 3i32)
00:02:27 #4540 [Verbose] > |> _assert_eq 3i32
00:02:27 #4541 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5939-3976-3a7097b85aa7\main.spi
00:02:27 #4542 [Verbose] >
00:02:27 #4543 [Verbose] > ╭─[ 229.00ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #4544 [Verbose] > │ let rec method0 () : unit = │
00:02:27 #4545 [Verbose] > │ let v0 : string = $"%A{3}" │
00:02:27 #4546 [Verbose] > │ System.Console.WriteLine v0 │
00:02:27 #4547 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}" │
00:02:27 #4548 [Verbose] > │ () │
00:02:27 #4549 [Verbose] > │ method0() │
00:02:27 #4550 [Verbose] > │ │
00:02:27 #4551 [Verbose] > │ 3 │
00:02:27 #4552 [Verbose] > │ │
00:02:27 #4553 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #4554 [Verbose] >
00:02:27 #4555 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:27 #4556 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:27 #4557 [Verbose] > │ ## choose │
00:02:27 #4558 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #4559 [Verbose] >
00:02:27 #4560 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #4561 [Verbose] > inl choose fn a b =
00:02:27 #4562 [Verbose] > match a, b with
00:02:27 #4563 [Verbose] > | Some x, Some y => fn x y |> Some
00:02:27 #4564 [Verbose] > | _ => None
00:02:27 #4565 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5963-6351-68a3bac8bf4e\main.spi
00:02:27 #4566 [Verbose] >
00:02:27 #4567 [Verbose] > ╭─[ 196.13ms - stdout ]────────────────────────────────────────────────────────╮
00:02:27 #4568 [Verbose] > │ () │
00:02:27 #4569 [Verbose] > │ │
00:02:27 #4570 [Verbose] > │ │
00:02:27 #4571 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:27 #4572 [Verbose] >
00:02:27 #4573 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:27 #4574 [Verbose] > // // test
00:02:27 #4575 [Verbose] >
00:02:27 #4576 [Verbose] > (Some 2i32, Some 3)
00:02:27 #4577 [Verbose] > ||> choose (+)
00:02:27 #4578 [Verbose] > |> _assert_eq (Some 5)
00:02:27 #4579 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5983-8337-842fd4163d08\main.spi
00:02:28 #4580 [Verbose] >
00:02:28 #4581 [Verbose] > ╭─[ 819.98ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #4582 [Verbose] > │ type [<Struct>] US0 = │
00:02:28 #4583 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:02:28 #4584 [Verbose] > │ | US0_1 │
00:02:28 #4585 [Verbose] > │ let rec method0 () : unit = │
00:02:28 #4586 [Verbose] > │ let v0 : US0 = US0_0(5) │
00:02:28 #4587 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:02:28 #4588 [Verbose] > │ System.Console.WriteLine v1 │
00:02:28 #4589 [Verbose] > │ let v5 : US0 = US0_0(5) │
00:02:28 #4590 [Verbose] > │ let v6 : US0 = US0_0(5) │
00:02:28 #4591 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:02:28 #4592 [Verbose] > │ () │
00:02:28 #4593 [Verbose] > │ method0() │
00:02:28 #4594 [Verbose] > │ │
00:02:28 #4595 [Verbose] > │ US0_0 5 │
00:02:28 #4596 [Verbose] > │ │
00:02:28 #4597 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #4598 [Verbose] >
00:02:28 #4599 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:28 #4600 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:28 #4601 [Verbose] > │ ## iter │
00:02:28 #4602 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #4603 [Verbose] >
00:02:28 #4604 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #4605 [Verbose] > inl iter fn = function
00:02:28 #4606 [Verbose] > | Some x => fn x
00:02:28 #4607 [Verbose] > | None => ()
00:02:28 #4608 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0067-6732-60102a38d80c\main.spi
00:02:28 #4609 [Verbose] >
00:02:28 #4610 [Verbose] > ╭─[ 223.96ms - stdout ]────────────────────────────────────────────────────────╮
00:02:28 #4611 [Verbose] > │ () │
00:02:28 #4612 [Verbose] > │ │
00:02:28 #4613 [Verbose] > │ │
00:02:28 #4614 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:28 #4615 [Verbose] >
00:02:28 #4616 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:28 #4617 [Verbose] > // // test
00:02:28 #4618 [Verbose] >
00:02:28 #4619 [Verbose] > inl n = mut 1i32
00:02:28 #4620 [Verbose] > inl fn =
00:02:28 #4621 [Verbose] > fun n' =>
00:02:28 #4622 [Verbose] > n <- *n + n'
00:02:28 #4623 [Verbose] > Some 1i32 |> iter fn
00:02:28 #4624 [Verbose] > None |> iter fn
00:02:28 #4625 [Verbose] > *n
00:02:28 #4626 [Verbose] > |> _assert_eq 2i32
00:02:28 #4627 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0089-8938-891a78eb07e4\main.spi
00:02:29 #4628 [Verbose] >
00:02:29 #4629 [Verbose] > ╭─[ 401.55ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #4630 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:29 #4631 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:02:29 #4632 [Verbose] > │ v0 │
00:02:29 #4633 [Verbose] > │ and method0 () : unit = │
00:02:29 #4634 [Verbose] > │ let v0 : Mut0 = {l0 = 1} : Mut0 │
00:02:29 #4635 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:29 #4636 [Verbose] > │ let v2 : int32 = v1 + 1 │
00:02:29 #4637 [Verbose] > │ v0.l0 <- v2 │
00:02:29 #4638 [Verbose] > │ let v3 : int32 = v0.l0 │
00:02:29 #4639 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:02:29 #4640 [Verbose] > │ System.Console.WriteLine v4 │
00:02:29 #4641 [Verbose] > │ let v5 : bool = v3 = 2 │
00:02:29 #4642 [Verbose] > │ let v7 : bool = │
00:02:29 #4643 [Verbose] > │ if v5 then │
00:02:29 #4644 [Verbose] > │ true │
00:02:29 #4645 [Verbose] > │ else │
00:02:29 #4646 [Verbose] > │ method1(v5) │
00:02:29 #4647 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v3} / expected: %A{2}" │
00:02:29 #4648 [Verbose] > │ let v9 : bool = v7 = false │
00:02:29 #4649 [Verbose] > │ if v9 then │
00:02:29 #4650 [Verbose] > │ failwith<unit> v8 │
00:02:29 #4651 [Verbose] > │ method0() │
00:02:29 #4652 [Verbose] > │ │
00:02:29 #4653 [Verbose] > │ 2 │
00:02:29 #4654 [Verbose] > │ │
00:02:29 #4655 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #4656 [Verbose] >
00:02:29 #4657 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:29 #4658 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:29 #4659 [Verbose] > │ ## option' │
00:02:29 #4660 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #4661 [Verbose] >
00:02:29 #4662 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:29 #4663 [Verbose] > nominal option' t = $"`t option"
00:02:29 #4664 [Verbose] >
00:02:29 #4665 [Verbose] > inl unbox forall t. (x : option' t) : option t =
00:02:29 #4666 [Verbose] > inl some x : option t = Some x
00:02:29 #4667 [Verbose] > inl some = join some
00:02:29 #4668 [Verbose] > inl none : option t = None
00:02:29 #4669 [Verbose] > $"!x |> Option.map !some |> Option.defaultValue !none"
00:02:29 #4670 [Verbose] >
00:02:29 #4671 [Verbose] > inl box forall t. (x : option t) : option' t =
00:02:29 #4672 [Verbose] > match x with
00:02:29 #4673 [Verbose] > | Some x => $"Some !x"
00:02:29 #4674 [Verbose] > | None => $"None"
00:02:29 #4675 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0131-3161-3045ccece5d7\main.spi
00:02:29 #4676 [Verbose] >
00:02:29 #4677 [Verbose] > ╭─[ 220.31ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #4678 [Verbose] > │ () │
00:02:29 #4679 [Verbose] > │ │
00:02:29 #4680 [Verbose] > │ │
00:02:29 #4681 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #4682 [Verbose] >
00:02:29 #4683 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:29 #4684 [Verbose] > // // test
00:02:29 #4685 [Verbose] >
00:02:29 #4686 [Verbose] > inl x = Some 3i32
00:02:29 #4687 [Verbose] > inl y : option i32 = None
00:02:29 #4688 [Verbose] > inl x' = x |> box |> unbox
00:02:29 #4689 [Verbose] > inl y' = y |> box |> unbox
00:02:29 #4690 [Verbose] > (x', y') |> _assert_eq (x, y)
00:02:29 #4691 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0153-5354-5a65a0b65971\main.spi
00:02:29 #4692 [Verbose] >
00:02:29 #4693 [Verbose] > ╭─[ 325.67ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #4694 [Verbose] > │ type [<Struct>] US0 = │
00:02:29 #4695 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:02:29 #4696 [Verbose] > │ | US0_1 │
00:02:29 #4697 [Verbose] > │ let rec closure0 () (v0 : int32) : US0 = │
00:02:29 #4698 [Verbose] > │ US0_0(v0) │
00:02:29 #4699 [Verbose] > │ and method1 () : (int32 -> US0) = │
00:02:29 #4700 [Verbose] > │ closure0() │
00:02:29 #4701 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:02:29 #4702 [Verbose] > │ v0 │
00:02:29 #4703 [Verbose] > │ and method0 () : unit = │
00:02:29 #4704 [Verbose] > │ let v0 : int32 option = Some 3 │
00:02:29 #4705 [Verbose] > │ let v1 : (int32 -> US0) = method1() │
00:02:29 #4706 [Verbose] > │ let v2 : US0 = US0_1 │
00:02:29 #4707 [Verbose] > │ let v3 : US0 = v0 |> Option.map v1 |> Option.defaultValue v2 │
00:02:29 #4708 [Verbose] > │ let v4 : int32 option = None │
00:02:29 #4709 [Verbose] > │ let v5 : (int32 -> US0) = method1() │
00:02:29 #4710 [Verbose] > │ let v6 : US0 = US0_1 │
00:02:29 #4711 [Verbose] > │ let v7 : US0 = v4 |> Option.map v5 |> Option.defaultValue v6 │
00:02:29 #4712 [Verbose] > │ let v8 : string = $"%A{struct (v3, v7)}" │
00:02:29 #4713 [Verbose] > │ System.Console.WriteLine v8 │
00:02:29 #4714 [Verbose] > │ let v13 : bool = │
00:02:29 #4715 [Verbose] > │ match v3 with │
00:02:29 #4716 [Verbose] > │ | US0_0(v11) -> (* Some *) │
00:02:29 #4717 [Verbose] > │ let v12 : bool = v11 = 3 │
00:02:29 #4718 [Verbose] > │ v12 │
00:02:29 #4719 [Verbose] > │ | _ -> │
00:02:29 #4720 [Verbose] > │ false │
00:02:29 #4721 [Verbose] > │ let v15 : bool = │
00:02:29 #4722 [Verbose] > │ if v13 then │
00:02:29 #4723 [Verbose] > │ match v7 with │
00:02:29 #4724 [Verbose] > │ | US0_1 -> (* None *) │
00:02:29 #4725 [Verbose] > │ true │
00:02:29 #4726 [Verbose] > │ | _ -> │
00:02:29 #4727 [Verbose] > │ false │
00:02:29 #4728 [Verbose] > │ else │
00:02:29 #4729 [Verbose] > │ false │
00:02:29 #4730 [Verbose] > │ let v17 : bool = │
00:02:29 #4731 [Verbose] > │ if v15 then │
00:02:29 #4732 [Verbose] > │ true │
00:02:29 #4733 [Verbose] > │ else │
00:02:29 #4734 [Verbose] > │ method2(v15) │
00:02:29 #4735 [Verbose] > │ let v18 : US0 = US0_0(3) │
00:02:29 #4736 [Verbose] > │ let v19 : US0 = US0_1 │
00:02:29 #4737 [Verbose] > │ let v20 : string = $"__expect / actual: %A{struct (v3, v7)} / expected: │
00:02:29 #4738 [Verbose] > │ %A{struct (v18, v19)}" │
00:02:29 #4739 [Verbose] > │ let v21 : bool = v17 = false │
00:02:29 #4740 [Verbose] > │ if v21 then │
00:02:29 #4741 [Verbose] > │ failwith<unit> v20 │
00:02:29 #4742 [Verbose] > │ method0() │
00:02:29 #4743 [Verbose] > │ │
00:02:29 #4744 [Verbose] > │ struct (US0_0 3, US0_1) │
00:02:29 #4745 [Verbose] > │ │
00:02:29 #4746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #4747 [Verbose] >
00:02:29 #4748 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:29 #4749 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:29 #4750 [Verbose] > │ ## map │
00:02:29 #4751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #4752 [Verbose] >
00:02:29 #4753 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:29 #4754 [Verbose] > inl map forall t u. (fn : t -> u) (x : option' t) : option' u =
00:02:29 #4755 [Verbose] > !\\((x, fn), $'"$0.map(|x| $1(x))"')
00:02:29 #4756 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0189-8919-8344fc8b619e\main.spi
00:02:29 #4757 [Verbose] >
00:02:29 #4758 [Verbose] > ╭─[ 206.50ms - stdout ]────────────────────────────────────────────────────────╮
00:02:29 #4759 [Verbose] > │ () │
00:02:29 #4760 [Verbose] > │ │
00:02:29 #4761 [Verbose] > │ │
00:02:29 #4762 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #4763 [Verbose] >
00:02:29 #4764 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:29 #4765 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:29 #4766 [Verbose] > │ ## try' │
00:02:29 #4767 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:29 #4768 [Verbose] >
00:02:29 #4769 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:29 #4770 [Verbose] > inl try' forall t. (x : option' t) : t =
00:02:29 #4771 [Verbose] > !\($'"!x?"')
00:02:29 #4772 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0210-1058-1bd1fa6dca13\main.spi
00:02:30 #4773 [Verbose] >
00:02:30 #4774 [Verbose] > ╭─[ 192.68ms - stdout ]────────────────────────────────────────────────────────╮
00:02:30 #4775 [Verbose] > │ () │
00:02:30 #4776 [Verbose] > │ │
00:02:30 #4777 [Verbose] > │ │
00:02:30 #4778 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4779 [Verbose] >
00:02:30 #4780 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:30 #4781 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:30 #4782 [Verbose] > │ ## flatten │
00:02:30 #4783 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4784 [Verbose] >
00:02:30 #4785 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:30 #4786 [Verbose] > inl flatten x =
00:02:30 #4787 [Verbose] > match x with
00:02:30 #4788 [Verbose] > | Some (Some x) => Some x
00:02:30 #4789 [Verbose] > | _ => None
00:02:30 #4790 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0230-3084-3b40ea112ea6\main.spi
00:02:30 #4791 [Verbose] >
00:02:30 #4792 [Verbose] > ╭─[ 209.29ms - stdout ]────────────────────────────────────────────────────────╮
00:02:30 #4793 [Verbose] > │ () │
00:02:30 #4794 [Verbose] > │ │
00:02:30 #4795 [Verbose] > │ │
00:02:30 #4796 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4797 [Verbose] >
00:02:30 #4798 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:30 #4799 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:30 #4800 [Verbose] > │ ## unwrap │
00:02:30 #4801 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4802 [Verbose] >
00:02:30 #4803 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:30 #4804 [Verbose] > inl unwrap forall t. (x : option' t) : t =
00:02:30 #4805 [Verbose] > !\($'"!x.unwrap()"')
00:02:30 #4806 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0252-5239-5f89ea111e74\main.spi
00:02:30 #4807 [Verbose] >
00:02:30 #4808 [Verbose] > ╭─[ 213.18ms - stdout ]────────────────────────────────────────────────────────╮
00:02:30 #4809 [Verbose] > │ () │
00:02:30 #4810 [Verbose] > │ │
00:02:30 #4811 [Verbose] > │ │
00:02:30 #4812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4813 [Verbose] >
00:02:30 #4814 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:30 #4815 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:30 #4816 [Verbose] > │ ## unwrap_or │
00:02:30 #4817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4818 [Verbose] >
00:02:30 #4819 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:30 #4820 [Verbose] > inl unwrap_or forall t. (def : t) (x : option' t) : t =
00:02:30 #4821 [Verbose] > !\($'"!x.unwrap_or(!def)"')
00:02:30 #4822 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0274-7444-7dc48865c3e6\main.spi
00:02:30 #4823 [Verbose] >
00:02:30 #4824 [Verbose] > ╭─[ 194.92ms - stdout ]────────────────────────────────────────────────────────╮
00:02:30 #4825 [Verbose] > │ () │
00:02:30 #4826 [Verbose] > │ │
00:02:30 #4827 [Verbose] > │ │
00:02:30 #4828 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4829 [Verbose] >
00:02:30 #4830 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:30 #4831 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:30 #4832 [Verbose] > │ ## rc_upgrade │
00:02:30 #4833 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #4834 [Verbose] >
00:02:30 #4835 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:30 #4836 [Verbose] > inl rc_upgrade forall t. (x : rust.weak_rc t) : option (rust.rc t) =
00:02:30 #4837 [Verbose] > inl x = join x
00:02:30 #4838 [Verbose] > !\($'"std::rc::Weak::upgrade(&!x)"')
00:02:30 #4839 [Verbose] > |> unbox
00:02:30 #4840 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0294-9440-9a1af0f65520\main.spi
00:02:30 #4841 [Verbose] >
00:02:30 #4842 [Verbose] > ╭─[ 215.61ms - stdout ]────────────────────────────────────────────────────────╮
00:02:30 #4843 [Verbose] > │ () │
00:02:30 #4844 [Verbose] > │ │
00:02:30 #4845 [Verbose] > │ │
00:02:30 #4846 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:32 #4847 [Verbose] > [NbConvertApp] Converting notebook optionm'.dib.ipynb to html
00:02:32 #4848 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:32 #4849 [Verbose] > validate(nb)
00:02:33 #4850 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:33 #4851 [Verbose] > return _pygments_highlight(
00:02:34 #4852 [Verbose] > [NbConvertApp] Writing 308991 bytes to optionm'.dib.html
00:02:35 #4853 [Debug] executeAsync / exitCode: 0 / output.Length: 24665
00:02:35 #4854 [Debug] main / executeCommand / exitCode: 0
00:02:35 #4855 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"am'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:02:38 #4856 [Verbose] >
00:02:38 #4857 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:38 #4858 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:38 #4859 [Verbose] > │ # am' │
00:02:38 #4860 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:38 #4861 [Verbose] >
00:02:38 #4862 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:38 #4863 [Verbose] > // // test
00:02:38 #4864 [Verbose] >
00:02:38 #4865 [Verbose] > open testing
00:02:38 #4866 [Verbose] >
00:02:38 #4867 [Verbose] > prototype append t : t -> t -> t
00:02:41 #4868 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1362-6283-625d7f1fdafb\main.spi
00:02:43 #4869 [Verbose] >
00:02:43 #4870 [Verbose] > ╭─[ 4.85s - stdout ]───────────────────────────────────────────────────────────╮
00:02:43 #4871 [Verbose] > │ () │
00:02:43 #4872 [Verbose] > │ │
00:02:43 #4873 [Verbose] > │ │
00:02:43 #4874 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:43 #4875 [Verbose] >
00:02:43 #4876 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:43 #4877 [Verbose] > open rust_operators
00:02:43 #4878 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1554-5432-540880595e53\main.spi
00:02:43 #4879 [Verbose] >
00:02:43 #4880 [Verbose] > ╭─[ 284.95ms - stdout ]────────────────────────────────────────────────────────╮
00:02:43 #4881 [Verbose] > │ () │
00:02:43 #4882 [Verbose] > │ │
00:02:43 #4883 [Verbose] > │ │
00:02:43 #4884 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:43 #4885 [Verbose] >
00:02:43 #4886 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:43 #4887 [Verbose] > inl types () =
00:02:43 #4888 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0]]\")>]] type Slice<'T> =
00:02:43 #4889 [Verbose] > class end"
00:02:43 #4890 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0; $1]]\")>]] type
00:02:43 #4891 [Verbose] > Slice'<'T, 'U> = class end"
00:02:43 #4892 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Vec<$0>\")>]] type Vec<'T> =
00:02:43 #4893 [Verbose] > class end"
00:02:43 #4894 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1583-8339-82c53894dda8\main.spi
00:02:44 #4895 [Verbose] >
00:02:44 #4896 [Verbose] > ╭─[ 535.04ms - stdout ]────────────────────────────────────────────────────────╮
00:02:44 #4897 [Verbose] > │ () │
00:02:44 #4898 [Verbose] > │ │
00:02:44 #4899 [Verbose] > │ │
00:02:44 #4900 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4901 [Verbose] >
00:02:44 #4902 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:44 #4903 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:44 #4904 [Verbose] > │ ## length │
00:02:44 #4905 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4906 [Verbose] >
00:02:44 #4907 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:44 #4908 [Verbose] > inl length forall dim {int} el. (a : a dim el) : dim =
00:02:44 #4909 [Verbose] > a |> length
00:02:44 #4910 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1636-3696-33d82afd6857\main.spi
00:02:44 #4911 [Verbose] >
00:02:44 #4912 [Verbose] > ╭─[ 193.09ms - stdout ]────────────────────────────────────────────────────────╮
00:02:44 #4913 [Verbose] > │ () │
00:02:44 #4914 [Verbose] > │ │
00:02:44 #4915 [Verbose] > │ │
00:02:44 #4916 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4917 [Verbose] >
00:02:44 #4918 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:44 #4919 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:44 #4920 [Verbose] > │ ## index │
00:02:44 #4921 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4922 [Verbose] >
00:02:44 #4923 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:44 #4924 [Verbose] > inl index forall dim {int} el. (i : dim) (a : a dim el) : el =
00:02:44 #4925 [Verbose] > index a i
00:02:44 #4926 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1656-5672-547717d099bf\main.spi
00:02:44 #4927 [Verbose] >
00:02:44 #4928 [Verbose] > ╭─[ 215.66ms - stdout ]────────────────────────────────────────────────────────╮
00:02:44 #4929 [Verbose] > │ () │
00:02:44 #4930 [Verbose] > │ │
00:02:44 #4931 [Verbose] > │ │
00:02:44 #4932 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4933 [Verbose] >
00:02:44 #4934 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:44 #4935 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:44 #4936 [Verbose] > │ ## append │
00:02:44 #4937 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4938 [Verbose] >
00:02:44 #4939 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:44 #4940 [Verbose] > instance append a dim {int; number} t =
00:02:44 #4941 [Verbose] > am.append
00:02:44 #4942 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1678-7894-7d27087a2855\main.spi
00:02:44 #4943 [Verbose] >
00:02:44 #4944 [Verbose] > ╭─[ 215.97ms - stdout ]────────────────────────────────────────────────────────╮
00:02:44 #4945 [Verbose] > │ () │
00:02:44 #4946 [Verbose] > │ │
00:02:44 #4947 [Verbose] > │ │
00:02:44 #4948 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4949 [Verbose] >
00:02:44 #4950 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:44 #4951 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:44 #4952 [Verbose] > │ ## /@ │
00:02:44 #4953 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4954 [Verbose] >
00:02:44 #4955 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:44 #4956 [Verbose] > inl (/@) a b =
00:02:44 #4957 [Verbose] > b |> append a
00:02:44 #4958 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1701-0171-0579d099327d\main.spi
00:02:44 #4959 [Verbose] >
00:02:44 #4960 [Verbose] > ╭─[ 241.11ms - stdout ]────────────────────────────────────────────────────────╮
00:02:44 #4961 [Verbose] > │ () │
00:02:44 #4962 [Verbose] > │ │
00:02:44 #4963 [Verbose] > │ │
00:02:44 #4964 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:44 #4965 [Verbose] >
00:02:44 #4966 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:44 #4967 [Verbose] > // // test
00:02:44 #4968 [Verbose] >
00:02:44 #4969 [Verbose] > a ;[[ "a"; "b" ]] /@ a ;[[ "c"; "d" ]]
00:02:44 #4970 [Verbose] > |> _assert_eq (a ;[[ "a"; "b"; "c"; "d" ]] : _ i32 _)
00:02:45 #4971 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1725-2589-2dd1e76da372\main.spi
00:02:46 #4972 [Verbose] >
00:02:46 #4973 [Verbose] > ╭─[ 1.71s - stdout ]───────────────────────────────────────────────────────────╮
00:02:46 #4974 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:46 #4975 [Verbose] > │ let rec method1 (v0 : int32, v1 : Mut0) : bool = │
00:02:46 #4976 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:46 #4977 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:46 #4978 [Verbose] > │ v3 │
00:02:46 #4979 [Verbose] > │ and method2 (v0 : (string []), v1 : (string []), v2 : int32) : bool = │
00:02:46 #4980 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:46 #4981 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:46 #4982 [Verbose] > │ if v4 then │
00:02:46 #4983 [Verbose] > │ let v5 : string = v0.[int v2] │
00:02:46 #4984 [Verbose] > │ let v6 : string = v1.[int v2] │
00:02:46 #4985 [Verbose] > │ let v7 : bool = v5 = v6 │
00:02:46 #4986 [Verbose] > │ if v7 then │
00:02:46 #4987 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:02:46 #4988 [Verbose] > │ method2(v0, v1, v8) │
00:02:46 #4989 [Verbose] > │ else │
00:02:46 #4990 [Verbose] > │ false │
00:02:46 #4991 [Verbose] > │ else │
00:02:46 #4992 [Verbose] > │ true │
00:02:46 #4993 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:02:46 #4994 [Verbose] > │ v0 │
00:02:46 #4995 [Verbose] > │ and method0 () : unit = │
00:02:46 #4996 [Verbose] > │ let v0 : string = "a" │
00:02:46 #4997 [Verbose] > │ let v1 : string = "b" │
00:02:46 #4998 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:02:46 #4999 [Verbose] > │ let v3 : string = "c" │
00:02:46 #5000 [Verbose] > │ let v4 : string = "d" │
00:02:46 #5001 [Verbose] > │ let v5 : (string []) = [|v3; v4|] │
00:02:46 #5002 [Verbose] > │ let v6 : int32 = v2.Length │
00:02:46 #5003 [Verbose] > │ let v7 : int32 = v5.Length │
00:02:46 #5004 [Verbose] > │ let v8 : int32 = v6 + v7 │
00:02:46 #5005 [Verbose] > │ let v9 : (string []) = Array.zeroCreate<string> (v8) │
00:02:46 #5006 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:02:46 #5007 [Verbose] > │ while method1(v8, v10) do │
00:02:46 #5008 [Verbose] > │ let v12 : int32 = v10.l0 │
00:02:46 #5009 [Verbose] > │ let v13 : bool = v12 < v6 │
00:02:46 #5010 [Verbose] > │ let v17 : string = │
00:02:46 #5011 [Verbose] > │ if v13 then │
00:02:46 #5012 [Verbose] > │ let v14 : string = v2.[int v12] │
00:02:46 #5013 [Verbose] > │ v14 │
00:02:46 #5014 [Verbose] > │ else │
00:02:46 #5015 [Verbose] > │ let v15 : int32 = v12 - v6 │
00:02:46 #5016 [Verbose] > │ let v16 : string = v5.[int v15] │
00:02:46 #5017 [Verbose] > │ v16 │
00:02:46 #5018 [Verbose] > │ v9.[int v12] <- v17 │
00:02:46 #5019 [Verbose] > │ let v18 : int32 = v12 + 1 │
00:02:46 #5020 [Verbose] > │ v10.l0 <- v18 │
00:02:46 #5021 [Verbose] > │ () │
00:02:46 #5022 [Verbose] > │ let v19 : (string []) = [|v0; v1; v3; v4|] │
00:02:46 #5023 [Verbose] > │ let v20 : string = $"%A{v9}" │
00:02:46 #5024 [Verbose] > │ System.Console.WriteLine v20 │
00:02:46 #5025 [Verbose] > │ let v21 : int32 = v9.Length │
00:02:46 #5026 [Verbose] > │ let v22 : int32 = v19.Length │
00:02:46 #5027 [Verbose] > │ let v23 : bool = v21 = v22 │
00:02:46 #5028 [Verbose] > │ let v24 : bool = v23 <> true │
00:02:46 #5029 [Verbose] > │ let v27 : bool = │
00:02:46 #5030 [Verbose] > │ if v24 then │
00:02:46 #5031 [Verbose] > │ false │
00:02:46 #5032 [Verbose] > │ else │
00:02:46 #5033 [Verbose] > │ let v25 : int32 = 0 │
00:02:46 #5034 [Verbose] > │ method2(v9, v19, v25) │
00:02:46 #5035 [Verbose] > │ let v29 : bool = │
00:02:46 #5036 [Verbose] > │ if v27 then │
00:02:46 #5037 [Verbose] > │ true │
00:02:46 #5038 [Verbose] > │ else │
00:02:46 #5039 [Verbose] > │ method3(v27) │
00:02:46 #5040 [Verbose] > │ let v30 : string = $"__expect / actual: %A{v9} / expected: %A{v19}" │
00:02:46 #5041 [Verbose] > │ let v31 : bool = v29 = false │
00:02:46 #5042 [Verbose] > │ if v31 then │
00:02:46 #5043 [Verbose] > │ failwith<unit> v30 │
00:02:46 #5044 [Verbose] > │ method0() │
00:02:46 #5045 [Verbose] > │ │
00:02:46 #5046 [Verbose] > │ [|"a"; "b"; "c"; "d"|] │
00:02:46 #5047 [Verbose] > │ │
00:02:46 #5048 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:46 #5049 [Verbose] >
00:02:46 #5050 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:46 #5051 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:46 #5052 [Verbose] > │ ## collect │
00:02:46 #5053 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:46 #5054 [Verbose] >
00:02:46 #5055 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:46 #5056 [Verbose] > inl collect forall t r. (fn : t -> a i32 r) (items : a i32 t) : a i32 r =
00:02:46 #5057 [Verbose] > items
00:02:46 #5058 [Verbose] > |> am.map fn
00:02:46 #5059 [Verbose] > |> am.fold (/@) (a ;[[]])
00:02:46 #5060 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1900-0033-03f01c839442\main.spi
00:02:46 #5061 [Verbose] >
00:02:46 #5062 [Verbose] > ╭─[ 201.28ms - stdout ]────────────────────────────────────────────────────────╮
00:02:46 #5063 [Verbose] > │ () │
00:02:46 #5064 [Verbose] > │ │
00:02:46 #5065 [Verbose] > │ │
00:02:46 #5066 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:46 #5067 [Verbose] >
00:02:46 #5068 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:46 #5069 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:46 #5070 [Verbose] > │ ## choose │
00:02:46 #5071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:46 #5072 [Verbose] >
00:02:46 #5073 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:46 #5074 [Verbose] > inl choose f l =
00:02:46 #5075 [Verbose] > (l, [[]])
00:02:46 #5076 [Verbose] > ||> am.foldBack fun x acc =>
00:02:46 #5077 [Verbose] > match f x with
00:02:46 #5078 [Verbose] > | Some y => y :: acc
00:02:46 #5079 [Verbose] > | None => acc
00:02:46 #5080 [Verbose] > |> listm.toArray
00:02:47 #5081 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1920-2079-25565ad98d8b\main.spi
00:02:47 #5082 [Verbose] >
00:02:47 #5083 [Verbose] > ╭─[ 216.72ms - stdout ]────────────────────────────────────────────────────────╮
00:02:47 #5084 [Verbose] > │ () │
00:02:47 #5085 [Verbose] > │ │
00:02:47 #5086 [Verbose] > │ │
00:02:47 #5087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:47 #5088 [Verbose] >
00:02:47 #5089 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:47 #5090 [Verbose] > // // test
00:02:47 #5091 [Verbose] >
00:02:47 #5092 [Verbose] > (am.init 10i32 id : a _ _)
00:02:47 #5093 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:02:47 #5094 [Verbose] > |> _assert_eq (a ;[[ 0; 2; 4; 6; 8 ]] : _ i32 _)
00:02:47 #5095 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1942-4297-46601db810a3\main.spi
00:02:47 #5096 [Verbose] >
00:02:47 #5097 [Verbose] > ╭─[ 750.59ms - stdout ]────────────────────────────────────────────────────────╮
00:02:47 #5098 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:47 #5099 [Verbose] > │ and UH0 = │
00:02:47 #5100 [Verbose] > │ | UH0_0 │
00:02:47 #5101 [Verbose] > │ | UH0_1 of int32 * UH0 │
00:02:47 #5102 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0} │
00:02:47 #5103 [Verbose] > │ and [<Struct>] US0 = │
00:02:47 #5104 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:02:47 #5105 [Verbose] > │ | US0_1 │
00:02:47 #5106 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:47 #5107 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:47 #5108 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:47 #5109 [Verbose] > │ v2 │
00:02:47 #5110 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:47 #5111 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:47 #5112 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:47 #5113 [Verbose] > │ v3 │
00:02:47 #5114 [Verbose] > │ and method4 (v0 : UH0, v1 : int32) : int32 = │
00:02:47 #5115 [Verbose] > │ match v0 with │
00:02:47 #5116 [Verbose] > │ | UH0_1(v2, v3) -> (* Cons *) │
00:02:47 #5117 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:02:47 #5118 [Verbose] > │ method4(v3, v4) │
00:02:47 #5119 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:02:47 #5120 [Verbose] > │ v1 │
00:02:47 #5121 [Verbose] > │ and method5 (v0 : (int32 []), v1 : UH0, v2 : int32) : int32 = │
00:02:47 #5122 [Verbose] > │ match v1 with │
00:02:47 #5123 [Verbose] > │ | UH0_1(v3, v4) -> (* Cons *) │
00:02:47 #5124 [Verbose] > │ v0.[int v2] <- v3 │
00:02:47 #5125 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:02:47 #5126 [Verbose] > │ method5(v0, v4, v5) │
00:02:47 #5127 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:02:47 #5128 [Verbose] > │ v2 │
00:02:47 #5129 [Verbose] > │ and method3 (v0 : UH0) : (int32 []) = │
00:02:47 #5130 [Verbose] > │ let v1 : int32 = 0 │
00:02:47 #5131 [Verbose] > │ let v2 : int32 = method4(v0, v1) │
00:02:47 #5132 [Verbose] > │ let v3 : (int32 []) = Array.zeroCreate<int32> (v2) │
00:02:47 #5133 [Verbose] > │ let v4 : int32 = 0 │
00:02:47 #5134 [Verbose] > │ let v5 : int32 = method5(v3, v0, v4) │
00:02:47 #5135 [Verbose] > │ v3 │
00:02:47 #5136 [Verbose] > │ and method6 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool = │
00:02:47 #5137 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:47 #5138 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:47 #5139 [Verbose] > │ if v4 then │
00:02:47 #5140 [Verbose] > │ let v5 : int32 = v0.[int v2] │
00:02:47 #5141 [Verbose] > │ let v6 : int32 = v1.[int v2] │
00:02:47 #5142 [Verbose] > │ let v7 : bool = v5 = v6 │
00:02:47 #5143 [Verbose] > │ if v7 then │
00:02:47 #5144 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:02:47 #5145 [Verbose] > │ method6(v0, v1, v8) │
00:02:47 #5146 [Verbose] > │ else │
00:02:47 #5147 [Verbose] > │ false │
00:02:47 #5148 [Verbose] > │ else │
00:02:47 #5149 [Verbose] > │ true │
00:02:47 #5150 [Verbose] > │ and method7 (v0 : bool) : bool = │
00:02:47 #5151 [Verbose] > │ v0 │
00:02:47 #5152 [Verbose] > │ and method0 () : unit = │
00:02:47 #5153 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:47 #5154 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:47 #5155 [Verbose] > │ while method1(v1) do │
00:02:47 #5156 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:47 #5157 [Verbose] > │ v0.[int v3] <- v3 │
00:02:47 #5158 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:47 #5159 [Verbose] > │ v1.l0 <- v4 │
00:02:47 #5160 [Verbose] > │ () │
00:02:47 #5161 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:47 #5162 [Verbose] > │ let v6 : UH0 = UH0_0 │
00:02:47 #5163 [Verbose] > │ let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1 │
00:02:47 #5164 [Verbose] > │ while method2(v5, v7) do │
00:02:47 #5165 [Verbose] > │ let v9 : int32 = v7.l0 │
00:02:47 #5166 [Verbose] > │ let v10 : int32 = -v9 │
00:02:47 #5167 [Verbose] > │ let v11 : int32 = v10 + v5 │
00:02:47 #5168 [Verbose] > │ let v12 : int32 = v11 - 1 │
00:02:47 #5169 [Verbose] > │ let v13 : UH0 = v7.l1 │
00:02:47 #5170 [Verbose] > │ let v14 : int32 = v0.[int v12] │
00:02:47 #5171 [Verbose] > │ let v15 : int32 = v14 % 2 │
00:02:47 #5172 [Verbose] > │ let v16 : bool = v15 = 0 │
00:02:47 #5173 [Verbose] > │ let v19 : US0 = │
00:02:47 #5174 [Verbose] > │ if v16 then │
00:02:47 #5175 [Verbose] > │ US0_0(v14) │
00:02:47 #5176 [Verbose] > │ else │
00:02:47 #5177 [Verbose] > │ US0_1 │
00:02:47 #5178 [Verbose] > │ let v23 : UH0 = │
00:02:47 #5179 [Verbose] > │ match v19 with │
00:02:47 #5180 [Verbose] > │ | US0_1 -> (* None *) │
00:02:47 #5181 [Verbose] > │ v13 │
00:02:47 #5182 [Verbose] > │ | US0_0(v20) -> (* Some *) │
00:02:47 #5183 [Verbose] > │ UH0_1(v20, v13) │
00:02:47 #5184 [Verbose] > │ let v24 : int32 = v9 + 1 │
00:02:47 #5185 [Verbose] > │ v7.l0 <- v24 │
00:02:47 #5186 [Verbose] > │ v7.l1 <- v23 │
00:02:47 #5187 [Verbose] > │ () │
00:02:47 #5188 [Verbose] > │ let v25 : UH0 = v7.l1 │
00:02:47 #5189 [Verbose] > │ let v26 : (int32 []) = method3(v25) │
00:02:47 #5190 [Verbose] > │ let v27 : (int32 []) = [|0; 2; 4; 6; 8|] │
00:02:47 #5191 [Verbose] > │ let v28 : string = $"%A{v26}" │
00:02:47 #5192 [Verbose] > │ System.Console.WriteLine v28 │
00:02:47 #5193 [Verbose] > │ let v29 : int32 = v26.Length │
00:02:47 #5194 [Verbose] > │ let v30 : int32 = v27.Length │
00:02:47 #5195 [Verbose] > │ let v31 : bool = v29 = v30 │
00:02:47 #5196 [Verbose] > │ let v32 : bool = v31 <> true │
00:02:47 #5197 [Verbose] > │ let v35 : bool = │
00:02:47 #5198 [Verbose] > │ if v32 then │
00:02:47 #5199 [Verbose] > │ false │
00:02:47 #5200 [Verbose] > │ else │
00:02:47 #5201 [Verbose] > │ let v33 : int32 = 0 │
00:02:47 #5202 [Verbose] > │ method6(v26, v27, v33) │
00:02:47 #5203 [Verbose] > │ let v37 : bool = │
00:02:47 #5204 [Verbose] > │ if v35 then │
00:02:47 #5205 [Verbose] > │ true │
00:02:47 #5206 [Verbose] > │ else │
00:02:47 #5207 [Verbose] > │ method7(v35) │
00:02:47 #5208 [Verbose] > │ let v38 : string = $"__expect / actual: %A{v26} / expected: %A{v27}" │
00:02:47 #5209 [Verbose] > │ let v39 : bool = v37 = false │
00:02:47 #5210 [Verbose] > │ if v39 then │
00:02:47 #5211 [Verbose] > │ failwith<unit> v38 │
00:02:47 #5212 [Verbose] > │ method0() │
00:02:47 #5213 [Verbose] > │ │
00:02:47 #5214 [Verbose] > │ [|0; 2; 4; 6; 8|] │
00:02:47 #5215 [Verbose] > │ │
00:02:47 #5216 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:47 #5217 [Verbose] >
00:02:47 #5218 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:47 #5219 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:47 #5220 [Verbose] > │ ## sum │
00:02:47 #5221 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:47 #5222 [Verbose] >
00:02:47 #5223 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:47 #5224 [Verbose] > inl sum (a' : a _ _) =
00:02:47 #5225 [Verbose] > a' |> am.fold (+) 0
00:02:48 #5226 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2025-2544-2fc5a8c83ec4\main.spi
00:02:48 #5227 [Verbose] >
00:02:48 #5228 [Verbose] > ╭─[ 517.06ms - stdout ]────────────────────────────────────────────────────────╮
00:02:48 #5229 [Verbose] > │ () │
00:02:48 #5230 [Verbose] > │ │
00:02:48 #5231 [Verbose] > │ │
00:02:48 #5232 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:48 #5233 [Verbose] >
00:02:48 #5234 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:48 #5235 [Verbose] > // // test
00:02:48 #5236 [Verbose] >
00:02:48 #5237 [Verbose] > am.init 10i32 id
00:02:48 #5238 [Verbose] > |> sum
00:02:48 #5239 [Verbose] > |> _assert_eq 45
00:02:48 #5240 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2077-7737-7d7f86967d43\main.spi
00:02:48 #5241 [Verbose] >
00:02:48 #5242 [Verbose] > ╭─[ 360.92ms - stdout ]────────────────────────────────────────────────────────╮
00:02:48 #5243 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:48 #5244 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32} │
00:02:48 #5245 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:48 #5246 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:48 #5247 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:48 #5248 [Verbose] > │ v2 │
00:02:48 #5249 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:48 #5250 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:48 #5251 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:48 #5252 [Verbose] > │ v3 │
00:02:48 #5253 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:02:48 #5254 [Verbose] > │ v0 │
00:02:48 #5255 [Verbose] > │ and method0 () : unit = │
00:02:48 #5256 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:48 #5257 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:48 #5258 [Verbose] > │ while method1(v1) do │
00:02:48 #5259 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:48 #5260 [Verbose] > │ v0.[int v3] <- v3 │
00:02:48 #5261 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:48 #5262 [Verbose] > │ v1.l0 <- v4 │
00:02:48 #5263 [Verbose] > │ () │
00:02:48 #5264 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:48 #5265 [Verbose] > │ let v6 : Mut1 = {l0 = 0; l1 = 0} : Mut1 │
00:02:48 #5266 [Verbose] > │ while method2(v5, v6) do │
00:02:48 #5267 [Verbose] > │ let v8 : int32 = v6.l0 │
00:02:48 #5268 [Verbose] > │ let v9 : int32 = v6.l1 │
00:02:48 #5269 [Verbose] > │ let v10 : int32 = v0.[int v8] │
00:02:48 #5270 [Verbose] > │ let v11 : int32 = v9 + v10 │
00:02:48 #5271 [Verbose] > │ let v12 : int32 = v8 + 1 │
00:02:48 #5272 [Verbose] > │ v6.l0 <- v12 │
00:02:48 #5273 [Verbose] > │ v6.l1 <- v11 │
00:02:48 #5274 [Verbose] > │ () │
00:02:48 #5275 [Verbose] > │ let v13 : int32 = v6.l1 │
00:02:48 #5276 [Verbose] > │ let v14 : string = $"%A{v13}" │
00:02:48 #5277 [Verbose] > │ System.Console.WriteLine v14 │
00:02:48 #5278 [Verbose] > │ let v15 : bool = v13 = 45 │
00:02:48 #5279 [Verbose] > │ let v17 : bool = │
00:02:48 #5280 [Verbose] > │ if v15 then │
00:02:48 #5281 [Verbose] > │ true │
00:02:48 #5282 [Verbose] > │ else │
00:02:48 #5283 [Verbose] > │ method3(v15) │
00:02:48 #5284 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v13} / expected: %A{45}" │
00:02:48 #5285 [Verbose] > │ let v19 : bool = v17 = false │
00:02:48 #5286 [Verbose] > │ if v19 then │
00:02:48 #5287 [Verbose] > │ failwith<unit> v18 │
00:02:48 #5288 [Verbose] > │ method0() │
00:02:48 #5289 [Verbose] > │ │
00:02:48 #5290 [Verbose] > │ 45 │
00:02:48 #5291 [Verbose] > │ │
00:02:48 #5292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:48 #5293 [Verbose] >
00:02:48 #5294 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:48 #5295 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:48 #5296 [Verbose] > │ ## init_series │
00:02:48 #5297 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:48 #5298 [Verbose] >
00:02:48 #5299 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:48 #5300 [Verbose] > inl init_series start end inc =
00:02:48 #5301 [Verbose] > inl total = conv ((end - start) / inc) + 1
00:02:48 #5302 [Verbose] > am.init total (conv >> (*) inc >> (+) start) : a i32 _
00:02:49 #5303 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2116-1654-17e8bc153463\main.spi
00:02:49 #5304 [Verbose] >
00:02:49 #5305 [Verbose] > ╭─[ 260.95ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #5306 [Verbose] > │ () │
00:02:49 #5307 [Verbose] > │ │
00:02:49 #5308 [Verbose] > │ │
00:02:49 #5309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #5310 [Verbose] >
00:02:49 #5311 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #5312 [Verbose] > // // test
00:02:49 #5313 [Verbose] >
00:02:49 #5314 [Verbose] > init_series 0 1 0.5
00:02:49 #5315 [Verbose] > |> _assert_eq (a ;[[ 0f64; 0.5; 1 ]])
00:02:49 #5316 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2142-4273-49e091a2aa0b\main.spi
00:02:49 #5317 [Verbose] >
00:02:49 #5318 [Verbose] > ╭─[ 322.44ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #5319 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:49 #5320 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:49 #5321 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:49 #5322 [Verbose] > │ let v2 : bool = v1 < 3 │
00:02:49 #5323 [Verbose] > │ v2 │
00:02:49 #5324 [Verbose] > │ and method2 (v0 : (float []), v1 : (float []), v2 : int32) : bool = │
00:02:49 #5325 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:49 #5326 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:49 #5327 [Verbose] > │ if v4 then │
00:02:49 #5328 [Verbose] > │ let v5 : float = v0.[int v2] │
00:02:49 #5329 [Verbose] > │ let v6 : float = v1.[int v2] │
00:02:49 #5330 [Verbose] > │ let v7 : bool = v5 = v6 │
00:02:49 #5331 [Verbose] > │ if v7 then │
00:02:49 #5332 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:02:49 #5333 [Verbose] > │ method2(v0, v1, v8) │
00:02:49 #5334 [Verbose] > │ else │
00:02:49 #5335 [Verbose] > │ false │
00:02:49 #5336 [Verbose] > │ else │
00:02:49 #5337 [Verbose] > │ true │
00:02:49 #5338 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:02:49 #5339 [Verbose] > │ v0 │
00:02:49 #5340 [Verbose] > │ and method0 () : unit = │
00:02:49 #5341 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (3) │
00:02:49 #5342 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:49 #5343 [Verbose] > │ while method1(v1) do │
00:02:49 #5344 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:49 #5345 [Verbose] > │ let v4 : float = float v3 │
00:02:49 #5346 [Verbose] > │ let v5 : float = 0.5 * v4 │
00:02:49 #5347 [Verbose] > │ v0.[int v3] <- v5 │
00:02:49 #5348 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:02:49 #5349 [Verbose] > │ v1.l0 <- v6 │
00:02:49 #5350 [Verbose] > │ () │
00:02:49 #5351 [Verbose] > │ let v7 : (float []) = [|0.0; 0.5; 1.0|] │
00:02:49 #5352 [Verbose] > │ let v8 : string = $"%A{v0}" │
00:02:49 #5353 [Verbose] > │ System.Console.WriteLine v8 │
00:02:49 #5354 [Verbose] > │ let v9 : int32 = v0.Length │
00:02:49 #5355 [Verbose] > │ let v10 : int32 = v7.Length │
00:02:49 #5356 [Verbose] > │ let v11 : bool = v9 = v10 │
00:02:49 #5357 [Verbose] > │ let v12 : bool = v11 <> true │
00:02:49 #5358 [Verbose] > │ let v15 : bool = │
00:02:49 #5359 [Verbose] > │ if v12 then │
00:02:49 #5360 [Verbose] > │ false │
00:02:49 #5361 [Verbose] > │ else │
00:02:49 #5362 [Verbose] > │ let v13 : int32 = 0 │
00:02:49 #5363 [Verbose] > │ method2(v0, v7, v13) │
00:02:49 #5364 [Verbose] > │ let v17 : bool = │
00:02:49 #5365 [Verbose] > │ if v15 then │
00:02:49 #5366 [Verbose] > │ true │
00:02:49 #5367 [Verbose] > │ else │
00:02:49 #5368 [Verbose] > │ method3(v15) │
00:02:49 #5369 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v0} / expected: %A{v7}" │
00:02:49 #5370 [Verbose] > │ let v19 : bool = v17 = false │
00:02:49 #5371 [Verbose] > │ if v19 then │
00:02:49 #5372 [Verbose] > │ failwith<unit> v18 │
00:02:49 #5373 [Verbose] > │ method0() │
00:02:49 #5374 [Verbose] > │ │
00:02:49 #5375 [Verbose] > │ [|0.0; 0.5; 1.0|] │
00:02:49 #5376 [Verbose] > │ │
00:02:49 #5377 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #5378 [Verbose] >
00:02:49 #5379 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:49 #5380 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:49 #5381 [Verbose] > │ ## head │
00:02:49 #5382 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #5383 [Verbose] >
00:02:49 #5384 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #5385 [Verbose] > inl head (ar : a _ _) =
00:02:49 #5386 [Verbose] > if var_is ar || length ar > 0
00:02:49 #5387 [Verbose] > then ar |> index 0
00:02:49 #5388 [Verbose] > else error_type "The length of the array should be greater than 0."
00:02:49 #5389 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2178-7879-7eaf5b745873\main.spi
00:02:49 #5390 [Verbose] >
00:02:49 #5391 [Verbose] > ╭─[ 213.32ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #5392 [Verbose] > │ () │
00:02:49 #5393 [Verbose] > │ │
00:02:49 #5394 [Verbose] > │ │
00:02:49 #5395 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #5396 [Verbose] >
00:02:49 #5397 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:49 #5398 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:49 #5399 [Verbose] > │ ## last │
00:02:49 #5400 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #5401 [Verbose] >
00:02:49 #5402 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #5403 [Verbose] > inl last (ar : a _ _) =
00:02:49 #5404 [Verbose] > inl len = length ar
00:02:49 #5405 [Verbose] > if var_is ar || len > 0
00:02:49 #5406 [Verbose] > then ar |> index (len - 1)
00:02:49 #5407 [Verbose] > else error_type "The length of the array should be greater than 0."
00:02:49 #5408 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2200-0051-0454b32f0737\main.spi
00:02:49 #5409 [Verbose] >
00:02:49 #5410 [Verbose] > ╭─[ 215.72ms - stdout ]────────────────────────────────────────────────────────╮
00:02:49 #5411 [Verbose] > │ () │
00:02:49 #5412 [Verbose] > │ │
00:02:49 #5413 [Verbose] > │ │
00:02:49 #5414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:49 #5415 [Verbose] >
00:02:49 #5416 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:49 #5417 [Verbose] > // // test
00:02:49 #5418 [Verbose] >
00:02:49 #5419 [Verbose] > am.init 10i32 id
00:02:49 #5420 [Verbose] > |> last
00:02:49 #5421 [Verbose] > |> _assert_eq 9
00:02:50 #5422 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2222-2235-2ce032b38771\main.spi
00:02:50 #5423 [Verbose] >
00:02:50 #5424 [Verbose] > ╭─[ 284.55ms - stdout ]────────────────────────────────────────────────────────╮
00:02:50 #5425 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:50 #5426 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:50 #5427 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:50 #5428 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:50 #5429 [Verbose] > │ v2 │
00:02:50 #5430 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:02:50 #5431 [Verbose] > │ v0 │
00:02:50 #5432 [Verbose] > │ and method0 () : unit = │
00:02:50 #5433 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:50 #5434 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:50 #5435 [Verbose] > │ while method1(v1) do │
00:02:50 #5436 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:50 #5437 [Verbose] > │ v0.[int v3] <- v3 │
00:02:50 #5438 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:50 #5439 [Verbose] > │ v1.l0 <- v4 │
00:02:50 #5440 [Verbose] > │ () │
00:02:50 #5441 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:50 #5442 [Verbose] > │ let v6 : int32 = v5 - 1 │
00:02:50 #5443 [Verbose] > │ let v7 : int32 = v0.[int v6] │
00:02:50 #5444 [Verbose] > │ let v8 : string = $"%A{v7}" │
00:02:50 #5445 [Verbose] > │ System.Console.WriteLine v8 │
00:02:50 #5446 [Verbose] > │ let v9 : bool = v7 = 9 │
00:02:50 #5447 [Verbose] > │ let v11 : bool = │
00:02:50 #5448 [Verbose] > │ if v9 then │
00:02:50 #5449 [Verbose] > │ true │
00:02:50 #5450 [Verbose] > │ else │
00:02:50 #5451 [Verbose] > │ method2(v9) │
00:02:50 #5452 [Verbose] > │ let v12 : string = $"__expect / actual: %A{v7} / expected: %A{9}" │
00:02:50 #5453 [Verbose] > │ let v13 : bool = v11 = false │
00:02:50 #5454 [Verbose] > │ if v13 then │
00:02:50 #5455 [Verbose] > │ failwith<unit> v12 │
00:02:50 #5456 [Verbose] > │ method0() │
00:02:50 #5457 [Verbose] > │ │
00:02:50 #5458 [Verbose] > │ 9 │
00:02:50 #5459 [Verbose] > │ │
00:02:50 #5460 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #5461 [Verbose] >
00:02:50 #5462 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:50 #5463 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:50 #5464 [Verbose] > │ ## try_pick │
00:02:50 #5465 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #5466 [Verbose] >
00:02:50 #5467 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:50 #5468 [Verbose] > inl try_pick forall t u. (fn : t -> option u) (array : a _ t) : option u =
00:02:50 #5469 [Verbose] > (array, None)
00:02:50 #5470 [Verbose] > ||> am.foldBack fun x acc =>
00:02:50 #5471 [Verbose] > match acc with
00:02:50 #5472 [Verbose] > | Some _ => acc
00:02:50 #5473 [Verbose] > | None => x |> fn
00:02:50 #5474 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2252-5263-545965df5f81\main.spi
00:02:50 #5475 [Verbose] >
00:02:50 #5476 [Verbose] > ╭─[ 228.30ms - stdout ]────────────────────────────────────────────────────────╮
00:02:50 #5477 [Verbose] > │ () │
00:02:50 #5478 [Verbose] > │ │
00:02:50 #5479 [Verbose] > │ │
00:02:50 #5480 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #5481 [Verbose] >
00:02:50 #5482 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:50 #5483 [Verbose] > // // test
00:02:50 #5484 [Verbose] >
00:02:50 #5485 [Verbose] > am.init 10i32 id
00:02:50 #5486 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)
00:02:50 #5487 [Verbose] > |> _assert_eq (Some 5i32)
00:02:50 #5488 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2275-7576-7943790879d9\main.spi
00:02:50 #5489 [Verbose] >
00:02:50 #5490 [Verbose] > ╭─[ 442.39ms - stdout ]────────────────────────────────────────────────────────╮
00:02:50 #5491 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:50 #5492 [Verbose] > │ and [<Struct>] US0 = │
00:02:50 #5493 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:02:50 #5494 [Verbose] > │ | US0_1 │
00:02:50 #5495 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : US0} │
00:02:50 #5496 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:50 #5497 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:50 #5498 [Verbose] > │ let v2 : bool = v1 < 10 │
00:02:50 #5499 [Verbose] > │ v2 │
00:02:50 #5500 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:50 #5501 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:50 #5502 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:50 #5503 [Verbose] > │ v3 │
00:02:50 #5504 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:02:50 #5505 [Verbose] > │ v0 │
00:02:50 #5506 [Verbose] > │ and method0 () : unit = │
00:02:50 #5507 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (10) │
00:02:50 #5508 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:50 #5509 [Verbose] > │ while method1(v1) do │
00:02:50 #5510 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:50 #5511 [Verbose] > │ v0.[int v3] <- v3 │
00:02:50 #5512 [Verbose] > │ let v4 : int32 = v3 + 1 │
00:02:50 #5513 [Verbose] > │ v1.l0 <- v4 │
00:02:50 #5514 [Verbose] > │ () │
00:02:50 #5515 [Verbose] > │ let v5 : int32 = v0.Length │
00:02:50 #5516 [Verbose] > │ let v6 : US0 = US0_1 │
00:02:50 #5517 [Verbose] > │ let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1 │
00:02:50 #5518 [Verbose] > │ while method2(v5, v7) do │
00:02:50 #5519 [Verbose] > │ let v9 : int32 = v7.l0 │
00:02:50 #5520 [Verbose] > │ let v10 : int32 = -v9 │
00:02:50 #5521 [Verbose] > │ let v11 : int32 = v10 + v5 │
00:02:50 #5522 [Verbose] > │ let v12 : int32 = v11 - 1 │
00:02:50 #5523 [Verbose] > │ let v13 : US0 = v7.l1 │
00:02:50 #5524 [Verbose] > │ let v14 : int32 = v0.[int v12] │
00:02:50 #5525 [Verbose] > │ let v21 : US0 = │
00:02:50 #5526 [Verbose] > │ match v13 with │
00:02:50 #5527 [Verbose] > │ | US0_1 -> (* None *) │
00:02:50 #5528 [Verbose] > │ let v16 : bool = v14 = 5 │
00:02:50 #5529 [Verbose] > │ if v16 then │
00:02:50 #5530 [Verbose] > │ US0_0(v14) │
00:02:50 #5531 [Verbose] > │ else │
00:02:50 #5532 [Verbose] > │ US0_1 │
00:02:50 #5533 [Verbose] > │ | US0_0(v15) -> (* Some *) │
00:02:50 #5534 [Verbose] > │ v13 │
00:02:50 #5535 [Verbose] > │ let v22 : int32 = v9 + 1 │
00:02:50 #5536 [Verbose] > │ v7.l0 <- v22 │
00:02:50 #5537 [Verbose] > │ v7.l1 <- v21 │
00:02:50 #5538 [Verbose] > │ () │
00:02:50 #5539 [Verbose] > │ let v23 : US0 = v7.l1 │
00:02:50 #5540 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:02:50 #5541 [Verbose] > │ System.Console.WriteLine v24 │
00:02:50 #5542 [Verbose] > │ let v28 : bool = │
00:02:50 #5543 [Verbose] > │ match v23 with │
00:02:50 #5544 [Verbose] > │ | US0_0(v26) -> (* Some *) │
00:02:50 #5545 [Verbose] > │ let v27 : bool = v26 = 5 │
00:02:50 #5546 [Verbose] > │ v27 │
00:02:50 #5547 [Verbose] > │ | _ -> │
00:02:50 #5548 [Verbose] > │ false │
00:02:50 #5549 [Verbose] > │ let v30 : bool = │
00:02:50 #5550 [Verbose] > │ if v28 then │
00:02:50 #5551 [Verbose] > │ true │
00:02:50 #5552 [Verbose] > │ else │
00:02:50 #5553 [Verbose] > │ method3(v28) │
00:02:50 #5554 [Verbose] > │ let v31 : US0 = US0_0(5) │
00:02:50 #5555 [Verbose] > │ let v32 : string = $"__expect / actual: %A{v23} / expected: %A{v31}" │
00:02:50 #5556 [Verbose] > │ let v33 : bool = v30 = false │
00:02:50 #5557 [Verbose] > │ if v33 then │
00:02:50 #5558 [Verbose] > │ failwith<unit> v32 │
00:02:50 #5559 [Verbose] > │ method0() │
00:02:50 #5560 [Verbose] > │ │
00:02:50 #5561 [Verbose] > │ US0_0 5 │
00:02:50 #5562 [Verbose] > │ │
00:02:50 #5563 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #5564 [Verbose] >
00:02:50 #5565 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:50 #5566 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:50 #5567 [Verbose] > │ ## indexed' │
00:02:50 #5568 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:50 #5569 [Verbose] >
00:02:50 #5570 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:50 #5571 [Verbose] > inl indexed' forall t dim {int; number} dim' {int; number} u {number}. (ar : a
00:02:50 #5572 [Verbose] > dim t) : a dim' (u * t) =
00:02:50 #5573 [Verbose] > ((0, a ;[[]]), ar)
00:02:50 #5574 [Verbose] > ||> am.fold fun (i, acc) x =>
00:02:50 #5575 [Verbose] > i + 1, acc /@ a ;[[i, x]]
00:02:50 #5576 [Verbose] > |> snd
00:02:51 #5577 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2323-2323-217020dbab20\main.spi
00:02:51 #5578 [Verbose] >
00:02:51 #5579 [Verbose] > ╭─[ 224.26ms - stdout ]────────────────────────────────────────────────────────╮
00:02:51 #5580 [Verbose] > │ () │
00:02:51 #5581 [Verbose] > │ │
00:02:51 #5582 [Verbose] > │ │
00:02:51 #5583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #5584 [Verbose] >
00:02:51 #5585 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:51 #5586 [Verbose] > // // test
00:02:51 #5587 [Verbose] >
00:02:51 #5588 [Verbose] > am.init 3i32 ((*) 2)
00:02:51 #5589 [Verbose] > |> indexed'
00:02:51 #5590 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)
00:02:51 #5591 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2345-4575-402e2f688085\main.spi
00:02:51 #5592 [Verbose] >
00:02:51 #5593 [Verbose] > ╭─[ 389.50ms - stdout ]────────────────────────────────────────────────────────╮
00:02:51 #5594 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:51 #5595 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32; mutable l2 : (struct │
00:02:51 #5596 [Verbose] > │ (int32 * int32) [])} │
00:02:51 #5597 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:51 #5598 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:51 #5599 [Verbose] > │ let v2 : bool = v1 < 3 │
00:02:51 #5600 [Verbose] > │ v2 │
00:02:51 #5601 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:51 #5602 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:51 #5603 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:51 #5604 [Verbose] > │ v3 │
00:02:51 #5605 [Verbose] > │ and method3 (v0 : int32, v1 : Mut0) : bool = │
00:02:51 #5606 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:51 #5607 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:51 #5608 [Verbose] > │ v3 │
00:02:51 #5609 [Verbose] > │ and method4 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32) │
00:02:51 #5610 [Verbose] > │ []), v2 : int32) : bool = │
00:02:51 #5611 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:51 #5612 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:51 #5613 [Verbose] > │ if v4 then │
00:02:51 #5614 [Verbose] > │ let struct (v5 : int32, v6 : int32) = v0.[int v2] │
00:02:51 #5615 [Verbose] > │ let struct (v7 : int32, v8 : int32) = v1.[int v2] │
00:02:51 #5616 [Verbose] > │ let v9 : bool = v5 = v7 │
00:02:51 #5617 [Verbose] > │ let v11 : bool = │
00:02:51 #5618 [Verbose] > │ if v9 then │
00:02:51 #5619 [Verbose] > │ let v10 : bool = v6 = v8 │
00:02:51 #5620 [Verbose] > │ v10 │
00:02:51 #5621 [Verbose] > │ else │
00:02:51 #5622 [Verbose] > │ false │
00:02:51 #5623 [Verbose] > │ if v11 then │
00:02:51 #5624 [Verbose] > │ let v12 : int32 = v2 + 1 │
00:02:51 #5625 [Verbose] > │ method4(v0, v1, v12) │
00:02:51 #5626 [Verbose] > │ else │
00:02:51 #5627 [Verbose] > │ false │
00:02:51 #5628 [Verbose] > │ else │
00:02:51 #5629 [Verbose] > │ true │
00:02:51 #5630 [Verbose] > │ and method5 (v0 : bool) : bool = │
00:02:51 #5631 [Verbose] > │ v0 │
00:02:51 #5632 [Verbose] > │ and method0 () : unit = │
00:02:51 #5633 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (3) │
00:02:51 #5634 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:51 #5635 [Verbose] > │ while method1(v1) do │
00:02:51 #5636 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:51 #5637 [Verbose] > │ let v4 : int32 = 2 * v3 │
00:02:51 #5638 [Verbose] > │ v0.[int v3] <- v4 │
00:02:51 #5639 [Verbose] > │ let v5 : int32 = v3 + 1 │
00:02:51 #5640 [Verbose] > │ v1.l0 <- v5 │
00:02:51 #5641 [Verbose] > │ () │
00:02:51 #5642 [Verbose] > │ let v6 : (struct (int32 * int32) []) = [||] │
00:02:51 #5643 [Verbose] > │ let v7 : int32 = v0.Length │
00:02:51 #5644 [Verbose] > │ let v8 : Mut1 = {l0 = 0; l1 = 0; l2 = v6} : Mut1 │
00:02:51 #5645 [Verbose] > │ while method2(v7, v8) do │
00:02:51 #5646 [Verbose] > │ let v10 : int32 = v8.l0 │
00:02:51 #5647 [Verbose] > │ let struct (v11 : int32, v12 : (struct (int32 * int32) [])) = v8.l1, │
00:02:51 #5648 [Verbose] > │ v8.l2 │
00:02:51 #5649 [Verbose] > │ let v13 : int32 = v0.[int v10] │
00:02:51 #5650 [Verbose] > │ let v14 : int32 = v11 + 1 │
00:02:51 #5651 [Verbose] > │ let v15 : (struct (int32 * int32) []) = [|struct (v11, v13)|] │
00:02:51 #5652 [Verbose] > │ let v16 : int32 = v12.Length │
00:02:51 #5653 [Verbose] > │ let v17 : int32 = v15.Length │
00:02:51 #5654 [Verbose] > │ let v18 : int32 = v16 + v17 │
00:02:51 #5655 [Verbose] > │ let v19 : (struct (int32 * int32) []) = Array.zeroCreate<struct │
00:02:51 #5656 [Verbose] > │ (int32 * int32)> (v18) │
00:02:51 #5657 [Verbose] > │ let v20 : Mut0 = {l0 = 0} : Mut0 │
00:02:51 #5658 [Verbose] > │ while method3(v18, v20) do │
00:02:51 #5659 [Verbose] > │ let v22 : int32 = v20.l0 │
00:02:51 #5660 [Verbose] > │ let v23 : bool = v22 < v16 │
00:02:51 #5661 [Verbose] > │ let struct (v29 : int32, v30 : int32) = │
00:02:51 #5662 [Verbose] > │ if v23 then │
00:02:51 #5663 [Verbose] > │ let struct (v24 : int32, v25 : int32) = v12.[int v22] │
00:02:51 #5664 [Verbose] > │ struct (v24, v25) │
00:02:51 #5665 [Verbose] > │ else │
00:02:51 #5666 [Verbose] > │ let v26 : int32 = v22 - v16 │
00:02:51 #5667 [Verbose] > │ let struct (v27 : int32, v28 : int32) = v15.[int v26] │
00:02:51 #5668 [Verbose] > │ struct (v27, v28) │
00:02:51 #5669 [Verbose] > │ v19.[int v22] <- struct (v29, v30) │
00:02:51 #5670 [Verbose] > │ let v31 : int32 = v22 + 1 │
00:02:51 #5671 [Verbose] > │ v20.l0 <- v31 │
00:02:51 #5672 [Verbose] > │ () │
00:02:51 #5673 [Verbose] > │ let v32 : int32 = v10 + 1 │
00:02:51 #5674 [Verbose] > │ v8.l0 <- v32 │
00:02:51 #5675 [Verbose] > │ v8.l1 <- v14 │
00:02:51 #5676 [Verbose] > │ v8.l2 <- v19 │
00:02:51 #5677 [Verbose] > │ () │
00:02:51 #5678 [Verbose] > │ let struct (v33 : int32, v34 : (struct (int32 * int32) [])) = v8.l1, │
00:02:51 #5679 [Verbose] > │ v8.l2 │
00:02:51 #5680 [Verbose] > │ let v35 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2); │
00:02:51 #5681 [Verbose] > │ struct (2, 4)|] │
00:02:51 #5682 [Verbose] > │ let v36 : string = $"%A{v34}" │
00:02:51 #5683 [Verbose] > │ System.Console.WriteLine v36 │
00:02:51 #5684 [Verbose] > │ let v37 : int32 = v34.Length │
00:02:51 #5685 [Verbose] > │ let v38 : int32 = v35.Length │
00:02:51 #5686 [Verbose] > │ let v39 : bool = v37 = v38 │
00:02:51 #5687 [Verbose] > │ let v40 : bool = v39 <> true │
00:02:51 #5688 [Verbose] > │ let v43 : bool = │
00:02:51 #5689 [Verbose] > │ if v40 then │
00:02:51 #5690 [Verbose] > │ false │
00:02:51 #5691 [Verbose] > │ else │
00:02:51 #5692 [Verbose] > │ let v41 : int32 = 0 │
00:02:51 #5693 [Verbose] > │ method4(v34, v35, v41) │
00:02:51 #5694 [Verbose] > │ let v45 : bool = │
00:02:51 #5695 [Verbose] > │ if v43 then │
00:02:51 #5696 [Verbose] > │ true │
00:02:51 #5697 [Verbose] > │ else │
00:02:51 #5698 [Verbose] > │ method5(v43) │
00:02:51 #5699 [Verbose] > │ let v46 : string = $"__expect / actual: %A{v34} / expected: %A{v35}" │
00:02:51 #5700 [Verbose] > │ let v47 : bool = v45 = false │
00:02:51 #5701 [Verbose] > │ if v47 then │
00:02:51 #5702 [Verbose] > │ failwith<unit> v46 │
00:02:51 #5703 [Verbose] > │ method0() │
00:02:51 #5704 [Verbose] > │ │
00:02:51 #5705 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|] │
00:02:51 #5706 [Verbose] > │ │
00:02:51 #5707 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #5708 [Verbose] >
00:02:51 #5709 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:51 #5710 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:51 #5711 [Verbose] > │ ## map_base │
00:02:51 #5712 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #5713 [Verbose] >
00:02:51 #5714 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:51 #5715 [Verbose] > inl map_base forall t u. (fn : t -> u) (x : array_base t) : array_base u =
00:02:51 #5716 [Verbose] > a x
00:02:51 #5717 [Verbose] > |> am.map fn
00:02:51 #5718 [Verbose] > |> fun (a x : _ i64 _) => x
00:02:51 #5719 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2391-9142-9c217d9c731a\main.spi
00:02:51 #5720 [Verbose] >
00:02:51 #5721 [Verbose] > ╭─[ 217.46ms - stdout ]────────────────────────────────────────────────────────╮
00:02:51 #5722 [Verbose] > │ () │
00:02:51 #5723 [Verbose] > │ │
00:02:51 #5724 [Verbose] > │ │
00:02:51 #5725 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #5726 [Verbose] >
00:02:51 #5727 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:51 #5728 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:51 #5729 [Verbose] > │ ## average │
00:02:51 #5730 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:51 #5731 [Verbose] >
00:02:51 #5732 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:51 #5733 [Verbose] > inl average forall el {number}. (a : a _ el) : el =
00:02:51 #5734 [Verbose] > a |> $'Array.average'
00:02:51 #5735 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2413-1368-1f5ab5b030ad\main.spi
00:02:52 #5736 [Verbose] >
00:02:52 #5737 [Verbose] > ╭─[ 290.95ms - stdout ]────────────────────────────────────────────────────────╮
00:02:52 #5738 [Verbose] > │ () │
00:02:52 #5739 [Verbose] > │ │
00:02:52 #5740 [Verbose] > │ │
00:02:52 #5741 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:52 #5742 [Verbose] >
00:02:52 #5743 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:52 #5744 [Verbose] > inl distinct forall dim el. (a : a dim el) : a dim el =
00:02:52 #5745 [Verbose] > a |> $'Array.distinct'
00:02:52 #5746 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2461-6116-6ccb37959ebb\main.spi
00:02:53 #5747 [Verbose] >
00:02:53 #5748 [Verbose] > ╭─[ 1.23s - stdout ]───────────────────────────────────────────────────────────╮
00:02:53 #5749 [Verbose] > │ () │
00:02:53 #5750 [Verbose] > │ │
00:02:53 #5751 [Verbose] > │ │
00:02:53 #5752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:53 #5753 [Verbose] >
00:02:53 #5754 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:53 #5755 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:53 #5756 [Verbose] > │ ## parallel_map │
00:02:53 #5757 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:53 #5758 [Verbose] >
00:02:53 #5759 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:53 #5760 [Verbose] > inl parallel_map forall dim el el'. (fn : el -> el') (a : a dim el) : a dim el'
00:02:53 #5761 [Verbose] > =
00:02:53 #5762 [Verbose] > a |> $'Array.Parallel.map' fn
00:02:54 #5763 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2616-1617-196e556f1e30\main.spi
00:02:54 #5764 [Verbose] >
00:02:54 #5765 [Verbose] > ╭─[ 306.45ms - stdout ]────────────────────────────────────────────────────────╮
00:02:54 #5766 [Verbose] > │ () │
00:02:54 #5767 [Verbose] > │ │
00:02:54 #5768 [Verbose] > │ │
00:02:54 #5769 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5770 [Verbose] >
00:02:54 #5771 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:54 #5772 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:54 #5773 [Verbose] > │ ## sort_by │
00:02:54 #5774 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5775 [Verbose] >
00:02:54 #5776 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:54 #5777 [Verbose] > inl sort_by forall dim el. (fn : el -> _) (a : a dim el) : a dim el =
00:02:54 #5778 [Verbose] > a |> $'Array.sortBy' fn
00:02:54 #5779 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2647-4775-454956006a9c\main.spi
00:02:54 #5780 [Verbose] >
00:02:54 #5781 [Verbose] > ╭─[ 265.98ms - stdout ]────────────────────────────────────────────────────────╮
00:02:54 #5782 [Verbose] > │ () │
00:02:54 #5783 [Verbose] > │ │
00:02:54 #5784 [Verbose] > │ │
00:02:54 #5785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5786 [Verbose] >
00:02:54 #5787 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:54 #5788 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:54 #5789 [Verbose] > │ ## sort_descending │
00:02:54 #5790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5791 [Verbose] >
00:02:54 #5792 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:54 #5793 [Verbose] > inl sort_descending forall dim el. (a : a dim el) : a dim el =
00:02:54 #5794 [Verbose] > a |> $'Array.sortDescending'
00:02:54 #5795 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2674-7440-7e5d39bf19d0\main.spi
00:02:54 #5796 [Verbose] >
00:02:54 #5797 [Verbose] > ╭─[ 210.67ms - stdout ]────────────────────────────────────────────────────────╮
00:02:54 #5798 [Verbose] > │ () │
00:02:54 #5799 [Verbose] > │ │
00:02:54 #5800 [Verbose] > │ │
00:02:54 #5801 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5802 [Verbose] >
00:02:54 #5803 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:54 #5804 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:54 #5805 [Verbose] > │ ## transpose │
00:02:54 #5806 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5807 [Verbose] >
00:02:54 #5808 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:54 #5809 [Verbose] > inl transpose forall dim el. (a : a dim (a dim el)) : a dim (a dim el) =
00:02:54 #5810 [Verbose] > a |> $'Array.transpose'
00:02:54 #5811 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2696-9609-90a7ec0ab561\main.spi
00:02:54 #5812 [Verbose] >
00:02:54 #5813 [Verbose] > ╭─[ 251.86ms - stdout ]────────────────────────────────────────────────────────╮
00:02:54 #5814 [Verbose] > │ () │
00:02:54 #5815 [Verbose] > │ │
00:02:54 #5816 [Verbose] > │ │
00:02:54 #5817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5818 [Verbose] >
00:02:54 #5819 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:54 #5820 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:54 #5821 [Verbose] > │ ## try_item │
00:02:54 #5822 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:54 #5823 [Verbose] >
00:02:54 #5824 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:54 #5825 [Verbose] > inl try_item forall dim el. (i : i32) (a : a dim el) : option el =
00:02:54 #5826 [Verbose] > a |> $'Array.tryItem' i |> optionm'.unbox
00:02:55 #5827 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2721-2192-2bbc65c80300\main.spi
00:02:55 #5828 [Verbose] >
00:02:55 #5829 [Verbose] > ╭─[ 205.18ms - stdout ]────────────────────────────────────────────────────────╮
00:02:55 #5830 [Verbose] > │ () │
00:02:55 #5831 [Verbose] > │ │
00:02:55 #5832 [Verbose] > │ │
00:02:55 #5833 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:55 #5834 [Verbose] >
00:02:55 #5835 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:55 #5836 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:55 #5837 [Verbose] > │ ## indexed │
00:02:55 #5838 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:55 #5839 [Verbose] >
00:02:55 #5840 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:55 #5841 [Verbose] > inl indexed (array : a _ _) =
00:02:55 #5842 [Verbose] > (([[]], 0), array)
00:02:55 #5843 [Verbose] > ||> am.fold fun (acc, i) x =>
00:02:55 #5844 [Verbose] > (i, x) :: acc, i + 1
00:02:55 #5845 [Verbose] > |> fst
00:02:55 #5846 [Verbose] > |> listm.rev
00:02:55 #5847 [Verbose] > |> listm.toArray
00:02:55 #5848 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2742-4295-48c0b541b897\main.spi
00:02:55 #5849 [Verbose] >
00:02:55 #5850 [Verbose] > ╭─[ 278.54ms - stdout ]────────────────────────────────────────────────────────╮
00:02:55 #5851 [Verbose] > │ () │
00:02:55 #5852 [Verbose] > │ │
00:02:55 #5853 [Verbose] > │ │
00:02:55 #5854 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:55 #5855 [Verbose] >
00:02:55 #5856 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:55 #5857 [Verbose] > // // test
00:02:55 #5858 [Verbose] >
00:02:55 #5859 [Verbose] > am.init 3i32 ((*) 2)
00:02:55 #5860 [Verbose] > |> indexed
00:02:55 #5861 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)
00:02:55 #5862 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2771-7109-7741abd2f312\main.spi
00:02:55 #5863 [Verbose] >
00:02:55 #5864 [Verbose] > ╭─[ 544.50ms - stdout ]────────────────────────────────────────────────────────╮
00:02:55 #5865 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:55 #5866 [Verbose] > │ and UH0 = │
00:02:55 #5867 [Verbose] > │ | UH0_0 │
00:02:55 #5868 [Verbose] > │ | UH0_1 of int32 * int32 * UH0 │
00:02:55 #5869 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0; mutable l2 : int32} │
00:02:55 #5870 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:02:55 #5871 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:55 #5872 [Verbose] > │ let v2 : bool = v1 < 3 │
00:02:55 #5873 [Verbose] > │ v2 │
00:02:55 #5874 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:02:55 #5875 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:55 #5876 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:55 #5877 [Verbose] > │ v3 │
00:02:55 #5878 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 = │
00:02:55 #5879 [Verbose] > │ match v0 with │
00:02:55 #5880 [Verbose] > │ | UH0_1(v2, v3, v4) -> (* Cons *) │
00:02:55 #5881 [Verbose] > │ let v5 : UH0 = UH0_1(v2, v3, v1) │
00:02:55 #5882 [Verbose] > │ method3(v4, v5) │
00:02:55 #5883 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:02:56 #5884 [Verbose] > │ v1 │
00:02:56 #5885 [Verbose] > │ and method5 (v0 : UH0, v1 : int32) : int32 = │
00:02:56 #5886 [Verbose] > │ match v0 with │
00:02:56 #5887 [Verbose] > │ | UH0_1(v2, v3, v4) -> (* Cons *) │
00:02:56 #5888 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:02:56 #5889 [Verbose] > │ method5(v4, v5) │
00:02:56 #5890 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:02:56 #5891 [Verbose] > │ v1 │
00:02:56 #5892 [Verbose] > │ and method6 (v0 : (struct (int32 * int32) []), v1 : UH0, v2 : int32) : int32 │
00:02:56 #5893 [Verbose] > │ = │
00:02:56 #5894 [Verbose] > │ match v1 with │
00:02:56 #5895 [Verbose] > │ | UH0_1(v3, v4, v5) -> (* Cons *) │
00:02:56 #5896 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:02:56 #5897 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:02:56 #5898 [Verbose] > │ method6(v0, v5, v6) │
00:02:56 #5899 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:02:56 #5900 [Verbose] > │ v2 │
00:02:56 #5901 [Verbose] > │ and method4 (v0 : UH0) : (struct (int32 * int32) []) = │
00:02:56 #5902 [Verbose] > │ let v1 : int32 = 0 │
00:02:56 #5903 [Verbose] > │ let v2 : int32 = method5(v0, v1) │
00:02:56 #5904 [Verbose] > │ let v3 : (struct (int32 * int32) []) = Array.zeroCreate<struct (int32 * │
00:02:56 #5905 [Verbose] > │ int32)> (v2) │
00:02:56 #5906 [Verbose] > │ let v4 : int32 = 0 │
00:02:56 #5907 [Verbose] > │ let v5 : int32 = method6(v3, v0, v4) │
00:02:56 #5908 [Verbose] > │ v3 │
00:02:56 #5909 [Verbose] > │ and method7 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32) │
00:02:56 #5910 [Verbose] > │ []), v2 : int32) : bool = │
00:02:56 #5911 [Verbose] > │ let v3 : int32 = v0.Length │
00:02:56 #5912 [Verbose] > │ let v4 : bool = v2 < v3 │
00:02:56 #5913 [Verbose] > │ if v4 then │
00:02:56 #5914 [Verbose] > │ let struct (v5 : int32, v6 : int32) = v0.[int v2] │
00:02:56 #5915 [Verbose] > │ let struct (v7 : int32, v8 : int32) = v1.[int v2] │
00:02:56 #5916 [Verbose] > │ let v9 : bool = v5 = v7 │
00:02:56 #5917 [Verbose] > │ let v11 : bool = │
00:02:56 #5918 [Verbose] > │ if v9 then │
00:02:56 #5919 [Verbose] > │ let v10 : bool = v6 = v8 │
00:02:56 #5920 [Verbose] > │ v10 │
00:02:56 #5921 [Verbose] > │ else │
00:02:56 #5922 [Verbose] > │ false │
00:02:56 #5923 [Verbose] > │ if v11 then │
00:02:56 #5924 [Verbose] > │ let v12 : int32 = v2 + 1 │
00:02:56 #5925 [Verbose] > │ method7(v0, v1, v12) │
00:02:56 #5926 [Verbose] > │ else │
00:02:56 #5927 [Verbose] > │ false │
00:02:56 #5928 [Verbose] > │ else │
00:02:56 #5929 [Verbose] > │ true │
00:02:56 #5930 [Verbose] > │ and method8 (v0 : bool) : bool = │
00:02:56 #5931 [Verbose] > │ v0 │
00:02:56 #5932 [Verbose] > │ and method0 () : unit = │
00:02:56 #5933 [Verbose] > │ let v0 : (int32 []) = Array.zeroCreate<int32> (3) │
00:02:56 #5934 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:02:56 #5935 [Verbose] > │ while method1(v1) do │
00:02:56 #5936 [Verbose] > │ let v3 : int32 = v1.l0 │
00:02:56 #5937 [Verbose] > │ let v4 : int32 = 2 * v3 │
00:02:56 #5938 [Verbose] > │ v0.[int v3] <- v4 │
00:02:56 #5939 [Verbose] > │ let v5 : int32 = v3 + 1 │
00:02:56 #5940 [Verbose] > │ v1.l0 <- v5 │
00:02:56 #5941 [Verbose] > │ () │
00:02:56 #5942 [Verbose] > │ let v6 : int32 = v0.Length │
00:02:56 #5943 [Verbose] > │ let v7 : UH0 = UH0_0 │
00:02:56 #5944 [Verbose] > │ let v8 : Mut1 = {l0 = 0; l1 = v7; l2 = 0} : Mut1 │
00:02:56 #5945 [Verbose] > │ while method2(v6, v8) do │
00:02:56 #5946 [Verbose] > │ let v10 : int32 = v8.l0 │
00:02:56 #5947 [Verbose] > │ let struct (v11 : UH0, v12 : int32) = v8.l1, v8.l2 │
00:02:56 #5948 [Verbose] > │ let v13 : int32 = v0.[int v10] │
00:02:56 #5949 [Verbose] > │ let v14 : int32 = v12 + 1 │
00:02:56 #5950 [Verbose] > │ let v15 : int32 = v10 + 1 │
00:02:56 #5951 [Verbose] > │ let v16 : UH0 = UH0_1(v12, v13, v11) │
00:02:56 #5952 [Verbose] > │ v8.l0 <- v15 │
00:02:56 #5953 [Verbose] > │ v8.l1 <- v16 │
00:02:56 #5954 [Verbose] > │ v8.l2 <- v14 │
00:02:56 #5955 [Verbose] > │ () │
00:02:56 #5956 [Verbose] > │ let struct (v17 : UH0, v18 : int32) = v8.l1, v8.l2 │
00:02:56 #5957 [Verbose] > │ let v19 : UH0 = UH0_0 │
00:02:56 #5958 [Verbose] > │ let v20 : UH0 = method3(v17, v19) │
00:02:56 #5959 [Verbose] > │ let v21 : (struct (int32 * int32) []) = method4(v20) │
00:02:56 #5960 [Verbose] > │ let v22 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2); │
00:02:56 #5961 [Verbose] > │ struct (2, 4)|] │
00:02:56 #5962 [Verbose] > │ let v23 : string = $"%A{v21}" │
00:02:56 #5963 [Verbose] > │ System.Console.WriteLine v23 │
00:02:56 #5964 [Verbose] > │ let v24 : int32 = v21.Length │
00:02:56 #5965 [Verbose] > │ let v25 : int32 = v22.Length │
00:02:56 #5966 [Verbose] > │ let v26 : bool = v24 = v25 │
00:02:56 #5967 [Verbose] > │ let v27 : bool = v26 <> true │
00:02:56 #5968 [Verbose] > │ let v30 : bool = │
00:02:56 #5969 [Verbose] > │ if v27 then │
00:02:56 #5970 [Verbose] > │ false │
00:02:56 #5971 [Verbose] > │ else │
00:02:56 #5972 [Verbose] > │ let v28 : int32 = 0 │
00:02:56 #5973 [Verbose] > │ method7(v21, v22, v28) │
00:02:56 #5974 [Verbose] > │ let v32 : bool = │
00:02:56 #5975 [Verbose] > │ if v30 then │
00:02:56 #5976 [Verbose] > │ true │
00:02:56 #5977 [Verbose] > │ else │
00:02:56 #5978 [Verbose] > │ method8(v30) │
00:02:56 #5979 [Verbose] > │ let v33 : string = $"__expect / actual: %A{v21} / expected: %A{v22}" │
00:02:56 #5980 [Verbose] > │ let v34 : bool = v32 = false │
00:02:56 #5981 [Verbose] > │ if v34 then │
00:02:56 #5982 [Verbose] > │ failwith<unit> v33 │
00:02:56 #5983 [Verbose] > │ method0() │
00:02:56 #5984 [Verbose] > │ │
00:02:56 #5985 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|] │
00:02:56 #5986 [Verbose] > │ │
00:02:56 #5987 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #5988 [Verbose] >
00:02:56 #5989 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:56 #5990 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:56 #5991 [Verbose] > │ ## vec │
00:02:56 #5992 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #5993 [Verbose] >
00:02:56 #5994 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:56 #5995 [Verbose] > nominal vec t = $"Vec<`t>"
00:02:56 #5996 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2833-3350-384626f1b201\main.spi
00:02:56 #5997 [Verbose] >
00:02:56 #5998 [Verbose] > ╭─[ 378.06ms - stdout ]────────────────────────────────────────────────────────╮
00:02:56 #5999 [Verbose] > │ () │
00:02:56 #6000 [Verbose] > │ │
00:02:56 #6001 [Verbose] > │ │
00:02:56 #6002 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #6003 [Verbose] >
00:02:56 #6004 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:56 #6005 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:56 #6006 [Verbose] > │ ## from_vec │
00:02:56 #6007 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #6008 [Verbose] >
00:02:56 #6009 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:56 #6010 [Verbose] > inl from_vec forall dim el. (vec : vec el) : a dim el =
00:02:56 #6011 [Verbose] > !\\(vec, $'"fable_library_rust::NativeArray_::array_from($0)"')
00:02:56 #6012 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2872-7227-765d91f64802\main.spi
00:02:56 #6013 [Verbose] >
00:02:56 #6014 [Verbose] > ╭─[ 235.80ms - stdout ]────────────────────────────────────────────────────────╮
00:02:56 #6015 [Verbose] > │ () │
00:02:56 #6016 [Verbose] > │ │
00:02:56 #6017 [Verbose] > │ │
00:02:56 #6018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #6019 [Verbose] >
00:02:56 #6020 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:56 #6021 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:56 #6022 [Verbose] > │ ## to_vec │
00:02:56 #6023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #6024 [Verbose] >
00:02:56 #6025 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:56 #6026 [Verbose] > inl to_vec forall t. (ab : array_base t) : vec t =
00:02:56 #6027 [Verbose] > !\\(ab, $'"$0.to_vec()"')
00:02:56 #6028 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2896-9640-9c5b5debc77d\main.spi
00:02:56 #6029 [Verbose] >
00:02:56 #6030 [Verbose] > ╭─[ 227.64ms - stdout ]────────────────────────────────────────────────────────╮
00:02:56 #6031 [Verbose] > │ () │
00:02:56 #6032 [Verbose] > │ │
00:02:56 #6033 [Verbose] > │ │
00:02:56 #6034 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #6035 [Verbose] >
00:02:56 #6036 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:56 #6037 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:56 #6038 [Verbose] > │ ## vec_push │
00:02:56 #6039 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:56 #6040 [Verbose] >
00:02:56 #6041 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:56 #6042 [Verbose] > inl vec_push forall el. (el : el) (vec : vec el) : vec el =
00:02:56 #6043 [Verbose] > inl el = join el
00:02:56 #6044 [Verbose] > inl vec = join vec
00:02:56 #6045 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:56 #6046 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:56 #6047 [Verbose] > !\($'"!vec.push(!el)"')
00:02:56 #6048 [Verbose] > !\($'"!vec"')
00:02:57 #6049 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2919-1973-1514a86fbc77\main.spi
00:02:57 #6050 [Verbose] >
00:02:57 #6051 [Verbose] > ╭─[ 245.25ms - stdout ]────────────────────────────────────────────────────────╮
00:02:57 #6052 [Verbose] > │ () │
00:02:57 #6053 [Verbose] > │ │
00:02:57 #6054 [Verbose] > │ │
00:02:57 #6055 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #6056 [Verbose] >
00:02:57 #6057 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:57 #6058 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:57 #6059 [Verbose] > │ ## vec_reverse │
00:02:57 #6060 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #6061 [Verbose] >
00:02:57 #6062 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:57 #6063 [Verbose] > inl vec_reverse forall el. (vec : vec el) : vec el =
00:02:57 #6064 [Verbose] > inl vec = join vec
00:02:57 #6065 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:57 #6066 [Verbose] > !\($'"!vec.reverse()"')
00:02:57 #6067 [Verbose] > !\($'"!vec"')
00:02:57 #6068 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2944-4487-4e53b134a97d\main.spi
00:02:57 #6069 [Verbose] >
00:02:57 #6070 [Verbose] > ╭─[ 240.99ms - stdout ]────────────────────────────────────────────────────────╮
00:02:57 #6071 [Verbose] > │ () │
00:02:57 #6072 [Verbose] > │ │
00:02:57 #6073 [Verbose] > │ │
00:02:57 #6074 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #6075 [Verbose] >
00:02:57 #6076 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:57 #6077 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:57 #6078 [Verbose] > │ ## vec_retain │
00:02:57 #6079 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #6080 [Verbose] >
00:02:57 #6081 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:57 #6082 [Verbose] > inl vec_retain forall el. (fn : el -> bool) (vec : vec el) : vec el =
00:02:57 #6083 [Verbose] > inl vec = join vec
00:02:57 #6084 [Verbose] > inl fn = join fn
00:02:57 #6085 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:57 #6086 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:57 #6087 [Verbose] > !\($'"!vec.retain(|x| !fn(x.clone()))"')
00:02:57 #6088 [Verbose] > !\($'"!vec"')
00:02:57 #6089 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2969-6956-67c227aa5d7c\main.spi
00:02:57 #6090 [Verbose] >
00:02:57 #6091 [Verbose] > ╭─[ 231.79ms - stdout ]────────────────────────────────────────────────────────╮
00:02:57 #6092 [Verbose] > │ () │
00:02:57 #6093 [Verbose] > │ │
00:02:57 #6094 [Verbose] > │ │
00:02:57 #6095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #6096 [Verbose] >
00:02:57 #6097 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:57 #6098 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:57 #6099 [Verbose] > │ ## vec_sort_by_key │
00:02:57 #6100 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:57 #6101 [Verbose] >
00:02:57 #6102 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:57 #6103 [Verbose] > inl vec_sort_by_key forall el t. (fn : el -> t) (vec : vec el) : vec el =
00:02:57 #6104 [Verbose] > inl vec = join vec
00:02:57 #6105 [Verbose] > inl fn = join fn
00:02:57 #6106 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:57 #6107 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:57 #6108 [Verbose] > !\($'"!vec.sort_by_key(|x| !fn(x.clone()))"')
00:02:57 #6109 [Verbose] > !\($'"!vec"')
00:02:57 #6110 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2993-9336-94fb9d82d666\main.spi
00:02:58 #6111 [Verbose] >
00:02:58 #6112 [Verbose] > ╭─[ 461.23ms - stdout ]────────────────────────────────────────────────────────╮
00:02:58 #6113 [Verbose] > │ () │
00:02:58 #6114 [Verbose] > │ │
00:02:58 #6115 [Verbose] > │ │
00:02:58 #6116 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6117 [Verbose] >
00:02:58 #6118 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:58 #6119 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:58 #6120 [Verbose] > │ ## vec_extend │
00:02:58 #6121 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6122 [Verbose] >
00:02:58 #6123 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:58 #6124 [Verbose] > inl vec_extend forall el. (el : vec el) (vec : vec el) : vec el =
00:02:58 #6125 [Verbose] > inl el = join el
00:02:58 #6126 [Verbose] > inl vec = join vec
00:02:58 #6127 [Verbose] > !\($'"let mut !vec = !vec"')
00:02:58 #6128 [Verbose] > // inl vec = vec |> rust.to_mut
00:02:58 #6129 [Verbose] > !\($'"!vec.extend(!el)"')
00:02:58 #6130 [Verbose] > !\($'"!vec"')
00:02:58 #6131 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3040-4000-4b28589325ed\main.spi
00:02:58 #6132 [Verbose] >
00:02:58 #6133 [Verbose] > ╭─[ 248.91ms - stdout ]────────────────────────────────────────────────────────╮
00:02:58 #6134 [Verbose] > │ () │
00:02:58 #6135 [Verbose] > │ │
00:02:58 #6136 [Verbose] > │ │
00:02:58 #6137 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6138 [Verbose] >
00:02:58 #6139 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:58 #6140 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:58 #6141 [Verbose] > │ ## vec_collect │
00:02:58 #6142 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6143 [Verbose] >
00:02:58 #6144 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:58 #6145 [Verbose] > inl vec_collect fn vec =
00:02:58 #6146 [Verbose] > ((;[[]] |> to_vec), (vec |> from_vec : _ i32 _))
00:02:58 #6147 [Verbose] > ||> am.fold fun acc x =>
00:02:58 #6148 [Verbose] > acc |> vec_extend (fn x)
00:02:58 #6149 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3065-6575-6f6509c6229a\main.spi
00:02:58 #6150 [Verbose] >
00:02:58 #6151 [Verbose] > ╭─[ 237.12ms - stdout ]────────────────────────────────────────────────────────╮
00:02:58 #6152 [Verbose] > │ () │
00:02:58 #6153 [Verbose] > │ │
00:02:58 #6154 [Verbose] > │ │
00:02:58 #6155 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6156 [Verbose] >
00:02:58 #6157 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:58 #6158 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:58 #6159 [Verbose] > │ ## vec_collect_option │
00:02:58 #6160 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6161 [Verbose] >
00:02:58 #6162 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:58 #6163 [Verbose] > inl vec_collect_option vec =
00:02:58 #6164 [Verbose] > ((;[[]] |> to_vec |> Ok), (vec |> from_vec : _ i32 _))
00:02:58 #6165 [Verbose] > ||> am.fold fun acc x =>
00:02:58 #6166 [Verbose] > x
00:02:58 #6167 [Verbose] > |> resultm.unbox
00:02:58 #6168 [Verbose] > |> fun x =>
00:02:58 #6169 [Verbose] > match acc, x |> resultm.map optionm'.unbox with
00:02:58 #6170 [Verbose] > | Ok acc, Ok (Some x) => acc |> vec_extend x |> Ok
00:02:58 #6171 [Verbose] > | _, Error error => error |> Error
00:02:58 #6172 [Verbose] > | _ => acc
00:02:58 #6173 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3090-9002-95067a0f82f1\main.spi
00:02:58 #6174 [Verbose] >
00:02:58 #6175 [Verbose] > ╭─[ 211.71ms - stdout ]────────────────────────────────────────────────────────╮
00:02:58 #6176 [Verbose] > │ () │
00:02:58 #6177 [Verbose] > │ │
00:02:58 #6178 [Verbose] > │ │
00:02:58 #6179 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6180 [Verbose] >
00:02:58 #6181 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:58 #6182 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:58 #6183 [Verbose] > │ ## vec_collect_into │
00:02:58 #6184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:58 #6185 [Verbose] >
00:02:58 #6186 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:58 #6187 [Verbose] > inl vec_collect_into forall (c : * -> * -> *) t e.
00:02:58 #6188 [Verbose] > (x : vec (c t e))
00:02:58 #6189 [Verbose] > : c (vec t) e
00:02:58 #6190 [Verbose] > =
00:02:58 #6191 [Verbose] > !\($'"!x.into_iter().collect()"')
00:02:58 #6192 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3111-1177-185c45478995\main.spi
00:02:59 #6193 [Verbose] >
00:03:00 #6194 [Verbose] > ╭─[ 907.38ms - stdout ]────────────────────────────────────────────────────────╮
00:03:00 #6195 [Verbose] > │ () │
00:03:00 #6196 [Verbose] > │ │
00:03:00 #6197 [Verbose] > │ │
00:03:00 #6198 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:00 #6199 [Verbose] >
00:03:00 #6200 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:00 #6201 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:00 #6202 [Verbose] > │ ## vec_mapi │
00:03:00 #6203 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:00 #6204 [Verbose] >
00:03:00 #6205 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:00 #6206 [Verbose] > inl vec_mapi forall dim t u. (fn : dim -> t -> u) (ar : vec t) : vec u =
00:03:00 #6207 [Verbose] > inl fn = join fn
00:03:00 #6208 [Verbose] > inl ar = join ar
00:03:00 #6209 [Verbose] > !\($'"!ar.iter().enumerate().map(|(i, x)|
00:03:00 #6210 [Verbose] > !fn(i.try_into().unwrap())(x.clone())).collect()"')
00:03:00 #6211 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3285-8521-82fb001f4465\main.spi
00:03:00 #6212 [Verbose] >
00:03:00 #6213 [Verbose] > ╭─[ 522.42ms - stdout ]────────────────────────────────────────────────────────╮
00:03:00 #6214 [Verbose] > │ () │
00:03:00 #6215 [Verbose] > │ │
00:03:00 #6216 [Verbose] > │ │
00:03:00 #6217 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:00 #6218 [Verbose] >
00:03:00 #6219 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:00 #6220 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:00 #6221 [Verbose] > │ ## vec_map │
00:03:00 #6222 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:00 #6223 [Verbose] >
00:03:00 #6224 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:00 #6225 [Verbose] > inl vec_map forall t u. (fn : t -> u) (ar : vec t) : vec u =
00:03:00 #6226 [Verbose] > !\\((ar, fn), $'"$0.iter().map(|x| $1(x.clone())).collect()"')
00:03:01 #6227 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3320-2026-29d9094c0572\main.spi
00:03:01 #6228 [Verbose] >
00:03:01 #6229 [Verbose] > ╭─[ 292.83ms - stdout ]────────────────────────────────────────────────────────╮
00:03:01 #6230 [Verbose] > │ () │
00:03:01 #6231 [Verbose] > │ │
00:03:01 #6232 [Verbose] > │ │
00:03:01 #6233 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:01 #6234 [Verbose] >
00:03:01 #6235 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:01 #6236 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:01 #6237 [Verbose] > │ ## vec_filter │
00:03:01 #6238 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:01 #6239 [Verbose] >
00:03:01 #6240 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:01 #6241 [Verbose] > inl vec_filter forall t. (fn : t -> bool) (ar : vec t) : vec t =
00:03:01 #6242 [Verbose] > inl fn = join fn
00:03:01 #6243 [Verbose] > inl ar = join ar
00:03:01 #6244 [Verbose] > !\($'"!ar.into_iter().filter(|x| !fn(x.clone().clone())).collect()"')
00:03:01 #6245 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3350-5052-5a5f862caa2f\main.spi
00:03:01 #6246 [Verbose] >
00:03:01 #6247 [Verbose] > ╭─[ 285.25ms - stdout ]────────────────────────────────────────────────────────╮
00:03:01 #6248 [Verbose] > │ () │
00:03:01 #6249 [Verbose] > │ │
00:03:01 #6250 [Verbose] > │ │
00:03:01 #6251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:01 #6252 [Verbose] >
00:03:01 #6253 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:01 #6254 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:01 #6255 [Verbose] > │ ## enumerate │
00:03:01 #6256 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:01 #6257 [Verbose] >
00:03:01 #6258 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:01 #6259 [Verbose] > inl enumerate forall dim {int; number} t. (ar : a dim t) : a dim (unativeint *
00:03:01 #6260 [Verbose] > t) =
00:03:01 #6261 [Verbose] > inl (a ar) = ar
00:03:01 #6262 [Verbose] > inl ar = ar |> to_vec
00:03:01 #6263 [Verbose] > !\($'"!ar.into_iter().enumerate().map(std::rc::Rc::new).collect()"')
00:03:01 #6264 [Verbose] > |> vec_map from_pair
00:03:01 #6265 [Verbose] > |> from_vec
00:03:01 #6266 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3379-7971-750c865a86d8\main.spi
00:03:01 #6267 [Verbose] >
00:03:01 #6268 [Verbose] > ╭─[ 305.33ms - stdout ]────────────────────────────────────────────────────────╮
00:03:01 #6269 [Verbose] > │ () │
00:03:01 #6270 [Verbose] > │ │
00:03:01 #6271 [Verbose] > │ │
00:03:01 #6272 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:01 #6273 [Verbose] >
00:03:01 #6274 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:01 #6275 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:01 #6276 [Verbose] > │ ## slice │
00:03:01 #6277 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:01 #6278 [Verbose] >
00:03:01 #6279 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:01 #6280 [Verbose] > nominal slice t = $"Slice<`t>"
00:03:02 #6281 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3410-1099-1430458b32b9\main.spi
00:03:02 #6282 [Verbose] >
00:03:02 #6283 [Verbose] > ╭─[ 286.56ms - stdout ]────────────────────────────────────────────────────────╮
00:03:02 #6284 [Verbose] > │ () │
00:03:02 #6285 [Verbose] > │ │
00:03:02 #6286 [Verbose] > │ │
00:03:02 #6287 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6288 [Verbose] >
00:03:02 #6289 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:02 #6290 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:02 #6291 [Verbose] > │ ## slice' │
00:03:02 #6292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6293 [Verbose] >
00:03:02 #6294 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:02 #6295 [Verbose] > nominal slice' t u = $"Slice'<`t, `u>"
00:03:02 #6296 [Verbose] >
00:03:02 #6297 [Verbose] > inl slice' forall dim el. (x : option el) : slice' el dim =
00:03:02 #6298 [Verbose] > match x with
00:03:02 #6299 [Verbose] > | Some x => !\($'"[[!x]]"')
00:03:02 #6300 [Verbose] > | None =>
00:03:02 #6301 [Verbose] > !\($'"[[\\\"\\\".to_string()]]"') : slice' el dim
00:03:02 #6302 [Verbose] > // emit_expr `(()) `(slice' el dim) () ($'"[[@dim]]"' : string) :
00:03:02 #6303 [Verbose] > slice' el 10
00:03:02 #6304 [Verbose] > // !\( : string) : slice' el i32 // !\($'"[[]]"')
00:03:02 #6305 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3440-4050-4fd0d4bdf0ca\main.spi
00:03:02 #6306 [Verbose] >
00:03:02 #6307 [Verbose] > ╭─[ 294.12ms - stdout ]────────────────────────────────────────────────────────╮
00:03:02 #6308 [Verbose] > │ () │
00:03:02 #6309 [Verbose] > │ │
00:03:02 #6310 [Verbose] > │ │
00:03:02 #6311 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6312 [Verbose] >
00:03:02 #6313 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:02 #6314 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:02 #6315 [Verbose] > │ ## as_slice │
00:03:02 #6316 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:02 #6317 [Verbose] >
00:03:02 #6318 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:02 #6319 [Verbose] > inl as_slice forall t. (x : array_base t) : rust.ref' (slice t) =
00:03:02 #6320 [Verbose] > inl x = x |> to_vec
00:03:02 #6321 [Verbose] > !\($'"!x.as_slice()"')
00:03:02 #6322 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3470-7042-731a15669d60\main.spi
00:03:02 #6323 [Verbose] >
00:03:02 #6324 [Verbose] > ╭─[ 384.43ms - stdout ]────────────────────────────────────────────────────────╮
00:03:02 #6325 [Verbose] > │ () │
00:03:02 #6326 [Verbose] > │ │
00:03:02 #6327 [Verbose] > │ │
00:03:02 #6328 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:06 #6329 [Verbose] > [NbConvertApp] Converting notebook am'.dib.ipynb to html
00:03:06 #6330 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:03:06 #6331 [Verbose] > validate(nb)
00:03:07 #6332 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:03:07 #6333 [Verbose] > return _pygments_highlight(
00:03:08 #6334 [Verbose] > [NbConvertApp] Writing 398754 bytes to am'.dib.html
00:03:09 #6335 [Debug] executeAsync / exitCode: 0 / output.Length: 94596
00:03:09 #6336 [Debug] main / executeCommand / exitCode: 0
00:03:09 #6337 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"sm'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:03:13 #6338 [Verbose] >
00:03:13 #6339 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:13 #6340 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:13 #6341 [Verbose] > │ # sm' │
00:03:13 #6342 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:13 #6343 [Verbose] >
00:03:13 #6344 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:13 #6345 [Verbose] > // // test
00:03:13 #6346 [Verbose] >
00:03:13 #6347 [Verbose] > open testing
00:03:17 #6348 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-4932-3245-313fe2186c66\main.spi
00:03:19 #6349 [Verbose] >
00:03:19 #6350 [Verbose] > ╭─[ 5.83s - stdout ]───────────────────────────────────────────────────────────╮
00:03:19 #6351 [Verbose] > │ () │
00:03:19 #6352 [Verbose] > │ │
00:03:19 #6353 [Verbose] > │ │
00:03:19 #6354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:19 #6355 [Verbose] >
00:03:19 #6356 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:19 #6357 [Verbose] > open rust_operators
00:03:19 #6358 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5194-9481-9f7e8e1cf4e4\main.spi
00:03:19 #6359 [Verbose] >
00:03:19 #6360 [Verbose] > ╭─[ 223.40ms - stdout ]────────────────────────────────────────────────────────╮
00:03:19 #6361 [Verbose] > │ () │
00:03:19 #6362 [Verbose] > │ │
00:03:19 #6363 [Verbose] > │ │
00:03:19 #6364 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:19 #6365 [Verbose] >
00:03:19 #6366 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:19 #6367 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:19 #6368 [Verbose] > │ ## types │
00:03:19 #6369 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:19 #6370 [Verbose] >
00:03:19 #6371 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:19 #6372 [Verbose] > inl types () =
00:03:19 #6373 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class
00:03:19 #6374 [Verbose] > end"
00:03:19 #6375 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"base64::DecodeError\")>]]
00:03:19 #6376 [Verbose] > type base64_DecodeError = class end"
00:03:19 #6377 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"borsh::io::Error\")>]] type
00:03:19 #6378 [Verbose] > borsh_io_Error = class end"
00:03:19 #6379 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"js_sys::JsString\")>]] type
00:03:19 #6380 [Verbose] > js_sys_JsString = class end"
00:03:19 #6381 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Error\")>]] type
00:03:19 #6382 [Verbose] > serde_json_Error = class end"
00:03:19 #6383 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Value\")>]] type
00:03:19 #6384 [Verbose] > serde_json_Value = class end"
00:03:19 #6385 [Verbose] > global "[[<Fable.Core.Erase;
00:03:19 #6386 [Verbose] > Fable.Core.Emit(\"serde_wasm_bindgen::Error\")>]] type serde_wasm_bindgen_Error
00:03:19 #6387 [Verbose] > = class end"
00:03:19 #6388 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::ffi::OsStr\")>]] type
00:03:19 #6389 [Verbose] > std_ffi_OsStr = class end"
00:03:19 #6390 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::ffi::OsString\")>]] type
00:03:19 #6391 [Verbose] > std_ffi_OsString = class end"
00:03:19 #6392 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::str::Utf8Error\")>]]
00:03:19 #6393 [Verbose] > type std_str_Utf8Error = class end"
00:03:19 #6394 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]
00:03:19 #6395 [Verbose] > type std_string_String = class end"
00:03:20 #6396 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5218-1850-1b34929e03aa\main.spi
00:03:20 #6397 [Verbose] >
00:03:20 #6398 [Verbose] > ╭─[ 234.13ms - stdout ]────────────────────────────────────────────────────────╮
00:03:20 #6399 [Verbose] > │ () │
00:03:20 #6400 [Verbose] > │ │
00:03:20 #6401 [Verbose] > │ │
00:03:20 #6402 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:20 #6403 [Verbose] >
00:03:20 #6404 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:20 #6405 [Verbose] > // // test
00:03:20 #6406 [Verbose] >
00:03:20 #6407 [Verbose] > inl types () =
00:03:20 #6408 [Verbose] > rust.types ()
00:03:20 #6409 [Verbose] > types ()
00:03:20 #6410 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5241-4129-41dba2fd9a41\main.spi
00:03:20 #6411 [Verbose] >
00:03:20 #6412 [Verbose] > ╭─[ 260.64ms - stdout ]────────────────────────────────────────────────────────╮
00:03:20 #6413 [Verbose] > │ () │
00:03:20 #6414 [Verbose] > │ │
00:03:20 #6415 [Verbose] > │ │
00:03:20 #6416 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:20 #6417 [Verbose] >
00:03:20 #6418 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:20 #6419 [Verbose] > nominal base64_decode_error = $"base64_DecodeError"
00:03:20 #6420 [Verbose] > nominal borsh_io_error = $"borsh_io_Error"
00:03:20 #6421 [Verbose] > nominal utf8_error = $"std_str_Utf8Error"
00:03:20 #6422 [Verbose] > nominal json_value = $"serde_json_Value"
00:03:20 #6423 [Verbose] > nominal json_error = $"serde_json_Error"
00:03:20 #6424 [Verbose] > nominal serde_wasm_bindgen_error = $"serde_wasm_bindgen_Error"
00:03:20 #6425 [Verbose] > nominal js_string = $"js_sys_JsString"
00:03:20 #6426 [Verbose] > nominal str = $"Str"
00:03:20 #6427 [Verbose] > nominal os_str = $"std_ffi_OsStr"
00:03:20 #6428 [Verbose] > nominal os_string = $"std_ffi_OsString"
00:03:20 #6429 [Verbose] > nominal std_string = $"std_string_String"
00:03:20 #6430 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5267-6781-6b9b5d3268c3\main.spi
00:03:20 #6431 [Verbose] >
00:03:20 #6432 [Verbose] > ╭─[ 229.64ms - stdout ]────────────────────────────────────────────────────────╮
00:03:20 #6433 [Verbose] > │ () │
00:03:20 #6434 [Verbose] > │ │
00:03:20 #6435 [Verbose] > │ │
00:03:20 #6436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:20 #6437 [Verbose] >
00:03:20 #6438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:20 #6439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:20 #6440 [Verbose] > │ ## contains │
00:03:20 #6441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:20 #6442 [Verbose] >
00:03:20 #6443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:20 #6444 [Verbose] > inl contains (value : string) (s : string) : bool =
00:03:20 #6445 [Verbose] > $"!s.Contains !value"
00:03:20 #6446 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5291-9129-91c4d8412b1b\main.spi
00:03:20 #6447 [Verbose] >
00:03:20 #6448 [Verbose] > ╭─[ 240.31ms - stdout ]────────────────────────────────────────────────────────╮
00:03:20 #6449 [Verbose] > │ () │
00:03:20 #6450 [Verbose] > │ │
00:03:20 #6451 [Verbose] > │ │
00:03:20 #6452 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:20 #6453 [Verbose] >
00:03:20 #6454 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:20 #6455 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:20 #6456 [Verbose] > │ ## ends_with │
00:03:20 #6457 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:20 #6458 [Verbose] >
00:03:20 #6459 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:20 #6460 [Verbose] > inl ends_with (value : string) (s : string) : bool =
00:03:20 #6461 [Verbose] > $"!s.EndsWith !value"
00:03:21 #6462 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5316-1615-1b99bf2db309\main.spi
00:03:21 #6463 [Verbose] >
00:03:21 #6464 [Verbose] > ╭─[ 267.99ms - stdout ]────────────────────────────────────────────────────────╮
00:03:21 #6465 [Verbose] > │ () │
00:03:21 #6466 [Verbose] > │ │
00:03:21 #6467 [Verbose] > │ │
00:03:21 #6468 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6469 [Verbose] >
00:03:21 #6470 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:21 #6471 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:21 #6472 [Verbose] > │ ## pad_left │
00:03:21 #6473 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6474 [Verbose] >
00:03:21 #6475 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:21 #6476 [Verbose] > inl pad_left (total_width : i32) (padding_char : char) (s : string) : string =
00:03:21 #6477 [Verbose] > $"!s.PadLeft (!total_width, !padding_char)"
00:03:21 #6478 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5343-4348-40e8152dd15f\main.spi
00:03:21 #6479 [Verbose] >
00:03:21 #6480 [Verbose] > ╭─[ 210.64ms - stdout ]────────────────────────────────────────────────────────╮
00:03:21 #6481 [Verbose] > │ () │
00:03:21 #6482 [Verbose] > │ │
00:03:21 #6483 [Verbose] > │ │
00:03:21 #6484 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6485 [Verbose] >
00:03:21 #6486 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:21 #6487 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:21 #6488 [Verbose] > │ ## pad_right │
00:03:21 #6489 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6490 [Verbose] >
00:03:21 #6491 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:21 #6492 [Verbose] > inl pad_right (pad : i32) (s : string) : string =
00:03:21 #6493 [Verbose] > $"!s.PadRight !pad"
00:03:21 #6494 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5365-6512-6d3e20d6ac72\main.spi
00:03:21 #6495 [Verbose] >
00:03:21 #6496 [Verbose] > ╭─[ 273.85ms - stdout ]────────────────────────────────────────────────────────╮
00:03:21 #6497 [Verbose] > │ () │
00:03:21 #6498 [Verbose] > │ │
00:03:21 #6499 [Verbose] > │ │
00:03:21 #6500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6501 [Verbose] >
00:03:21 #6502 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:21 #6503 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:21 #6504 [Verbose] > │ ## replace │
00:03:21 #6505 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6506 [Verbose] >
00:03:21 #6507 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:21 #6508 [Verbose] > inl replace (old_value : string) (new_value : string) (s : string) : string =
00:03:21 #6509 [Verbose] > $"!s.Replace (!old_value, !new_value)"
00:03:21 #6510 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5393-9312-958c0adb7360\main.spi
00:03:21 #6511 [Verbose] >
00:03:21 #6512 [Verbose] > ╭─[ 245.51ms - stdout ]────────────────────────────────────────────────────────╮
00:03:21 #6513 [Verbose] > │ () │
00:03:21 #6514 [Verbose] > │ │
00:03:21 #6515 [Verbose] > │ │
00:03:21 #6516 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6517 [Verbose] >
00:03:21 #6518 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:21 #6519 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:21 #6520 [Verbose] > │ ## starts_with │
00:03:21 #6521 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:21 #6522 [Verbose] >
00:03:21 #6523 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:21 #6524 [Verbose] > inl starts_with (value : string) (s : string) : bool =
00:03:21 #6525 [Verbose] > $"!s.StartsWith !value"
00:03:22 #6526 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5418-1838-173364fccbb5\main.spi
00:03:22 #6527 [Verbose] >
00:03:22 #6528 [Verbose] > ╭─[ 245.74ms - stdout ]────────────────────────────────────────────────────────╮
00:03:22 #6529 [Verbose] > │ () │
00:03:22 #6530 [Verbose] > │ │
00:03:22 #6531 [Verbose] > │ │
00:03:22 #6532 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6533 [Verbose] >
00:03:22 #6534 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:22 #6535 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:22 #6536 [Verbose] > │ ## substring │
00:03:22 #6537 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6538 [Verbose] >
00:03:22 #6539 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:22 #6540 [Verbose] > inl substring (start : i32) (len : i32) (str : string) : string =
00:03:22 #6541 [Verbose] > $"!str.Substring (!start, !len)"
00:03:22 #6542 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5443-4355-4a74215fcc14\main.spi
00:03:22 #6543 [Verbose] >
00:03:22 #6544 [Verbose] > ╭─[ 262.89ms - stdout ]────────────────────────────────────────────────────────╮
00:03:22 #6545 [Verbose] > │ () │
00:03:22 #6546 [Verbose] > │ │
00:03:22 #6547 [Verbose] > │ │
00:03:22 #6548 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6549 [Verbose] >
00:03:22 #6550 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:22 #6551 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:22 #6552 [Verbose] > │ ## to_lower │
00:03:22 #6553 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6554 [Verbose] >
00:03:22 #6555 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:22 #6556 [Verbose] > inl to_lower (input : string) : string =
00:03:22 #6557 [Verbose] > $"!input.ToLower ()"
00:03:22 #6558 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5470-7059-71313ea3d942\main.spi
00:03:22 #6559 [Verbose] >
00:03:22 #6560 [Verbose] > ╭─[ 239.21ms - stdout ]────────────────────────────────────────────────────────╮
00:03:22 #6561 [Verbose] > │ () │
00:03:22 #6562 [Verbose] > │ │
00:03:22 #6563 [Verbose] > │ │
00:03:22 #6564 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6565 [Verbose] >
00:03:22 #6566 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:22 #6567 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:22 #6568 [Verbose] > │ ## to_upper │
00:03:22 #6569 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6570 [Verbose] >
00:03:22 #6571 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:22 #6572 [Verbose] > inl to_upper (input : string) : string =
00:03:22 #6573 [Verbose] > $"!input.ToUpper ()"
00:03:22 #6574 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5495-9506-9c486defa1be\main.spi
00:03:22 #6575 [Verbose] >
00:03:22 #6576 [Verbose] > ╭─[ 230.36ms - stdout ]────────────────────────────────────────────────────────╮
00:03:22 #6577 [Verbose] > │ () │
00:03:22 #6578 [Verbose] > │ │
00:03:22 #6579 [Verbose] > │ │
00:03:22 #6580 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6581 [Verbose] >
00:03:22 #6582 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:22 #6583 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:22 #6584 [Verbose] > │ ## trim │
00:03:22 #6585 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:22 #6586 [Verbose] >
00:03:22 #6587 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:22 #6588 [Verbose] > inl trim (input : string) : string =
00:03:22 #6589 [Verbose] > $"!input.Trim ()"
00:03:23 #6590 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5518-1873-187968332d1c\main.spi
00:03:23 #6591 [Verbose] >
00:03:23 #6592 [Verbose] > ╭─[ 313.21ms - stdout ]────────────────────────────────────────────────────────╮
00:03:23 #6593 [Verbose] > │ () │
00:03:23 #6594 [Verbose] > │ │
00:03:23 #6595 [Verbose] > │ │
00:03:23 #6596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6597 [Verbose] >
00:03:23 #6598 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:23 #6599 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:23 #6600 [Verbose] > │ ## trim_end │
00:03:23 #6601 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6602 [Verbose] >
00:03:23 #6603 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:23 #6604 [Verbose] > inl trim_end (trim_chars : array_base char) (input : string) : string =
00:03:23 #6605 [Verbose] > $"!input.TrimEnd !trim_chars"
00:03:23 #6606 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5551-5108-57cf5e81ab79\main.spi
00:03:23 #6607 [Verbose] >
00:03:23 #6608 [Verbose] > ╭─[ 279.67ms - stdout ]────────────────────────────────────────────────────────╮
00:03:23 #6609 [Verbose] > │ () │
00:03:23 #6610 [Verbose] > │ │
00:03:23 #6611 [Verbose] > │ │
00:03:23 #6612 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6613 [Verbose] >
00:03:23 #6614 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:23 #6615 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:23 #6616 [Verbose] > │ ## trim_start │
00:03:23 #6617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6618 [Verbose] >
00:03:23 #6619 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:23 #6620 [Verbose] > inl trim_start (trim_chars : array_base char) (input : string) : string =
00:03:23 #6621 [Verbose] > $"!input.TrimStart !trim_chars"
00:03:23 #6622 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5579-7936-772fc70a7d72\main.spi
00:03:23 #6623 [Verbose] >
00:03:23 #6624 [Verbose] > ╭─[ 229.10ms - stdout ]────────────────────────────────────────────────────────╮
00:03:23 #6625 [Verbose] > │ () │
00:03:23 #6626 [Verbose] > │ │
00:03:23 #6627 [Verbose] > │ │
00:03:23 #6628 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6629 [Verbose] >
00:03:23 #6630 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:23 #6631 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:23 #6632 [Verbose] > │ ## slice │
00:03:23 #6633 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6634 [Verbose] >
00:03:23 #6635 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:23 #6636 [Verbose] > inl slice from to s : string =
00:03:23 #6637 [Verbose] > sm.slice s { from to }
00:03:23 #6638 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5602-0294-021cb5fbfef0\main.spi
00:03:23 #6639 [Verbose] >
00:03:23 #6640 [Verbose] > ╭─[ 229.16ms - stdout ]────────────────────────────────────────────────────────╮
00:03:23 #6641 [Verbose] > │ () │
00:03:23 #6642 [Verbose] > │ │
00:03:23 #6643 [Verbose] > │ │
00:03:23 #6644 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6645 [Verbose] >
00:03:23 #6646 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:23 #6647 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:23 #6648 [Verbose] > │ ## raw_string_literal │
00:03:23 #6649 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:23 #6650 [Verbose] >
00:03:23 #6651 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:23 #6652 [Verbose] > inl raw_string_literal (s : string) : rust.ref' str =
00:03:23 #6653 [Verbose] > !\($"\"r#\\\"\" + !s + \"\\\"#\"")
00:03:24 #6654 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5626-2652-2d6deb303fe2\main.spi
00:03:24 #6655 [Verbose] >
00:03:24 #6656 [Verbose] > ╭─[ 254.48ms - stdout ]────────────────────────────────────────────────────────╮
00:03:24 #6657 [Verbose] > │ () │
00:03:24 #6658 [Verbose] > │ │
00:03:24 #6659 [Verbose] > │ │
00:03:24 #6660 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #6661 [Verbose] >
00:03:24 #6662 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:24 #6663 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:24 #6664 [Verbose] > │ ## raw_string_literal_static │
00:03:24 #6665 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #6666 [Verbose] >
00:03:24 #6667 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:24 #6668 [Verbose] > inl raw_string_literal_static (s : string) : rust.static_ref' str =
00:03:24 #6669 [Verbose] > !\($"\"r#\\\"\" + !s + \"\\\"#\"")
00:03:24 #6670 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5652-5287-5f1dcb513a1f\main.spi
00:03:24 #6671 [Verbose] >
00:03:24 #6672 [Verbose] > ╭─[ 229.98ms - stdout ]────────────────────────────────────────────────────────╮
00:03:24 #6673 [Verbose] > │ () │
00:03:24 #6674 [Verbose] > │ │
00:03:24 #6675 [Verbose] > │ │
00:03:24 #6676 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #6677 [Verbose] >
00:03:24 #6678 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:24 #6679 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:24 #6680 [Verbose] > │ ## include_str │
00:03:24 #6681 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #6682 [Verbose] >
00:03:24 #6683 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:24 #6684 [Verbose] > inl include_str (path : string) : rust.ref' str =
00:03:24 #6685 [Verbose] > !\($'"include_str\!(\\\"" + !path + "\\\")"')
00:03:24 #6686 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5676-7625-7b6e6aa180a2\main.spi
00:03:24 #6687 [Verbose] >
00:03:24 #6688 [Verbose] > ╭─[ 255.66ms - stdout ]────────────────────────────────────────────────────────╮
00:03:24 #6689 [Verbose] > │ () │
00:03:24 #6690 [Verbose] > │ │
00:03:24 #6691 [Verbose] > │ │
00:03:24 #6692 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #6693 [Verbose] >
00:03:24 #6694 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:24 #6695 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:24 #6696 [Verbose] > │ ## as_str │
00:03:24 #6697 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:24 #6698 [Verbose] >
00:03:24 #6699 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:24 #6700 [Verbose] > inl as_str (s : string) : rust.ref' str =
00:03:24 #6701 [Verbose] > !\\(s, $'"fable_library_rust::String_::LrcStr::as_str(&$0)"')
00:03:24 #6702 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5702-0241-0f59a76050ac\main.spi
00:03:25 #6703 [Verbose] >
00:03:25 #6704 [Verbose] > ╭─[ 565.44ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #6705 [Verbose] > │ () │
00:03:25 #6706 [Verbose] > │ │
00:03:25 #6707 [Verbose] > │ │
00:03:25 #6708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6709 [Verbose] >
00:03:25 #6710 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #6711 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #6712 [Verbose] > │ ## as_os_ref │
00:03:25 #6713 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6714 [Verbose] >
00:03:25 #6715 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:25 #6716 [Verbose] > inl as_os_ref (s : os_string) : rust.ref' os_str =
00:03:25 #6717 [Verbose] > !\\(s, $'"$0.as_ref()"')
00:03:25 #6718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5759-5995-577a22353e95\main.spi
00:03:25 #6719 [Verbose] >
00:03:25 #6720 [Verbose] > ╭─[ 221.45ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #6721 [Verbose] > │ () │
00:03:25 #6722 [Verbose] > │ │
00:03:25 #6723 [Verbose] > │ │
00:03:25 #6724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6725 [Verbose] >
00:03:25 #6726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #6727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #6728 [Verbose] > │ ## to_os_string │
00:03:25 #6729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6730 [Verbose] >
00:03:25 #6731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:25 #6732 [Verbose] > inl to_os_string (s : rust.ref' os_str) : os_string =
00:03:25 #6733 [Verbose] > !\\(s, $'"$0.to_os_string()"')
00:03:25 #6734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5782-8256-8f3a2aed9d92\main.spi
00:03:25 #6735 [Verbose] >
00:03:25 #6736 [Verbose] > ╭─[ 216.97ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #6737 [Verbose] > │ () │
00:03:25 #6738 [Verbose] > │ │
00:03:25 #6739 [Verbose] > │ │
00:03:25 #6740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6741 [Verbose] >
00:03:25 #6742 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #6743 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #6744 [Verbose] > │ ## os_to_str │
00:03:25 #6745 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6746 [Verbose] >
00:03:25 #6747 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:25 #6748 [Verbose] > inl os_to_str (s : os_string) : optionm'.option' (rust.ref' str) =
00:03:25 #6749 [Verbose] > !\\(s, $'"$0.to_str()"')
00:03:25 #6750 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5804-0488-08177ee74197\main.spi
00:03:25 #6751 [Verbose] >
00:03:25 #6752 [Verbose] > ╭─[ 219.52ms - stdout ]────────────────────────────────────────────────────────╮
00:03:25 #6753 [Verbose] > │ () │
00:03:25 #6754 [Verbose] > │ │
00:03:25 #6755 [Verbose] > │ │
00:03:25 #6756 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6757 [Verbose] >
00:03:25 #6758 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:25 #6759 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:25 #6760 [Verbose] > │ ## from_std_string │
00:03:25 #6761 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:25 #6762 [Verbose] >
00:03:26 #6763 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:26 #6764 [Verbose] > inl from_std_string (str : std_string) : string =
00:03:26 #6765 [Verbose] > !\\(str, $'"fable_library_rust::String_::fromString($0)"')
00:03:26 #6766 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5827-2738-2122e3510a6b\main.spi
00:03:26 #6767 [Verbose] >
00:03:26 #6768 [Verbose] > ╭─[ 231.04ms - stdout ]────────────────────────────────────────────────────────╮
00:03:26 #6769 [Verbose] > │ () │
00:03:26 #6770 [Verbose] > │ │
00:03:26 #6771 [Verbose] > │ │
00:03:26 #6772 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6773 [Verbose] >
00:03:26 #6774 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:26 #6775 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:26 #6776 [Verbose] > │ ## ref_to_std_string │
00:03:26 #6777 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6778 [Verbose] >
00:03:26 #6779 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:26 #6780 [Verbose] > inl ref_to_std_string (str : rust.ref' str) : std_string =
00:03:26 #6781 [Verbose] > !\\(str, $'"String::from($0)"')
00:03:26 #6782 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5851-5134-5c544f941f0d\main.spi
00:03:26 #6783 [Verbose] >
00:03:26 #6784 [Verbose] > ╭─[ 223.84ms - stdout ]────────────────────────────────────────────────────────╮
00:03:26 #6785 [Verbose] > │ () │
00:03:26 #6786 [Verbose] > │ │
00:03:26 #6787 [Verbose] > │ │
00:03:26 #6788 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6789 [Verbose] >
00:03:26 #6790 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:26 #6791 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:26 #6792 [Verbose] > │ ## to_std_string │
00:03:26 #6793 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6794 [Verbose] >
00:03:26 #6795 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:26 #6796 [Verbose] > inl to_std_string (s : string) : std_string =
00:03:26 #6797 [Verbose] > inl s = join s
00:03:26 #6798 [Verbose] > s |> as_str |> ref_to_std_string
00:03:26 #6799 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5874-7412-7ca099ea85df\main.spi
00:03:26 #6800 [Verbose] >
00:03:26 #6801 [Verbose] > ╭─[ 249.04ms - stdout ]────────────────────────────────────────────────────────╮
00:03:26 #6802 [Verbose] > │ () │
00:03:26 #6803 [Verbose] > │ │
00:03:26 #6804 [Verbose] > │ │
00:03:26 #6805 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6806 [Verbose] >
00:03:26 #6807 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:26 #6808 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:26 #6809 [Verbose] > │ ## as_str_std │
00:03:26 #6810 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6811 [Verbose] >
00:03:26 #6812 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:26 #6813 [Verbose] > inl as_str_std (s : std_string) : rust.ref' str =
00:03:26 #6814 [Verbose] > inl s = join s
00:03:26 #6815 [Verbose] > !\($'"!s.as_str()"')
00:03:26 #6816 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5899-9975-953c9ec2fee8\main.spi
00:03:26 #6817 [Verbose] >
00:03:26 #6818 [Verbose] > ╭─[ 248.51ms - stdout ]────────────────────────────────────────────────────────╮
00:03:26 #6819 [Verbose] > │ () │
00:03:26 #6820 [Verbose] > │ │
00:03:26 #6821 [Verbose] > │ │
00:03:26 #6822 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6823 [Verbose] >
00:03:26 #6824 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:26 #6825 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:26 #6826 [Verbose] > │ ## into_boxed_str │
00:03:26 #6827 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:26 #6828 [Verbose] >
00:03:26 #6829 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:26 #6830 [Verbose] > inl into_boxed_str (s : std_string) : rust.box str =
00:03:26 #6831 [Verbose] > !\($'"!s.into_boxed_str()"')
00:03:27 #6832 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5925-2510-288f66f41433\main.spi
00:03:27 #6833 [Verbose] >
00:03:27 #6834 [Verbose] > ╭─[ 223.00ms - stdout ]────────────────────────────────────────────────────────╮
00:03:27 #6835 [Verbose] > │ () │
00:03:27 #6836 [Verbose] > │ │
00:03:27 #6837 [Verbose] > │ │
00:03:27 #6838 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6839 [Verbose] >
00:03:27 #6840 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:27 #6841 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:27 #6842 [Verbose] > │ ## format' │
00:03:27 #6843 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6844 [Verbose] >
00:03:27 #6845 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:27 #6846 [Verbose] > inl format' x : std_string =
00:03:27 #6847 [Verbose] > !\\(x, $'@@$"format\!(""{{}}"", $0)"')
00:03:27 #6848 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5947-4789-449e4a7d8c80\main.spi
00:03:27 #6849 [Verbose] >
00:03:27 #6850 [Verbose] > ╭─[ 244.95ms - stdout ]────────────────────────────────────────────────────────╮
00:03:27 #6851 [Verbose] > │ () │
00:03:27 #6852 [Verbose] > │ │
00:03:27 #6853 [Verbose] > │ │
00:03:27 #6854 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6855 [Verbose] >
00:03:27 #6856 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:27 #6857 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:27 #6858 [Verbose] > │ ## format_debug │
00:03:27 #6859 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6860 [Verbose] >
00:03:27 #6861 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:27 #6862 [Verbose] > inl format_debug x : string =
00:03:27 #6863 [Verbose] > $'$"%A{!x}"'
00:03:27 #6864 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5973-7320-7c3fc774558b\main.spi
00:03:27 #6865 [Verbose] >
00:03:27 #6866 [Verbose] > ╭─[ 242.43ms - stdout ]────────────────────────────────────────────────────────╮
00:03:27 #6867 [Verbose] > │ () │
00:03:27 #6868 [Verbose] > │ │
00:03:27 #6869 [Verbose] > │ │
00:03:27 #6870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6871 [Verbose] >
00:03:27 #6872 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:27 #6873 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:27 #6874 [Verbose] > │ ## format_debug' │
00:03:27 #6875 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6876 [Verbose] >
00:03:27 #6877 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:27 #6878 [Verbose] > inl format_debug' x : std_string =
00:03:27 #6879 [Verbose] > !\\(x, $'@@$"format\!(""{{:?}}"", $0)"')
00:03:27 #6880 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5998-9810-97a7e3d02c92\main.spi
00:03:27 #6881 [Verbose] >
00:03:27 #6882 [Verbose] > ╭─[ 230.17ms - stdout ]────────────────────────────────────────────────────────╮
00:03:27 #6883 [Verbose] > │ () │
00:03:27 #6884 [Verbose] > │ │
00:03:27 #6885 [Verbose] > │ │
00:03:27 #6886 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6887 [Verbose] >
00:03:27 #6888 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:27 #6889 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:27 #6890 [Verbose] > │ ## format_pretty' │
00:03:27 #6891 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:27 #6892 [Verbose] >
00:03:27 #6893 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:27 #6894 [Verbose] > inl format_pretty' x : std_string =
00:03:27 #6895 [Verbose] > !\\(x, $'@@$"format\!(""{{:#?}}"", $0)"')
00:03:28 #6896 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0021-2172-2f2d744bb864\main.spi
00:03:28 #6897 [Verbose] >
00:03:28 #6898 [Verbose] > ╭─[ 254.16ms - stdout ]────────────────────────────────────────────────────────╮
00:03:28 #6899 [Verbose] > │ () │
00:03:28 #6900 [Verbose] > │ │
00:03:28 #6901 [Verbose] > │ │
00:03:28 #6902 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:28 #6903 [Verbose] >
00:03:28 #6904 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:28 #6905 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:28 #6906 [Verbose] > │ ## format_exception │
00:03:28 #6907 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:28 #6908 [Verbose] >
00:03:28 #6909 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:28 #6910 [Verbose] > inl format_exception (ex : exn) : string =
00:03:28 #6911 [Verbose] > run_target function
00:03:28 #6912 [Verbose] > | Fsharp (Native) => fun () => $'$"{!ex.GetType ()}: {!ex.Message}"'
00:03:28 #6913 [Verbose] > | _ => fun () => ex |> format_debug
00:03:28 #6914 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0047-4779-4099173e501c\main.spi
00:03:28 #6915 [Verbose] >
00:03:28 #6916 [Verbose] > ╭─[ 230.96ms - stdout ]────────────────────────────────────────────────────────╮
00:03:28 #6917 [Verbose] > │ () │
00:03:28 #6918 [Verbose] > │ │
00:03:28 #6919 [Verbose] > │ │
00:03:28 #6920 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:28 #6921 [Verbose] >
00:03:28 #6922 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:28 #6923 [Verbose] > // // test
00:03:28 #6924 [Verbose] >
00:03:28 #6925 [Verbose] > fun () => failwith "test"
00:03:28 #6926 [Verbose] > |> _throws
00:03:28 #6927 [Verbose] > |> optionm.map sm'.format_exception
00:03:28 #6928 [Verbose] > |> _assert_eq (Some "System.Exception: test")
00:03:28 #6929 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0071-7136-7d1189dbf540\main.spi
00:03:30 #6930 [Verbose] >
00:03:30 #6931 [Verbose] > ╭─[ 2.22s - stdout ]───────────────────────────────────────────────────────────╮
00:03:30 #6932 [Verbose] > │ type [<Struct>] US0 = │
00:03:30 #6933 [Verbose] > │ | US0_0 of f0_0 : exn │
00:03:30 #6934 [Verbose] > │ | US0_1 │
00:03:30 #6935 [Verbose] > │ and [<Struct>] US1 = │
00:03:30 #6936 [Verbose] > │ | US1_0 of f0_0 : string │
00:03:30 #6937 [Verbose] > │ | US1_1 │
00:03:30 #6938 [Verbose] > │ let rec closure0 () () : unit = │
00:03:30 #6939 [Verbose] > │ failwith<unit> "test" │
00:03:30 #6940 [Verbose] > │ and closure1 () (v0 : exn) : US0 = │
00:03:30 #6941 [Verbose] > │ US0_0(v0) │
00:03:30 #6942 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:03:30 #6943 [Verbose] > │ v0 │
00:03:30 #6944 [Verbose] > │ and method0 () : unit = │
00:03:30 #6945 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:03:30 #6946 [Verbose] > │ let v1 : US0 = US0_1 │
00:03:30 #6947 [Verbose] > │ let v2 : (exn -> US0) = closure1() │
00:03:30 #6948 [Verbose] > │ let v3 : US0 = try v0 (); v1 with ex -> ex |> v2 │
00:03:30 #6949 [Verbose] > │ let v16 : US1 = │
00:03:30 #6950 [Verbose] > │ match v3 with │
00:03:30 #6951 [Verbose] > │ | US0_1 -> (* None *) │
00:03:30 #6952 [Verbose] > │ US1_1 │
00:03:30 #6953 [Verbose] > │ | US0_0(v4) -> (* Some *) │
00:03:30 #6954 [Verbose] > │ let v5 : string option = None │
00:03:30 #6955 [Verbose] > │ let mutable _v5 = v5 │
00:03:30 #6956 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:03:30 #6957 [Verbose] > │ let v6 : string = $"%A{v4}" │
00:03:30 #6958 [Verbose] > │ v6 │
00:03:30 #6959 [Verbose] > │ #endif │
00:03:30 #6960 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:30 #6961 [Verbose] > │ let v7 : string = $"%A{v4}" │
00:03:30 #6962 [Verbose] > │ v7 │
00:03:30 #6963 [Verbose] > │ #endif │
00:03:30 #6964 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:03:30 #6965 [Verbose] > │ let v8 : string = $"%A{v4}" │
00:03:30 #6966 [Verbose] > │ v8 │
00:03:30 #6967 [Verbose] > │ #endif │
00:03:30 #6968 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:30 #6969 [Verbose] > │ let v9 : string = $"{v4.GetType ()}: {v4.Message}" │
00:03:30 #6970 [Verbose] > │ v9 │
00:03:30 #6971 [Verbose] > │ #endif │
00:03:30 #6972 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:30 #6973 [Verbose] > │ let v10 : string = $"%A{v4}" │
00:03:30 #6974 [Verbose] > │ v10 │
00:03:30 #6975 [Verbose] > │ #endif │
00:03:30 #6976 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:30 #6977 [Verbose] > │ let v11 : string = $"%A{v4}" │
00:03:30 #6978 [Verbose] > │ v11 │
00:03:30 #6979 [Verbose] > │ #endif │
00:03:30 #6980 [Verbose] > │ |> fun x -> _v5 <- Some x │
00:03:30 #6981 [Verbose] > │ let v12 : string = _v5 |> Option.get │
00:03:30 #6982 [Verbose] > │ US1_0(v12) │
00:03:30 #6983 [Verbose] > │ let v17 : string = $"%A{v16}" │
00:03:30 #6984 [Verbose] > │ System.Console.WriteLine v17 │
00:03:30 #6985 [Verbose] > │ let v22 : bool = │
00:03:30 #6986 [Verbose] > │ match v16 with │
00:03:30 #6987 [Verbose] > │ | US1_0(v20) -> (* Some *) │
00:03:30 #6988 [Verbose] > │ let v21 : bool = v20 = "System.Exception: test" │
00:03:30 #6989 [Verbose] > │ v21 │
00:03:30 #6990 [Verbose] > │ | _ -> │
00:03:30 #6991 [Verbose] > │ false │
00:03:30 #6992 [Verbose] > │ let v24 : bool = │
00:03:30 #6993 [Verbose] > │ if v22 then │
00:03:30 #6994 [Verbose] > │ true │
00:03:30 #6995 [Verbose] > │ else │
00:03:30 #6996 [Verbose] > │ method1(v22) │
00:03:30 #6997 [Verbose] > │ let v25 : string = "System.Exception: test" │
00:03:30 #6998 [Verbose] > │ let v26 : US1 = US1_0(v25) │
00:03:30 #6999 [Verbose] > │ let v27 : string = $"__expect / actual: %A{v16} / expected: %A{v26}" │
00:03:30 #7000 [Verbose] > │ let v28 : bool = v24 = false │
00:03:30 #7001 [Verbose] > │ if v28 then │
00:03:30 #7002 [Verbose] > │ failwith<unit> v27 │
00:03:30 #7003 [Verbose] > │ method0() │
00:03:30 #7004 [Verbose] > │ │
00:03:30 #7005 [Verbose] > │ US1_0 "System.Exception: test" │
00:03:30 #7006 [Verbose] > │ │
00:03:30 #7007 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:30 #7008 [Verbose] >
00:03:30 #7009 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:30 #7010 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:30 #7011 [Verbose] > │ ## obj_to_string │
00:03:30 #7012 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:30 #7013 [Verbose] >
00:03:30 #7014 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:30 #7015 [Verbose] > inl obj_to_string x : string =
00:03:30 #7016 [Verbose] > x |> $'_.ToString()'
00:03:30 #7017 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0298-9827-9877b2e4a023\main.spi
00:03:30 #7018 [Verbose] >
00:03:30 #7019 [Verbose] > ╭─[ 272.42ms - stdout ]────────────────────────────────────────────────────────╮
00:03:30 #7020 [Verbose] > │ () │
00:03:30 #7021 [Verbose] > │ │
00:03:30 #7022 [Verbose] > │ │
00:03:30 #7023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:30 #7024 [Verbose] >
00:03:30 #7025 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:30 #7026 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:30 #7027 [Verbose] > │ ## to_string any │
00:03:30 #7028 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:30 #7029 [Verbose] >
00:03:30 #7030 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:30 #7031 [Verbose] > instance to_string any =
00:03:30 #7032 [Verbose] > obj_to_string
00:03:31 #7033 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0325-2598-2305ae5385f1\main.spi
00:03:31 #7034 [Verbose] >
00:03:31 #7035 [Verbose] > ╭─[ 498.04ms - stdout ]────────────────────────────────────────────────────────╮
00:03:31 #7036 [Verbose] > │ () │
00:03:31 #7037 [Verbose] > │ │
00:03:31 #7038 [Verbose] > │ │
00:03:31 #7039 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:31 #7040 [Verbose] >
00:03:31 #7041 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:31 #7042 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:31 #7043 [Verbose] > │ ## to_string result t u │
00:03:31 #7044 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:31 #7045 [Verbose] >
00:03:31 #7046 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:31 #7047 [Verbose] > instance to_string result t u = fun x =>
00:03:31 #7048 [Verbose] > real
00:03:31 #7049 [Verbose] > open rust
00:03:31 #7050 [Verbose] > typecase (t * u) with
00:03:31 #7051 [Verbose] > | string * string =>
00:03:31 #7052 [Verbose] > match x with
00:03:31 #7053 [Verbose] > | Ok x => x
00:03:31 #7054 [Verbose] > | Error x => $'"Error: " + !x + ""' : string
00:03:31 #7055 [Verbose] > | std_string * std_string =>
00:03:31 #7056 [Verbose] > match x with
00:03:31 #7057 [Verbose] > | Ok x => from_std_string x
00:03:31 #7058 [Verbose] > | Error x => $'"Error: " + string !x + ""' : string
00:03:31 #7059 [Verbose] > | _ => obj_to_string `u x
00:03:31 #7060 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0376-7653-7625ca70b5eb\main.spi
00:03:31 #7061 [Verbose] >
00:03:31 #7062 [Verbose] > ╭─[ 242.26ms - stdout ]────────────────────────────────────────────────────────╮
00:03:31 #7063 [Verbose] > │ () │
00:03:31 #7064 [Verbose] > │ │
00:03:31 #7065 [Verbose] > │ │
00:03:31 #7066 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:31 #7067 [Verbose] >
00:03:31 #7068 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:31 #7069 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:31 #7070 [Verbose] > │ ## serialize │
00:03:31 #7071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:31 #7072 [Verbose] >
00:03:31 #7073 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:31 #7074 [Verbose] > inl serialize forall t. (x : t) : resultm.result' std_string json_error =
00:03:31 #7075 [Verbose] > !\($'"serde_json::to_string(&!x)"')
00:03:31 #7076 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0401-0143-0dab1fa42e7f\main.spi
00:03:31 #7077 [Verbose] >
00:03:31 #7078 [Verbose] > ╭─[ 226.98ms - stdout ]────────────────────────────────────────────────────────╮
00:03:31 #7079 [Verbose] > │ () │
00:03:31 #7080 [Verbose] > │ │
00:03:31 #7081 [Verbose] > │ │
00:03:31 #7082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:31 #7083 [Verbose] >
00:03:31 #7084 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:31 #7085 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:31 #7086 [Verbose] > │ ## deserialize │
00:03:31 #7087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:31 #7088 [Verbose] >
00:03:31 #7089 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:31 #7090 [Verbose] > inl deserialize forall t. (json : string) : resultm.result' t std_string =
00:03:31 #7091 [Verbose] > inl json = join json
00:03:31 #7092 [Verbose] > inl json = json |> as_str
00:03:31 #7093 [Verbose] > !\($'"serde_json::from_str(&!json)"')
00:03:31 #7094 [Verbose] > |> resultm.map_error' fun (x : json_error) => x |> format'
00:03:32 #7095 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0424-2481-246ff87fc60c\main.spi
00:03:32 #7096 [Verbose] >
00:03:32 #7097 [Verbose] > ╭─[ 273.47ms - stdout ]────────────────────────────────────────────────────────╮
00:03:32 #7098 [Verbose] > │ () │
00:03:32 #7099 [Verbose] > │ │
00:03:32 #7100 [Verbose] > │ │
00:03:32 #7101 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7102 [Verbose] >
00:03:32 #7103 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:32 #7104 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:32 #7105 [Verbose] > │ ## borsh_deserialize │
00:03:32 #7106 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7107 [Verbose] >
00:03:32 #7108 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:32 #7109 [Verbose] > inl borsh_deserialize forall t. (data : array_base u8) : resultm.result' t
00:03:32 #7110 [Verbose] > std_string =
00:03:32 #7111 [Verbose] > inl data = data |> am'.as_slice
00:03:32 #7112 [Verbose] > !\($'"let mut !data = !data"')
00:03:32 #7113 [Verbose] > inl result = !\($'"borsh::BorshDeserialize::deserialize(&mut !data)"')
00:03:32 #7114 [Verbose] > result
00:03:32 #7115 [Verbose] > |> resultm.map_error' fun (x : borsh_io_error) => x |> format'
00:03:32 #7116 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0453-5312-55e82e4db7e9\main.spi
00:03:32 #7117 [Verbose] >
00:03:32 #7118 [Verbose] > ╭─[ 277.69ms - stdout ]────────────────────────────────────────────────────────╮
00:03:32 #7119 [Verbose] > │ () │
00:03:32 #7120 [Verbose] > │ │
00:03:32 #7121 [Verbose] > │ │
00:03:32 #7122 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7123 [Verbose] >
00:03:32 #7124 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:32 #7125 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:32 #7126 [Verbose] > │ ## deserialize_vec │
00:03:32 #7127 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7128 [Verbose] >
00:03:32 #7129 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:32 #7130 [Verbose] > inl deserialize_vec (value : json_value) : resultm.result' (am'.vec u8)
00:03:32 #7131 [Verbose] > std_string =
00:03:32 #7132 [Verbose] > inl value = join value
00:03:32 #7133 [Verbose] > !\($'"serde_json::from_value(!value)"')
00:03:32 #7134 [Verbose] > |> resultm.map_error' fun (x : json_error) => x |> format'
00:03:32 #7135 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0481-8152-827bc73acd6a\main.spi
00:03:32 #7136 [Verbose] >
00:03:32 #7137 [Verbose] > ╭─[ 222.10ms - stdout ]────────────────────────────────────────────────────────╮
00:03:32 #7138 [Verbose] > │ () │
00:03:32 #7139 [Verbose] > │ │
00:03:32 #7140 [Verbose] > │ │
00:03:32 #7141 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7142 [Verbose] >
00:03:32 #7143 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:32 #7144 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:32 #7145 [Verbose] > │ ## encode_uri_component │
00:03:32 #7146 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7147 [Verbose] >
00:03:32 #7148 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:32 #7149 [Verbose] > inl encode_uri_component (s : std_string) : js_string =
00:03:32 #7150 [Verbose] > !\($'"js_sys::encode_uri_component(&!s)"')
00:03:32 #7151 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0504-0406-0a4cb534cafb\main.spi
00:03:32 #7152 [Verbose] >
00:03:32 #7153 [Verbose] > ╭─[ 218.29ms - stdout ]────────────────────────────────────────────────────────╮
00:03:32 #7154 [Verbose] > │ () │
00:03:32 #7155 [Verbose] > │ │
00:03:32 #7156 [Verbose] > │ │
00:03:32 #7157 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7158 [Verbose] >
00:03:32 #7159 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:32 #7160 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:32 #7161 [Verbose] > │ ## strip_prefix │
00:03:32 #7162 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:32 #7163 [Verbose] >
00:03:32 #7164 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:32 #7165 [Verbose] > inl strip_prefix (prefix : char) (s : std_string) : optionm'.option' (rust.ref'
00:03:32 #7166 [Verbose] > str) =
00:03:32 #7167 [Verbose] > inl s = join s
00:03:32 #7168 [Verbose] > !\($'"!s.strip_prefix(!prefix)"')
00:03:33 #7169 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0526-2664-223a3b46af6e\main.spi
00:03:33 #7170 [Verbose] >
00:03:33 #7171 [Verbose] > ╭─[ 271.48ms - stdout ]────────────────────────────────────────────────────────╮
00:03:33 #7172 [Verbose] > │ () │
00:03:33 #7173 [Verbose] > │ │
00:03:33 #7174 [Verbose] > │ │
00:03:33 #7175 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:33 #7176 [Verbose] >
00:03:33 #7177 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:33 #7178 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:33 #7179 [Verbose] > │ ## base64_decode │
00:03:33 #7180 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:33 #7181 [Verbose] >
00:03:33 #7182 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:33 #7183 [Verbose] > inl base64_decode (s : std_string) : result std_string std_string =
00:03:33 #7184 [Verbose] > fun () =>
00:03:33 #7185 [Verbose] > inl s = join s
00:03:33 #7186 [Verbose] > inl bytes : resultm.result' (am'.vec u8) base64_decode_error =
00:03:33 #7187 [Verbose] >
00:03:33 #7188 [Verbose] > !\($'"base64::Engine::decode(&base64::engine::general_purpose::STANDARD, !s)"')
00:03:33 #7189 [Verbose] > inl bytes =
00:03:33 #7190 [Verbose] > bytes
00:03:33 #7191 [Verbose] > |> resultm.map_error' format'
00:03:33 #7192 [Verbose] > |> resultm.try'
00:03:33 #7193 [Verbose] > inl result : resultm.result' std_string utf8_error =
00:03:33 #7194 [Verbose] > !\($'"std::str::from_utf8(&!bytes).map(String::from)"')
00:03:33 #7195 [Verbose] > result
00:03:33 #7196 [Verbose] > |> resultm.map_error' format'
00:03:33 #7197 [Verbose] > |> fun x =>
00:03:33 #7198 [Verbose] > join x ()
00:03:33 #7199 [Verbose] > |> resultm.unbox
00:03:33 #7200 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0554-5430-55a8b1a8ab16\main.spi
00:03:33 #7201 [Verbose] >
00:03:33 #7202 [Verbose] > ╭─[ 227.18ms - stdout ]────────────────────────────────────────────────────────╮
00:03:33 #7203 [Verbose] > │ () │
00:03:33 #7204 [Verbose] > │ │
00:03:33 #7205 [Verbose] > │ │
00:03:33 #7206 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:33 #7207 [Verbose] >
00:03:33 #7208 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:33 #7209 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:33 #7210 [Verbose] > │ ## concat_array_trailing │
00:03:33 #7211 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:33 #7212 [Verbose] >
00:03:33 #7213 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:33 #7214 [Verbose] > inl concat_array_trailing (separator : string) (input : a i32 string) =
00:03:33 #7215 [Verbose] > ("", input)
00:03:33 #7216 [Verbose] > ||> am.fold fun acc (x : string) =>
00:03:33 #7217 [Verbose] > $'!acc + !x + !separator + ""'
00:03:33 #7218 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0577-7763-71a54384597c\main.spi
00:03:33 #7219 [Verbose] >
00:03:33 #7220 [Verbose] > ╭─[ 231.33ms - stdout ]────────────────────────────────────────────────────────╮
00:03:33 #7221 [Verbose] > │ () │
00:03:33 #7222 [Verbose] > │ │
00:03:33 #7223 [Verbose] > │ │
00:03:33 #7224 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:33 #7225 [Verbose] >
00:03:33 #7226 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:33 #7227 [Verbose] > // // test
00:03:33 #7228 [Verbose] > // // rust=
00:03:33 #7229 [Verbose] >
00:03:33 #7230 [Verbose] > ;[[
00:03:33 #7231 [Verbose] > "1"
00:03:33 #7232 [Verbose] > "2"
00:03:33 #7233 [Verbose] > "3"
00:03:33 #7234 [Verbose] > ]]
00:03:33 #7235 [Verbose] > |> fun x =>
00:03:33 #7236 [Verbose] > inl code = (a x : _ i32 _) |> concat_array_trailing "\n"
00:03:33 #7237 [Verbose] > code
00:03:33 #7238 [Verbose] > |> _assert_eq "1\n2\n3\n"
00:03:33 #7239 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0601-0114-0f50bd0283ff\main.spi
00:03:41 #7240 [Verbose] >
00:03:41 #7241 [Verbose] > ╭─[ 7.74s - return value ]─────────────────────────────────────────────────────╮
00:03:41 #7242 [Verbose] > │ .rs output: │
00:03:41 #7243 [Verbose] > │ "1 │
00:03:41 #7244 [Verbose] > │ 2 │
00:03:41 #7245 [Verbose] > │ 3 │
00:03:41 #7246 [Verbose] > │ " │
00:03:41 #7247 [Verbose] > │ │
00:03:41 #7248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:41 #7249 [Verbose] >
00:03:41 #7250 [Verbose] > ╭─[ 7.75s - stdout ]───────────────────────────────────────────────────────────╮
00:03:41 #7251 [Verbose] > │ │
00:03:41 #7252 [Verbose] > │ .fsx: │
00:03:41 #7253 [Verbose] > │ type Mut0 = {mutable l0 : int32; mutable l1 : string} │
00:03:41 #7254 [Verbose] > │ let rec method1 (v0 : int32, v1 : Mut0) : bool = │
00:03:41 #7255 [Verbose] > │ let v2 : int32 = v1.l0 │
00:03:41 #7256 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:41 #7257 [Verbose] > │ v3 │
00:03:41 #7258 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:03:41 #7259 [Verbose] > │ v0 │
00:03:41 #7260 [Verbose] > │ and method0 () : unit = │
00:03:41 #7261 [Verbose] > │ let v0 : string = "1" │
00:03:41 #7262 [Verbose] > │ let v1 : string = "2" │
00:03:41 #7263 [Verbose] > │ let v2 : string = "3" │
00:03:41 #7264 [Verbose] > │ let v3 : (string []) = [|v0; v1; v2|] │
00:03:41 #7265 [Verbose] > │ let v4 : int32 = v3.Length │
00:03:41 #7266 [Verbose] > │ let v5 : string = "" │
00:03:41 #7267 [Verbose] > │ let v6 : Mut0 = {l0 = 0; l1 = v5} : Mut0 │
00:03:41 #7268 [Verbose] > │ while method1(v4, v6) do │
00:03:41 #7269 [Verbose] > │ let v8 : int32 = v6.l0 │
00:03:41 #7270 [Verbose] > │ let v9 : string = v6.l1 │
00:03:41 #7271 [Verbose] > │ let v10 : string = v3.[int v8] │
00:03:41 #7272 [Verbose] > │ let v11 : string = "\n" │
00:03:41 #7273 [Verbose] > │ let v12 : string = v9 + v10 + v11 + "" │
00:03:41 #7274 [Verbose] > │ let v13 : int32 = v8 + 1 │
00:03:41 #7275 [Verbose] > │ v6.l0 <- v13 │
00:03:41 #7276 [Verbose] > │ v6.l1 <- v12 │
00:03:41 #7277 [Verbose] > │ () │
00:03:41 #7278 [Verbose] > │ let v14 : string = v6.l1 │
00:03:41 #7279 [Verbose] > │ let v15 : string = $"%A{v14}" │
00:03:41 #7280 [Verbose] > │ System.Console.WriteLine v15 │
00:03:41 #7281 [Verbose] > │ let v17 : bool = v14 = "1\n2\n3\n" │
00:03:41 #7282 [Verbose] > │ let v19 : bool = │
00:03:41 #7283 [Verbose] > │ if v17 then │
00:03:41 #7284 [Verbose] > │ true │
00:03:41 #7285 [Verbose] > │ else │
00:03:41 #7286 [Verbose] > │ method2(v17) │
00:03:41 #7287 [Verbose] > │ let v20 : string = "1\n2\n3\n" │
00:03:41 #7288 [Verbose] > │ let v21 : string = $"__expect / actual: %A{v14} / expected: %A{v20}" │
00:03:41 #7289 [Verbose] > │ let v22 : bool = v19 = false │
00:03:41 #7290 [Verbose] > │ if v22 then │
00:03:41 #7291 [Verbose] > │ failwith<unit> v21 │
00:03:41 #7292 [Verbose] > │ method0() │
00:03:41 #7293 [Verbose] > │ │
00:03:41 #7294 [Verbose] > │ │
00:03:41 #7295 [Verbose] > │ .rs: │
00:03:41 #7296 [Verbose] > │ #![allow(dead_code,)] │
00:03:41 #7297 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:03:41 #7298 [Verbose] > │ #![allow(non_snake_case,)] │
00:03:41 #7299 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:03:41 #7300 [Verbose] > │ #![allow(unreachable_code,)] │
00:03:41 #7301 [Verbose] > │ #![allow(unused_attributes,)] │
00:03:41 #7302 [Verbose] > │ #![allow(unused_imports,)] │
00:03:41 #7303 [Verbose] > │ #![allow(unused_macros,)] │
00:03:41 #7304 [Verbose] > │ #![allow(unused_parens,)] │
00:03:41 #7305 [Verbose] > │ #![allow(unused_variables,)] │
00:03:41 #7306 [Verbose] > │ mod module_ccfa04bf { │
00:03:41 #7307 [Verbose] > │ pub mod Spiral_eval { │
00:03:41 #7308 [Verbose] > │ use super::*; │
00:03:41 #7309 [Verbose] > │ use fable_library_rust::Native_::LrcPtr; │
00:03:41 #7310 [Verbose] > │ use fable_library_rust::Native_::MutCell; │
00:03:41 #7311 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:03:41 #7312 [Verbose] > │ use fable_library_rust::NativeArray_::Array; │
00:03:41 #7313 [Verbose] > │ use fable_library_rust::NativeArray_::count; │
00:03:41 #7314 [Verbose] > │ use fable_library_rust::NativeArray_::new_array; │
00:03:41 #7315 [Verbose] > │ use fable_library_rust::String_::append; │
00:03:41 #7316 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:03:41 #7317 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:03:41 #7318 [Verbose] > │ use fable_library_rust::String_::string; │
00:03:41 #7319 [Verbose] > │ #[derive(Clone, Debug, Default, PartialEq, PartialOrd, Hash, Eq,)] │
00:03:41 #7320 [Verbose] > │ pub struct Mut0 { │
00:03:41 #7321 [Verbose] > │ pub l0: MutCell<i32>, │
00:03:41 #7322 [Verbose] > │ pub l1: MutCell<string>, │
00:03:41 #7323 [Verbose] > │ } │
00:03:41 #7324 [Verbose] > │ impl core::fmt::Display for Spiral_eval::Mut0 { │
00:03:41 #7325 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:03:41 #7326 [Verbose] > │ { │
00:03:41 #7327 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:03:41 #7328 [Verbose] > │ } │
00:03:41 #7329 [Verbose] > │ } │
00:03:41 #7330 [Verbose] > │ pub fn method1(v0: i32, v1: LrcPtr<Spiral_eval::Mut0>) -> bool { │
00:03:41 #7331 [Verbose] > │ v1.l0.get().clone() < v0 │
00:03:41 #7332 [Verbose] > │ } │
00:03:41 #7333 [Verbose] > │ pub fn method2(v0: bool) -> bool { v0 } │
00:03:41 #7334 [Verbose] > │ pub fn method0() { │
00:03:41 #7335 [Verbose] > │ let v3: Array<string> = │
00:03:41 #7336 [Verbose] > │ new_array(&[string("1"), string("2"), string("3")]); │
00:03:41 #7337 [Verbose] > │ let v4: i32 = count(v3.clone()); │
00:03:41 #7338 [Verbose] > │ let v6: LrcPtr<Spiral_eval::Mut0> = │
00:03:41 #7339 [Verbose] > │ LrcPtr::new(Spiral_eval::Mut0{l0: MutCell::new(0_i32), │
00:03:41 #7340 [Verbose] > │ l1: │
00:03:41 #7341 [Verbose] > │ MutCell::new(string("")),}); │
00:03:41 #7342 [Verbose] > │ while Spiral_eval::method1(v4, v6.clone()) { │
00:03:41 #7343 [Verbose] > │ let v8: i32 = v6.l0.get().clone(); │
00:03:41 #7344 [Verbose] > │ let v12: string = │
00:03:41 #7345 [Verbose] > │ append(append(append(v6.l1.get().clone(), v3[ │
00:03:41 #7346 [Verbose] > │ v8].clone()), │
00:03:41 #7347 [Verbose] > │ string("\n")), string("")); │
00:03:41 #7348 [Verbose] > │ let v13: i32 = v8 + 1_i32; │
00:03:41 #7349 [Verbose] > │ v6.l0.set(v13); │
00:03:41 #7350 [Verbose] > │ v6.l1.set(v12); │
00:03:41 #7351 [Verbose] > │ () │
00:03:41 #7352 [Verbose] > │ } │
00:03:41 #7353 [Verbose] > │ { │
00:03:41 #7354 [Verbose] > │ let v14: string = v6.l1.get().clone(); │
00:03:41 #7355 [Verbose] > │ let v15: string = sprintf!("{:?}", v14.clone()); │
00:03:41 #7356 [Verbose] > │ printfn!("{0}", v15); │
00:03:41 #7357 [Verbose] > │ { │
00:03:41 #7358 [Verbose] > │ let v17: bool = v14.clone() == string("1\n2\n3\n"); │
00:03:41 #7359 [Verbose] > │ if (if v17 { true } else { Spiral_eval::method2(v17) }) │
00:03:41 #7360 [Verbose] > │ == │
00:03:41 #7361 [Verbose] > │ false { │
00:03:41 #7362 [Verbose] > │ panic!("{}", │
00:03:41 #7363 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:03:41 #7364 [Verbose] > │ {:?}", v14, string("1\n2\n3\n"))); │
00:03:41 #7365 [Verbose] > │ } │
00:03:41 #7366 [Verbose] > │ } │
00:03:41 #7367 [Verbose] > │ } │
00:03:41 #7368 [Verbose] > │ } │
00:03:41 #7369 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:03:41 #7370 [Verbose] > │ } │
00:03:41 #7371 [Verbose] > │ } │
00:03:41 #7372 [Verbose] > │ pub use module_ccfa04bf::*; │
00:03:41 #7373 [Verbose] > │ │
00:03:41 #7374 [Verbose] > │ │
00:03:41 #7375 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:41 #7376 [Verbose] >
00:03:41 #7377 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:41 #7378 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:41 #7379 [Verbose] > │ ## concat_list_trailing │
00:03:41 #7380 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:41 #7381 [Verbose] >
00:03:41 #7382 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:41 #7383 [Verbose] > inl concat_list_trailing separator input =
00:03:41 #7384 [Verbose] > ("", input)
00:03:41 #7385 [Verbose] > ||> listm.fold fun acc (x : string) =>
00:03:41 #7386 [Verbose] > $'!acc + !x + !separator + ""'
00:03:41 #7387 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1383-8333-8bb33d3bdb1f\main.spi
00:03:41 #7388 [Verbose] >
00:03:41 #7389 [Verbose] > ╭─[ 220.85ms - stdout ]────────────────────────────────────────────────────────╮
00:03:41 #7390 [Verbose] > │ () │
00:03:41 #7391 [Verbose] > │ │
00:03:41 #7392 [Verbose] > │ │
00:03:41 #7393 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:41 #7394 [Verbose] >
00:03:41 #7395 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:41 #7396 [Verbose] > // // test
00:03:41 #7397 [Verbose] > // // rust=
00:03:41 #7398 [Verbose] >
00:03:41 #7399 [Verbose] > [[
00:03:41 #7400 [Verbose] > "1"
00:03:41 #7401 [Verbose] > "2"
00:03:41 #7402 [Verbose] > "3"
00:03:41 #7403 [Verbose] > ]]
00:03:41 #7404 [Verbose] > |> fun x =>
00:03:41 #7405 [Verbose] > inl code = (x : _) |> concat_list_trailing "\n"
00:03:41 #7406 [Verbose] > code
00:03:41 #7407 [Verbose] > |> _assert_eq "1\n2\n3\n"
00:03:41 #7408 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1405-0550-06366d299937\main.spi
00:03:47 #7409 [Verbose] >
00:03:47 #7410 [Verbose] > ╭─[ 5.62s - return value ]─────────────────────────────────────────────────────╮
00:03:47 #7411 [Verbose] > │ .rs output: │
00:03:47 #7412 [Verbose] > │ "1 │
00:03:47 #7413 [Verbose] > │ 2 │
00:03:47 #7414 [Verbose] > │ 3 │
00:03:47 #7415 [Verbose] > │ " │
00:03:47 #7416 [Verbose] > │ │
00:03:47 #7417 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:47 #7418 [Verbose] >
00:03:47 #7419 [Verbose] > ╭─[ 5.62s - stdout ]───────────────────────────────────────────────────────────╮
00:03:47 #7420 [Verbose] > │ │
00:03:47 #7421 [Verbose] > │ .fsx: │
00:03:47 #7422 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:03:47 #7423 [Verbose] > │ v0 │
00:03:47 #7424 [Verbose] > │ and method0 () : unit = │
00:03:47 #7425 [Verbose] > │ let v0 : string = "" │
00:03:47 #7426 [Verbose] > │ let v1 : string = "1" │
00:03:47 #7427 [Verbose] > │ let v2 : string = "\n" │
00:03:47 #7428 [Verbose] > │ let v3 : string = v0 + v1 + v2 + "" │
00:03:47 #7429 [Verbose] > │ let v4 : string = "2" │
00:03:47 #7430 [Verbose] > │ let v5 : string = v3 + v4 + v2 + "" │
00:03:47 #7431 [Verbose] > │ let v6 : string = "3" │
00:03:47 #7432 [Verbose] > │ let v7 : string = v5 + v6 + v2 + "" │
00:03:47 #7433 [Verbose] > │ let v8 : string = $"%A{v7}" │
00:03:47 #7434 [Verbose] > │ System.Console.WriteLine v8 │
00:03:47 #7435 [Verbose] > │ let v10 : bool = v7 = "1\n2\n3\n" │
00:03:47 #7436 [Verbose] > │ let v12 : bool = │
00:03:47 #7437 [Verbose] > │ if v10 then │
00:03:47 #7438 [Verbose] > │ true │
00:03:47 #7439 [Verbose] > │ else │
00:03:47 #7440 [Verbose] > │ method1(v10) │
00:03:47 #7441 [Verbose] > │ let v13 : string = "1\n2\n3\n" │
00:03:47 #7442 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v7} / expected: %A{v13}" │
00:03:47 #7443 [Verbose] > │ let v15 : bool = v12 = false │
00:03:47 #7444 [Verbose] > │ if v15 then │
00:03:47 #7445 [Verbose] > │ failwith<unit> v14 │
00:03:47 #7446 [Verbose] > │ method0() │
00:03:47 #7447 [Verbose] > │ │
00:03:47 #7448 [Verbose] > │ │
00:03:47 #7449 [Verbose] > │ .rs: │
00:03:47 #7450 [Verbose] > │ #![allow(dead_code,)] │
00:03:47 #7451 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:03:47 #7452 [Verbose] > │ #![allow(non_snake_case,)] │
00:03:47 #7453 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:03:47 #7454 [Verbose] > │ #![allow(unreachable_code,)] │
00:03:47 #7455 [Verbose] > │ #![allow(unused_attributes,)] │
00:03:47 #7456 [Verbose] > │ #![allow(unused_imports,)] │
00:03:47 #7457 [Verbose] > │ #![allow(unused_macros,)] │
00:03:47 #7458 [Verbose] > │ #![allow(unused_parens,)] │
00:03:47 #7459 [Verbose] > │ #![allow(unused_variables,)] │
00:03:47 #7460 [Verbose] > │ mod module_ccfa04bf { │
00:03:47 #7461 [Verbose] > │ pub mod Spiral_eval { │
00:03:47 #7462 [Verbose] > │ use super::*; │
00:03:47 #7463 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:03:47 #7464 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:03:47 #7465 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:03:47 #7466 [Verbose] > │ use fable_library_rust::String_::string; │
00:03:47 #7467 [Verbose] > │ pub fn method1(v0: bool) -> bool { v0 } │
00:03:47 #7468 [Verbose] > │ pub fn method0() { │
00:03:47 #7469 [Verbose] > │ let v7: string = string("1\n2\n3\n"); │
00:03:47 #7470 [Verbose] > │ let v8: string = sprintf!("{:?}", v7.clone()); │
00:03:47 #7471 [Verbose] > │ printfn!("{0}", v8); │
00:03:47 #7472 [Verbose] > │ { │
00:03:47 #7473 [Verbose] > │ let v10: bool = v7.clone() == string("1\n2\n3\n"); │
00:03:47 #7474 [Verbose] > │ if (if v10 { true } else { Spiral_eval::method1(v10) }) == │
00:03:47 #7475 [Verbose] > │ false { │
00:03:47 #7476 [Verbose] > │ panic!("{}", │
00:03:47 #7477 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:03:47 #7478 [Verbose] > │ {:?}", v7, string("1\n2\n3\n"))); │
00:03:47 #7479 [Verbose] > │ } │
00:03:47 #7480 [Verbose] > │ } │
00:03:47 #7481 [Verbose] > │ } │
00:03:47 #7482 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:03:47 #7483 [Verbose] > │ } │
00:03:47 #7484 [Verbose] > │ } │
00:03:47 #7485 [Verbose] > │ pub use module_ccfa04bf::*; │
00:03:47 #7486 [Verbose] > │ │
00:03:47 #7487 [Verbose] > │ │
00:03:47 #7488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:47 #7489 [Verbose] >
00:03:47 #7490 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:47 #7491 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:47 #7492 [Verbose] > │ ## concat_list_heap_trailing │
00:03:47 #7493 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:47 #7494 [Verbose] >
00:03:47 #7495 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:47 #7496 [Verbose] > inl concat_list_heap_trailing separator input =
00:03:47 #7497 [Verbose] > inl separator = join separator
00:03:47 #7498 [Verbose] > inl separator = separator |> as_str
00:03:47 #7499 [Verbose] > ("", input)
00:03:47 #7500 [Verbose] > ||> listm.fold fun acc (x : string) =>
00:03:47 #7501 [Verbose] > inl acc = acc |> to_std_string
00:03:47 #7502 [Verbose] > inl x = x |> as_str
00:03:47 #7503 [Verbose] > $'$"{!acc}{!x}{!separator}"'
00:03:47 #7504 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1971-7119-766f59180809\main.spi
00:03:47 #7505 [Verbose] >
00:03:47 #7506 [Verbose] > ╭─[ 214.47ms - stdout ]────────────────────────────────────────────────────────╮
00:03:47 #7507 [Verbose] > │ () │
00:03:47 #7508 [Verbose] > │ │
00:03:47 #7509 [Verbose] > │ │
00:03:47 #7510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:47 #7511 [Verbose] >
00:03:47 #7512 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:47 #7513 [Verbose] > // // test
00:03:47 #7514 [Verbose] > // // rust=
00:03:47 #7515 [Verbose] >
00:03:47 #7516 [Verbose] > types ()
00:03:47 #7517 [Verbose] >
00:03:47 #7518 [Verbose] > [[
00:03:47 #7519 [Verbose] > "1"
00:03:47 #7520 [Verbose] > "2"
00:03:47 #7521 [Verbose] > "3"
00:03:47 #7522 [Verbose] > ]]
00:03:47 #7523 [Verbose] > |> fun x =>
00:03:47 #7524 [Verbose] > inl code = (x : _) |> concat_list_heap_trailing "\n"
00:03:47 #7525 [Verbose] > code
00:03:47 #7526 [Verbose] > |> _assert_eq "1\n2\n3\n"
00:03:47 #7527 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1993-9308-9ffca566eaae\main.spi
00:03:54 #7528 [Verbose] >
00:03:54 #7529 [Verbose] > ╭─[ 6.67s - return value ]─────────────────────────────────────────────────────╮
00:03:54 #7530 [Verbose] > │ .rs output: │
00:03:54 #7531 [Verbose] > │ "1 │
00:03:54 #7532 [Verbose] > │ 2 │
00:03:54 #7533 [Verbose] > │ 3 │
00:03:54 #7534 [Verbose] > │ " │
00:03:54 #7535 [Verbose] > │ │
00:03:54 #7536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #7537 [Verbose] >
00:03:54 #7538 [Verbose] > ╭─[ 6.68s - stdout ]───────────────────────────────────────────────────────────╮
00:03:54 #7539 [Verbose] > │ │
00:03:54 #7540 [Verbose] > │ .fsx: │
00:03:54 #7541 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class │
00:03:54 #7542 [Verbose] > │ end │
00:03:54 #7543 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = │
00:03:54 #7544 [Verbose] > │ class end │
00:03:54 #7545 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end │
00:03:54 #7546 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end │
00:03:54 #7547 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end │
00:03:54 #7548 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end │
00:03:54 #7549 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = │
00:03:54 #7550 [Verbose] > │ class end │
00:03:54 #7551 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:03:54 #7552 [Verbose] > │ class end │
00:03:54 #7553 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end │
00:03:54 #7554 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end │
00:03:54 #7555 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:03:54 #7556 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> = │
00:03:54 #7557 [Verbose] > │ class end │
00:03:54 #7558 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> = │
00:03:54 #7559 [Verbose] > │ class end │
00:03:54 #7560 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any = │
00:03:54 #7561 [Verbose] > │ class end │
00:03:54 #7562 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type │
00:03:54 #7563 [Verbose] > │ std_cell_RefCell<'T> = class end │
00:03:54 #7564 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type │
00:03:54 #7565 [Verbose] > │ std_pin_Pin<'T> = class end │
00:03:54 #7566 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T> │
00:03:54 #7567 [Verbose] > │ = class end │
00:03:54 #7568 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type │
00:03:54 #7569 [Verbose] > │ std_rc_Weak<'T> = class end │
00:03:54 #7570 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type │
00:03:54 #7571 [Verbose] > │ std_sync_Arc<'T> = class end │
00:03:54 #7572 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:03:54 #7573 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type │
00:03:54 #7574 [Verbose] > │ base64_DecodeError = class end │
00:03:54 #7575 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type │
00:03:54 #7576 [Verbose] > │ borsh_io_Error = class end │
00:03:54 #7577 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type │
00:03:54 #7578 [Verbose] > │ js_sys_JsString = class end │
00:03:54 #7579 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type │
00:03:54 #7580 [Verbose] > │ serde_json_Error = class end │
00:03:54 #7581 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type │
00:03:54 #7582 [Verbose] > │ serde_json_Value = class end │
00:03:54 #7583 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type │
00:03:54 #7584 [Verbose] > │ serde_wasm_bindgen_Error = class end │
00:03:54 #7585 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr │
00:03:54 #7586 [Verbose] > │ = class end │
00:03:54 #7587 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type │
00:03:54 #7588 [Verbose] > │ std_ffi_OsString = class end │
00:03:54 #7589 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type │
00:03:54 #7590 [Verbose] > │ std_str_Utf8Error = class end │
00:03:54 #7591 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:03:54 #7592 [Verbose] > │ std_string_String = class end │
00:03:54 #7593 [Verbose] > │ let rec method1 () : string = │
00:03:54 #7594 [Verbose] > │ let v0 : string = "\n" │
00:03:54 #7595 [Verbose] > │ v0 │
00:03:54 #7596 [Verbose] > │ and method2 () : string = │
00:03:54 #7597 [Verbose] > │ let v0 : string = "" │
00:03:54 #7598 [Verbose] > │ v0 │
00:03:54 #7599 [Verbose] > │ and method3 (v0 : string) : string = │
00:03:54 #7600 [Verbose] > │ v0 │
00:03:54 #7601 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:03:54 #7602 [Verbose] > │ v0 │
00:03:54 #7603 [Verbose] > │ and method0 () : unit = │
00:03:54 #7604 [Verbose] > │ let v0 : string = method1() │
00:03:54 #7605 [Verbose] > │ let v1 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:03:54 #7606 [Verbose] > │ let v2 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:03:54 #7607 [Verbose] > │ let v3 : string = method2() │
00:03:54 #7608 [Verbose] > │ let v4 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:03:54 #7609 [Verbose] > │ let v5 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v3 v4 │
00:03:54 #7610 [Verbose] > │ let v6 : string = "String::from($0)" │
00:03:54 #7611 [Verbose] > │ let v7 : std_string_String = Fable.Core.RustInterop.emitRustExpr v5 v6 │
00:03:54 #7612 [Verbose] > │ let v8 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:03:54 #7613 [Verbose] > │ let v9 : string = "1" │
00:03:54 #7614 [Verbose] > │ let v10 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v9 v8 │
00:03:54 #7615 [Verbose] > │ let v11 : string = $"{v7}{v10}{v2}" │
00:03:54 #7616 [Verbose] > │ let v12 : string = method3(v11) │
00:03:54 #7617 [Verbose] > │ let v13 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:03:54 #7618 [Verbose] > │ let v14 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v12 v13 │
00:03:54 #7619 [Verbose] > │ let v15 : string = "String::from($0)" │
00:03:54 #7620 [Verbose] > │ let v16 : std_string_String = Fable.Core.RustInterop.emitRustExpr v14 │
00:03:54 #7621 [Verbose] > │ v15 │
00:03:54 #7622 [Verbose] > │ let v17 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:03:54 #7623 [Verbose] > │ let v18 : string = "2" │
00:03:54 #7624 [Verbose] > │ let v19 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v18 v17 │
00:03:54 #7625 [Verbose] > │ let v20 : string = $"{v16}{v19}{v2}" │
00:03:54 #7626 [Verbose] > │ let v21 : string = method3(v20) │
00:03:54 #7627 [Verbose] > │ let v22 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:03:54 #7628 [Verbose] > │ let v23 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v21 v22 │
00:03:54 #7629 [Verbose] > │ let v24 : string = "String::from($0)" │
00:03:54 #7630 [Verbose] > │ let v25 : std_string_String = Fable.Core.RustInterop.emitRustExpr v23 │
00:03:54 #7631 [Verbose] > │ v24 │
00:03:54 #7632 [Verbose] > │ let v26 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:03:54 #7633 [Verbose] > │ let v27 : string = "3" │
00:03:54 #7634 [Verbose] > │ let v28 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v27 v26 │
00:03:54 #7635 [Verbose] > │ let v29 : string = $"{v25}{v28}{v2}" │
00:03:54 #7636 [Verbose] > │ let v30 : string = $"%A{v29}" │
00:03:54 #7637 [Verbose] > │ System.Console.WriteLine v30 │
00:03:54 #7638 [Verbose] > │ let v32 : bool = v29 = "1\n2\n3\n" │
00:03:54 #7639 [Verbose] > │ let v34 : bool = │
00:03:54 #7640 [Verbose] > │ if v32 then │
00:03:54 #7641 [Verbose] > │ true │
00:03:54 #7642 [Verbose] > │ else │
00:03:54 #7643 [Verbose] > │ method4(v32) │
00:03:54 #7644 [Verbose] > │ let v35 : string = "1\n2\n3\n" │
00:03:54 #7645 [Verbose] > │ let v36 : string = $"__expect / actual: %A{v29} / expected: %A{v35}" │
00:03:54 #7646 [Verbose] > │ let v37 : bool = v34 = false │
00:03:54 #7647 [Verbose] > │ if v37 then │
00:03:54 #7648 [Verbose] > │ failwith<unit> v36 │
00:03:54 #7649 [Verbose] > │ method0() │
00:03:54 #7650 [Verbose] > │ │
00:03:54 #7651 [Verbose] > │ │
00:03:54 #7652 [Verbose] > │ .rs: │
00:03:54 #7653 [Verbose] > │ #![allow(dead_code,)] │
00:03:54 #7654 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:03:54 #7655 [Verbose] > │ #![allow(non_snake_case,)] │
00:03:54 #7656 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:03:54 #7657 [Verbose] > │ #![allow(unreachable_code,)] │
00:03:54 #7658 [Verbose] > │ #![allow(unused_attributes,)] │
00:03:54 #7659 [Verbose] > │ #![allow(unused_imports,)] │
00:03:54 #7660 [Verbose] > │ #![allow(unused_macros,)] │
00:03:54 #7661 [Verbose] > │ #![allow(unused_parens,)] │
00:03:54 #7662 [Verbose] > │ #![allow(unused_variables,)] │
00:03:54 #7663 [Verbose] > │ mod module_ccfa04bf { │
00:03:54 #7664 [Verbose] > │ pub mod Spiral_eval { │
00:03:54 #7665 [Verbose] > │ use super::*; │
00:03:54 #7666 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:03:54 #7667 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:03:54 #7668 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:03:54 #7669 [Verbose] > │ use fable_library_rust::String_::string; │
00:03:54 #7670 [Verbose] > │ pub fn method1() -> string { string("\n") } │
00:03:54 #7671 [Verbose] > │ pub fn method2() -> string { string("") } │
00:03:54 #7672 [Verbose] > │ pub fn method3(v0: string) -> string { v0 } │
00:03:54 #7673 [Verbose] > │ pub fn method4(v0: bool) -> bool { v0 } │
00:03:54 #7674 [Verbose] > │ pub fn method0() { │
00:03:54 #7675 [Verbose] > │ let v0: string = Spiral_eval::method1(); │
00:03:54 #7676 [Verbose] > │ let v2: &str = fable_library_rust::String_::LrcStr::as_str(&v0); │
00:03:54 #7677 [Verbose] > │ let v3: string = Spiral_eval::method2(); │
00:03:54 #7678 [Verbose] > │ let v5: &str = fable_library_rust::String_::LrcStr::as_str(&v3); │
00:03:54 #7679 [Verbose] > │ let v12: string = │
00:03:54 #7680 [Verbose] > │ Spiral_eval::method3(sprintf!("{}{}{}", String::from(v5), │
00:03:54 #7681 [Verbose] > │ │
00:03:54 #7682 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&string("1")), │
00:03:54 #7683 [Verbose] > │ v2.clone())); │
00:03:54 #7684 [Verbose] > │ let v14: &str = │
00:03:54 #7685 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v12); │
00:03:54 #7686 [Verbose] > │ let v21: string = │
00:03:54 #7687 [Verbose] > │ Spiral_eval::method3(sprintf!("{}{}{}", String::from(v14), │
00:03:54 #7688 [Verbose] > │ │
00:03:54 #7689 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&string("2")), │
00:03:54 #7690 [Verbose] > │ v2.clone())); │
00:03:54 #7691 [Verbose] > │ let v23: &str = │
00:03:54 #7692 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v21); │
00:03:54 #7693 [Verbose] > │ let v29: string = │
00:03:54 #7694 [Verbose] > │ sprintf!("{}{}{}", String::from(v23), │
00:03:54 #7695 [Verbose] > │ │
00:03:54 #7696 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&string("3")), │
00:03:54 #7697 [Verbose] > │ v2); │
00:03:54 #7698 [Verbose] > │ let v30: string = sprintf!("{:?}", v29.clone()); │
00:03:54 #7699 [Verbose] > │ printfn!("{0}", v30); │
00:03:54 #7700 [Verbose] > │ { │
00:03:54 #7701 [Verbose] > │ let v32: bool = v29.clone() == string("1\n2\n3\n"); │
00:03:54 #7702 [Verbose] > │ if (if v32 { true } else { Spiral_eval::method4(v32) }) == │
00:03:54 #7703 [Verbose] > │ false { │
00:03:54 #7704 [Verbose] > │ panic!("{}", │
00:03:54 #7705 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:03:54 #7706 [Verbose] > │ {:?}", v29, string("1\n2\n3\n"))); │
00:03:54 #7707 [Verbose] > │ } │
00:03:54 #7708 [Verbose] > │ } │
00:03:54 #7709 [Verbose] > │ } │
00:03:54 #7710 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:03:54 #7711 [Verbose] > │ } │
00:03:54 #7712 [Verbose] > │ } │
00:03:54 #7713 [Verbose] > │ pub use module_ccfa04bf::*; │
00:03:54 #7714 [Verbose] > │ │
00:03:54 #7715 [Verbose] > │ │
00:03:54 #7716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #7717 [Verbose] >
00:03:54 #7718 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:54 #7719 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:54 #7720 [Verbose] > │ ## concat │
00:03:54 #7721 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #7722 [Verbose] >
00:03:54 #7723 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:54 #7724 [Verbose] > inl concat (a : string) (b : seq.seq' _) : string =
00:03:54 #7725 [Verbose] > $"!b |> String.concat !a"
00:03:54 #7726 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2671-7132-7d8118116654\main.spi
00:03:54 #7727 [Verbose] >
00:03:54 #7728 [Verbose] > ╭─[ 264.41ms - stdout ]────────────────────────────────────────────────────────╮
00:03:54 #7729 [Verbose] > │ () │
00:03:54 #7730 [Verbose] > │ │
00:03:54 #7731 [Verbose] > │ │
00:03:54 #7732 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #7733 [Verbose] >
00:03:54 #7734 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:54 #7735 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:54 #7736 [Verbose] > │ ## ellipsis │
00:03:54 #7737 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #7738 [Verbose] >
00:03:54 #7739 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:54 #7740 [Verbose] > inl ellipsis (max : i32) (s : string) =
00:03:54 #7741 [Verbose] > if sm.length s <= max
00:03:54 #7742 [Verbose] > then s
00:03:54 #7743 [Verbose] > else s |> slice 0 (max - 1) |> fun x => $'!x + "..."'
00:03:54 #7744 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2697-9796-97bdbbd09788\main.spi
00:03:54 #7745 [Verbose] >
00:03:54 #7746 [Verbose] > ╭─[ 193.68ms - stdout ]────────────────────────────────────────────────────────╮
00:03:54 #7747 [Verbose] > │ () │
00:03:54 #7748 [Verbose] > │ │
00:03:54 #7749 [Verbose] > │ │
00:03:54 #7750 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:54 #7751 [Verbose] >
00:03:54 #7752 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:54 #7753 [Verbose] > // // test
00:03:54 #7754 [Verbose] >
00:03:54 #7755 [Verbose] > "12345"
00:03:54 #7756 [Verbose] > |> ellipsis 2
00:03:54 #7757 [Verbose] > |> _assert_eq "12..."
00:03:54 #7758 [Verbose] >
00:03:54 #7759 [Verbose] > "12345"
00:03:54 #7760 [Verbose] > |> ellipsis 4
00:03:54 #7761 [Verbose] > |> _assert_eq "1234..."
00:03:55 #7762 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2717-1743-1605b122d068\main.spi
00:03:55 #7763 [Verbose] >
00:03:55 #7764 [Verbose] > ╭─[ 309.22ms - stdout ]────────────────────────────────────────────────────────╮
00:03:55 #7765 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:03:55 #7766 [Verbose] > │ v0 │
00:03:55 #7767 [Verbose] > │ and method0 () : unit = │
00:03:55 #7768 [Verbose] > │ let v0 : string = "12" │
00:03:55 #7769 [Verbose] > │ let v1 : string = v0 + "..." │
00:03:55 #7770 [Verbose] > │ let v2 : string = $"%A{v1}" │
00:03:55 #7771 [Verbose] > │ System.Console.WriteLine v2 │
00:03:55 #7772 [Verbose] > │ let v4 : bool = v1 = "12..." │
00:03:55 #7773 [Verbose] > │ let v6 : bool = │
00:03:55 #7774 [Verbose] > │ if v4 then │
00:03:55 #7775 [Verbose] > │ true │
00:03:55 #7776 [Verbose] > │ else │
00:03:55 #7777 [Verbose] > │ method1(v4) │
00:03:55 #7778 [Verbose] > │ let v7 : string = "12..." │
00:03:55 #7779 [Verbose] > │ let v8 : string = $"__expect / actual: %A{v1} / expected: %A{v7}" │
00:03:55 #7780 [Verbose] > │ let v9 : bool = v6 = false │
00:03:55 #7781 [Verbose] > │ if v9 then │
00:03:55 #7782 [Verbose] > │ failwith<unit> v8 │
00:03:55 #7783 [Verbose] > │ let v10 : string = "1234" │
00:03:55 #7784 [Verbose] > │ let v11 : string = v10 + "..." │
00:03:55 #7785 [Verbose] > │ let v12 : string = $"%A{v11}" │
00:03:55 #7786 [Verbose] > │ System.Console.WriteLine v12 │
00:03:55 #7787 [Verbose] > │ let v14 : bool = v11 = "1234..." │
00:03:55 #7788 [Verbose] > │ let v16 : bool = │
00:03:55 #7789 [Verbose] > │ if v14 then │
00:03:55 #7790 [Verbose] > │ true │
00:03:55 #7791 [Verbose] > │ else │
00:03:55 #7792 [Verbose] > │ method1(v14) │
00:03:55 #7793 [Verbose] > │ let v17 : string = "1234..." │
00:03:55 #7794 [Verbose] > │ let v18 : string = $"__expect / actual: %A{v11} / expected: %A{v17}" │
00:03:55 #7795 [Verbose] > │ let v19 : bool = v16 = false │
00:03:55 #7796 [Verbose] > │ if v19 then │
00:03:55 #7797 [Verbose] > │ failwith<unit> v18 │
00:03:55 #7798 [Verbose] > │ method0() │
00:03:55 #7799 [Verbose] > │ │
00:03:55 #7800 [Verbose] > │ "12..." │
00:03:55 #7801 [Verbose] > │ "1234..." │
00:03:55 #7802 [Verbose] > │ │
00:03:55 #7803 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #7804 [Verbose] >
00:03:55 #7805 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:55 #7806 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:55 #7807 [Verbose] > │ ## ellipsis_end │
00:03:55 #7808 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #7809 [Verbose] >
00:03:55 #7810 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:55 #7811 [Verbose] > inl ellipsis_end (max : i64) (s : string) =
00:03:55 #7812 [Verbose] > inl len = sm.length s
00:03:55 #7813 [Verbose] > if len <= max
00:03:55 #7814 [Verbose] > then s
00:03:55 #7815 [Verbose] > else
00:03:55 #7816 [Verbose] > inl half = f64 max / 2
00:03:55 #7817 [Verbose] > inl start_half = half |> math.ceil |> i64
00:03:55 #7818 [Verbose] > inl end_half = half |> math.floor |> i64
00:03:55 #7819 [Verbose] > inl start = s |> slice 0 (start_half - 1)
00:03:55 #7820 [Verbose] > inl end = s |> slice (len - end_half) (len - 1)
00:03:55 #7821 [Verbose] > (a ;[[start; "..."; end]] : _ i32 _)
00:03:55 #7822 [Verbose] > |> seq.of_array
00:03:55 #7823 [Verbose] > |> concat ""
00:03:55 #7824 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2750-5052-534f510bda49\main.spi
00:03:55 #7825 [Verbose] >
00:03:55 #7826 [Verbose] > ╭─[ 234.65ms - stdout ]────────────────────────────────────────────────────────╮
00:03:55 #7827 [Verbose] > │ () │
00:03:55 #7828 [Verbose] > │ │
00:03:55 #7829 [Verbose] > │ │
00:03:55 #7830 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #7831 [Verbose] >
00:03:55 #7832 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:55 #7833 [Verbose] > // // test
00:03:55 #7834 [Verbose] >
00:03:55 #7835 [Verbose] > "12345"
00:03:55 #7836 [Verbose] > |> ellipsis_end 2
00:03:55 #7837 [Verbose] > |> _assert_eq "1...5"
00:03:55 #7838 [Verbose] >
00:03:55 #7839 [Verbose] > "12345"
00:03:55 #7840 [Verbose] > |> ellipsis_end 3
00:03:55 #7841 [Verbose] > |> _assert_eq "12...5"
00:03:55 #7842 [Verbose] >
00:03:55 #7843 [Verbose] > "1234567"
00:03:55 #7844 [Verbose] > |> ellipsis_end 4
00:03:55 #7845 [Verbose] > |> _assert_eq "12...67"
00:03:55 #7846 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2773-7396-78e805c001ac\main.spi
00:03:55 #7847 [Verbose] >
00:03:55 #7848 [Verbose] > ╭─[ 377.95ms - stdout ]────────────────────────────────────────────────────────╮
00:03:55 #7849 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:03:55 #7850 [Verbose] > │ v0 │
00:03:55 #7851 [Verbose] > │ and method0 () : unit = │
00:03:55 #7852 [Verbose] > │ let v0 : float = float 2L │
00:03:55 #7853 [Verbose] > │ let v1 : float = v0 / 2.0 │
00:03:55 #7854 [Verbose] > │ let v2 : (float -> float) = ceil │
00:03:55 #7855 [Verbose] > │ let v3 : float = v2 v1 │
00:03:55 #7856 [Verbose] > │ let v4 : int64 = int64 v3 │
00:03:55 #7857 [Verbose] > │ let v5 : (float -> float) = floor │
00:03:55 #7858 [Verbose] > │ let v6 : float = v5 v1 │
00:03:55 #7859 [Verbose] > │ let v7 : int64 = int64 v6 │
00:03:55 #7860 [Verbose] > │ let v8 : int64 = v4 - 1L │
00:03:55 #7861 [Verbose] > │ let v9 : string = "12345".[int 0L..int v8] │
00:03:55 #7862 [Verbose] > │ let v10 : int64 = 5L - v7 │
00:03:55 #7863 [Verbose] > │ let v11 : string = "12345".[int v10..int 4L] │
00:03:55 #7864 [Verbose] > │ let v12 : string = "..." │
00:03:55 #7865 [Verbose] > │ let v13 : (string []) = [|v9; v12; v11|] │
00:03:55 #7866 [Verbose] > │ let v14 : ((string []) -> string seq) = Seq.ofArray │
00:03:55 #7867 [Verbose] > │ let v15 : string seq = v14 v13 │
00:03:55 #7868 [Verbose] > │ let v16 : string = "" │
00:03:55 #7869 [Verbose] > │ let v17 : string = v15 |> String.concat v16 │
00:03:55 #7870 [Verbose] > │ let v18 : string = $"%A{v17}" │
00:03:55 #7871 [Verbose] > │ System.Console.WriteLine v18 │
00:03:55 #7872 [Verbose] > │ let v20 : bool = v17 = "1...5" │
00:03:55 #7873 [Verbose] > │ let v22 : bool = │
00:03:55 #7874 [Verbose] > │ if v20 then │
00:03:55 #7875 [Verbose] > │ true │
00:03:55 #7876 [Verbose] > │ else │
00:03:55 #7877 [Verbose] > │ method1(v20) │
00:03:55 #7878 [Verbose] > │ let v23 : string = "1...5" │
00:03:55 #7879 [Verbose] > │ let v24 : string = $"__expect / actual: %A{v17} / expected: %A{v23}" │
00:03:55 #7880 [Verbose] > │ let v25 : bool = v22 = false │
00:03:55 #7881 [Verbose] > │ if v25 then │
00:03:55 #7882 [Verbose] > │ failwith<unit> v24 │
00:03:55 #7883 [Verbose] > │ let v26 : float = float 3L │
00:03:55 #7884 [Verbose] > │ let v27 : float = v26 / 2.0 │
00:03:55 #7885 [Verbose] > │ let v28 : (float -> float) = ceil │
00:03:55 #7886 [Verbose] > │ let v29 : float = v28 v27 │
00:03:55 #7887 [Verbose] > │ let v30 : int64 = int64 v29 │
00:03:55 #7888 [Verbose] > │ let v31 : (float -> float) = floor │
00:03:55 #7889 [Verbose] > │ let v32 : float = v31 v27 │
00:03:55 #7890 [Verbose] > │ let v33 : int64 = int64 v32 │
00:03:55 #7891 [Verbose] > │ let v34 : int64 = v30 - 1L │
00:03:55 #7892 [Verbose] > │ let v35 : string = "12345".[int 0L..int v34] │
00:03:55 #7893 [Verbose] > │ let v36 : int64 = 5L - v33 │
00:03:55 #7894 [Verbose] > │ let v37 : string = "12345".[int v36..int 4L] │
00:03:55 #7895 [Verbose] > │ let v38 : (string []) = [|v35; v12; v37|] │
00:03:55 #7896 [Verbose] > │ let v39 : ((string []) -> string seq) = Seq.ofArray │
00:03:55 #7897 [Verbose] > │ let v40 : string seq = v39 v38 │
00:03:55 #7898 [Verbose] > │ let v41 : string = v40 |> String.concat v16 │
00:03:55 #7899 [Verbose] > │ let v42 : string = $"%A{v41}" │
00:03:55 #7900 [Verbose] > │ System.Console.WriteLine v42 │
00:03:55 #7901 [Verbose] > │ let v44 : bool = v41 = "12...5" │
00:03:55 #7902 [Verbose] > │ let v46 : bool = │
00:03:55 #7903 [Verbose] > │ if v44 then │
00:03:55 #7904 [Verbose] > │ true │
00:03:55 #7905 [Verbose] > │ else │
00:03:55 #7906 [Verbose] > │ method1(v44) │
00:03:55 #7907 [Verbose] > │ let v47 : string = "12...5" │
00:03:55 #7908 [Verbose] > │ let v48 : string = $"__expect / actual: %A{v41} / expected: %A{v47}" │
00:03:55 #7909 [Verbose] > │ let v49 : bool = v46 = false │
00:03:55 #7910 [Verbose] > │ if v49 then │
00:03:55 #7911 [Verbose] > │ failwith<unit> v48 │
00:03:55 #7912 [Verbose] > │ let v50 : float = float 4L │
00:03:55 #7913 [Verbose] > │ let v51 : float = v50 / 2.0 │
00:03:55 #7914 [Verbose] > │ let v52 : (float -> float) = ceil │
00:03:55 #7915 [Verbose] > │ let v53 : float = v52 v51 │
00:03:55 #7916 [Verbose] > │ let v54 : int64 = int64 v53 │
00:03:55 #7917 [Verbose] > │ let v55 : (float -> float) = floor │
00:03:55 #7918 [Verbose] > │ let v56 : float = v55 v51 │
00:03:55 #7919 [Verbose] > │ let v57 : int64 = int64 v56 │
00:03:55 #7920 [Verbose] > │ let v58 : int64 = v54 - 1L │
00:03:55 #7921 [Verbose] > │ let v59 : string = "1234567".[int 0L..int v58] │
00:03:55 #7922 [Verbose] > │ let v60 : int64 = 7L - v57 │
00:03:55 #7923 [Verbose] > │ let v61 : string = "1234567".[int v60..int 6L] │
00:03:55 #7924 [Verbose] > │ let v62 : (string []) = [|v59; v12; v61|] │
00:03:55 #7925 [Verbose] > │ let v63 : ((string []) -> string seq) = Seq.ofArray │
00:03:55 #7926 [Verbose] > │ let v64 : string seq = v63 v62 │
00:03:55 #7927 [Verbose] > │ let v65 : string = v64 |> String.concat v16 │
00:03:55 #7928 [Verbose] > │ let v66 : string = $"%A{v65}" │
00:03:55 #7929 [Verbose] > │ System.Console.WriteLine v66 │
00:03:55 #7930 [Verbose] > │ let v68 : bool = v65 = "12...67" │
00:03:55 #7931 [Verbose] > │ let v70 : bool = │
00:03:55 #7932 [Verbose] > │ if v68 then │
00:03:55 #7933 [Verbose] > │ true │
00:03:55 #7934 [Verbose] > │ else │
00:03:55 #7935 [Verbose] > │ method1(v68) │
00:03:55 #7936 [Verbose] > │ let v71 : string = "12...67" │
00:03:55 #7937 [Verbose] > │ let v72 : string = $"__expect / actual: %A{v65} / expected: %A{v71}" │
00:03:55 #7938 [Verbose] > │ let v73 : bool = v70 = false │
00:03:55 #7939 [Verbose] > │ if v73 then │
00:03:55 #7940 [Verbose] > │ failwith<unit> v72 │
00:03:55 #7941 [Verbose] > │ method0() │
00:03:55 #7942 [Verbose] > │ │
00:03:55 #7943 [Verbose] > │ "1...5" │
00:03:55 #7944 [Verbose] > │ "12...5" │
00:03:55 #7945 [Verbose] > │ "12...67" │
00:03:55 #7946 [Verbose] > │ │
00:03:55 #7947 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #7948 [Verbose] >
00:03:55 #7949 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:55 #7950 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:55 #7951 [Verbose] > │ ## format_ellipsis │
00:03:55 #7952 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:55 #7953 [Verbose] >
00:03:55 #7954 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:55 #7955 [Verbose] > inl format_ellipsis s =
00:03:55 #7956 [Verbose] > s
00:03:55 #7957 [Verbose] > |> format_debug
00:03:55 #7958 [Verbose] > |> ellipsis_end 400
00:03:56 #7959 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2815-1569-17008b9a1cfe\main.spi
00:03:56 #7960 [Verbose] >
00:03:56 #7961 [Verbose] > ╭─[ 440.38ms - stdout ]────────────────────────────────────────────────────────╮
00:03:56 #7962 [Verbose] > │ () │
00:03:56 #7963 [Verbose] > │ │
00:03:56 #7964 [Verbose] > │ │
00:03:56 #7965 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #7966 [Verbose] >
00:03:56 #7967 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:56 #7968 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:56 #7969 [Verbose] > │ ## split │
00:03:56 #7970 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #7971 [Verbose] >
00:03:56 #7972 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:56 #7973 [Verbose] > inl split (separator : string) (str : string) : array_base string =
00:03:56 #7974 [Verbose] > $"!str.Split !separator"
00:03:56 #7975 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2860-6042-65b791ed0d48\main.spi
00:03:56 #7976 [Verbose] >
00:03:56 #7977 [Verbose] > ╭─[ 228.56ms - stdout ]────────────────────────────────────────────────────────╮
00:03:56 #7978 [Verbose] > │ () │
00:03:56 #7979 [Verbose] > │ │
00:03:56 #7980 [Verbose] > │ │
00:03:56 #7981 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #7982 [Verbose] >
00:03:56 #7983 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:56 #7984 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:56 #7985 [Verbose] > │ ## split_string │
00:03:56 #7986 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #7987 [Verbose] >
00:03:56 #7988 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:56 #7989 [Verbose] > inl split_string (separator : array_base string) (str : string) : array_base
00:03:56 #7990 [Verbose] > string =
00:03:56 #7991 [Verbose] > run_target function
00:03:56 #7992 [Verbose] > | Fsharp (Native) => fun () => $"!str.Split (!separator,
00:03:56 #7993 [Verbose] > System.StringSplitOptions.None)"
00:03:56 #7994 [Verbose] > | _ => fun () => str |> split ((a separator : _ i32 _) |> seq.of_array
00:03:56 #7995 [Verbose] > |> concat (join ""))
00:03:56 #7996 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2884-8466-837ad32852f9\main.spi
00:03:56 #7997 [Verbose] >
00:03:56 #7998 [Verbose] > ╭─[ 224.64ms - stdout ]────────────────────────────────────────────────────────╮
00:03:56 #7999 [Verbose] > │ () │
00:03:56 #8000 [Verbose] > │ │
00:03:56 #8001 [Verbose] > │ │
00:03:56 #8002 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #8003 [Verbose] >
00:03:56 #8004 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:56 #8005 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:56 #8006 [Verbose] > │ ## join' │
00:03:56 #8007 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:56 #8008 [Verbose] >
00:03:56 #8009 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:56 #8010 [Verbose] > inl join' (concat : string) (s : a i32 string) : string =
00:03:56 #8011 [Verbose] > $"System.String.Join (!concat, !s)"
00:03:56 #8012 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2907-0720-037093a0fbe6\main.spi
00:03:57 #8013 [Verbose] >
00:03:57 #8014 [Verbose] > ╭─[ 214.77ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #8015 [Verbose] > │ () │
00:03:57 #8016 [Verbose] > │ │
00:03:57 #8017 [Verbose] > │ │
00:03:57 #8018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #8019 [Verbose] >
00:03:57 #8020 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:57 #8021 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:57 #8022 [Verbose] > │ ## to_char_array │
00:03:57 #8023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #8024 [Verbose] >
00:03:57 #8025 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #8026 [Verbose] > inl to_char_array (str : string) : a i32 char =
00:03:57 #8027 [Verbose] > am.init (str |> sm.length) (fun i => sm.index str i)
00:03:57 #8028 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2929-2923-2c4eb441bc0b\main.spi
00:03:57 #8029 [Verbose] >
00:03:57 #8030 [Verbose] > ╭─[ 215.24ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #8031 [Verbose] > │ () │
00:03:57 #8032 [Verbose] > │ │
00:03:57 #8033 [Verbose] > │ │
00:03:57 #8034 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #8035 [Verbose] >
00:03:57 #8036 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #8037 [Verbose] > // // test
00:03:57 #8038 [Verbose] >
00:03:57 #8039 [Verbose] > "abc"
00:03:57 #8040 [Verbose] > |> to_char_array
00:03:57 #8041 [Verbose] > |> _assert_eq (a ;[['a'; 'b'; 'c']])
00:03:57 #8042 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2951-5109-562265f41981\main.spi
00:03:57 #8043 [Verbose] >
00:03:57 #8044 [Verbose] > ╭─[ 415.95ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #8045 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:03:57 #8046 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:03:57 #8047 [Verbose] > │ let v1 : int32 = v0.l0 │
00:03:57 #8048 [Verbose] > │ let v2 : bool = v1 < 3 │
00:03:57 #8049 [Verbose] > │ v2 │
00:03:57 #8050 [Verbose] > │ and method2 (v0 : (char []), v1 : (char []), v2 : int32) : bool = │
00:03:57 #8051 [Verbose] > │ let v3 : int32 = v0.Length │
00:03:57 #8052 [Verbose] > │ let v4 : bool = v2 < v3 │
00:03:57 #8053 [Verbose] > │ if v4 then │
00:03:57 #8054 [Verbose] > │ let v5 : char = v0.[int v2] │
00:03:57 #8055 [Verbose] > │ let v6 : char = v1.[int v2] │
00:03:57 #8056 [Verbose] > │ let v7 : bool = v5 = v6 │
00:03:57 #8057 [Verbose] > │ if v7 then │
00:03:57 #8058 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:03:57 #8059 [Verbose] > │ method2(v0, v1, v8) │
00:03:57 #8060 [Verbose] > │ else │
00:03:57 #8061 [Verbose] > │ false │
00:03:57 #8062 [Verbose] > │ else │
00:03:57 #8063 [Verbose] > │ true │
00:03:57 #8064 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:03:57 #8065 [Verbose] > │ v0 │
00:03:57 #8066 [Verbose] > │ and method0 () : unit = │
00:03:57 #8067 [Verbose] > │ let v0 : (char []) = Array.zeroCreate<char> (3) │
00:03:57 #8068 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:03:57 #8069 [Verbose] > │ while method1(v1) do │
00:03:57 #8070 [Verbose] > │ let v3 : int32 = v1.l0 │
00:03:57 #8071 [Verbose] > │ let v4 : char = "abc".[int v3] │
00:03:57 #8072 [Verbose] > │ v0.[int v3] <- v4 │
00:03:57 #8073 [Verbose] > │ let v5 : int32 = v3 + 1 │
00:03:57 #8074 [Verbose] > │ v1.l0 <- v5 │
00:03:57 #8075 [Verbose] > │ () │
00:03:57 #8076 [Verbose] > │ let v6 : (char []) = [|'a'; 'b'; 'c'|] │
00:03:57 #8077 [Verbose] > │ let v7 : string = $"%A{v0}" │
00:03:57 #8078 [Verbose] > │ System.Console.WriteLine v7 │
00:03:57 #8079 [Verbose] > │ let v8 : int32 = v0.Length │
00:03:57 #8080 [Verbose] > │ let v9 : int32 = v6.Length │
00:03:57 #8081 [Verbose] > │ let v10 : bool = v8 = v9 │
00:03:57 #8082 [Verbose] > │ let v11 : bool = v10 <> true │
00:03:57 #8083 [Verbose] > │ let v14 : bool = │
00:03:57 #8084 [Verbose] > │ if v11 then │
00:03:57 #8085 [Verbose] > │ false │
00:03:57 #8086 [Verbose] > │ else │
00:03:57 #8087 [Verbose] > │ let v12 : int32 = 0 │
00:03:57 #8088 [Verbose] > │ method2(v0, v6, v12) │
00:03:57 #8089 [Verbose] > │ let v16 : bool = │
00:03:57 #8090 [Verbose] > │ if v14 then │
00:03:57 #8091 [Verbose] > │ true │
00:03:57 #8092 [Verbose] > │ else │
00:03:57 #8093 [Verbose] > │ method3(v14) │
00:03:57 #8094 [Verbose] > │ let v17 : string = $"__expect / actual: %A{v0} / expected: %A{v6}" │
00:03:57 #8095 [Verbose] > │ let v18 : bool = v16 = false │
00:03:57 #8096 [Verbose] > │ if v18 then │
00:03:57 #8097 [Verbose] > │ failwith<unit> v17 │
00:03:57 #8098 [Verbose] > │ method0() │
00:03:57 #8099 [Verbose] > │ │
00:03:57 #8100 [Verbose] > │ [|'a'; 'b'; 'c'|] │
00:03:57 #8101 [Verbose] > │ │
00:03:57 #8102 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #8103 [Verbose] >
00:03:57 #8104 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:57 #8105 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:57 #8106 [Verbose] > │ ## to_char_list │
00:03:57 #8107 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #8108 [Verbose] >
00:03:57 #8109 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #8110 [Verbose] > inl to_char_list (str : string) : list char =
00:03:57 #8111 [Verbose] > listm.init (str |> sm.length) (fun (i : i64) => sm.index str i)
00:03:57 #8112 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2996-9631-92a286910f8f\main.spi
00:03:57 #8113 [Verbose] >
00:03:57 #8114 [Verbose] > ╭─[ 273.84ms - stdout ]────────────────────────────────────────────────────────╮
00:03:57 #8115 [Verbose] > │ () │
00:03:57 #8116 [Verbose] > │ │
00:03:57 #8117 [Verbose] > │ │
00:03:57 #8118 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:57 #8119 [Verbose] >
00:03:57 #8120 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:57 #8121 [Verbose] > // // test
00:03:57 #8122 [Verbose] >
00:03:57 #8123 [Verbose] > "abc"
00:03:57 #8124 [Verbose] > |> to_char_list
00:03:57 #8125 [Verbose] > |> _assert_eq [['a'; 'b'; 'c']]
00:03:58 #8126 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-3024-2415-2ea31fdd4bd9\main.spi
00:03:58 #8127 [Verbose] >
00:03:58 #8128 [Verbose] > ╭─[ 600.22ms - stdout ]────────────────────────────────────────────────────────╮
00:03:58 #8129 [Verbose] > │ type UH0 = │
00:03:58 #8130 [Verbose] > │ | UH0_0 │
00:03:58 #8131 [Verbose] > │ | UH0_1 of char * UH0 │
00:03:58 #8132 [Verbose] > │ let rec method0 () : unit = │
00:03:58 #8133 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:03:58 #8134 [Verbose] > │ let v1 : UH0 = UH0_1('c', v0) │
00:03:58 #8135 [Verbose] > │ let v2 : UH0 = UH0_1('b', v1) │
00:03:58 #8136 [Verbose] > │ let v3 : UH0 = UH0_1('a', v2) │
00:03:58 #8137 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:03:58 #8138 [Verbose] > │ System.Console.WriteLine v4 │
00:03:58 #8139 [Verbose] > │ let v23 : UH0 = UH0_0 │
00:03:58 #8140 [Verbose] > │ let v24 : UH0 = UH0_1('c', v23) │
00:03:58 #8141 [Verbose] > │ let v25 : UH0 = UH0_1('b', v24) │
00:03:58 #8142 [Verbose] > │ let v26 : UH0 = UH0_1('a', v25) │
00:03:58 #8143 [Verbose] > │ let v27 : UH0 = UH0_0 │
00:03:58 #8144 [Verbose] > │ let v28 : UH0 = UH0_1('c', v27) │
00:03:58 #8145 [Verbose] > │ let v29 : UH0 = UH0_1('b', v28) │
00:03:58 #8146 [Verbose] > │ let v30 : UH0 = UH0_1('a', v29) │
00:03:58 #8147 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:03:58 #8148 [Verbose] > │ () │
00:03:58 #8149 [Verbose] > │ method0() │
00:03:58 #8150 [Verbose] > │ │
00:03:58 #8151 [Verbose] > │ UH0_1 ('a', UH0_1 ('b', UH0_1 ('c', UH0_0))) │
00:03:58 #8152 [Verbose] > │ │
00:03:58 #8153 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:58 #8154 [Verbose] >
00:03:58 #8155 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:58 #8156 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:58 #8157 [Verbose] > │ ## to_string std_string │
00:03:58 #8158 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:58 #8159 [Verbose] >
00:03:58 #8160 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:58 #8161 [Verbose] > open rust
00:03:58 #8162 [Verbose] > instance to_string std_string = from_std_string
00:03:58 #8163 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-3085-8564-8c1c21bc63a4\main.spi
00:03:58 #8164 [Verbose] >
00:03:58 #8165 [Verbose] > ╭─[ 215.20ms - stdout ]────────────────────────────────────────────────────────╮
00:03:58 #8166 [Verbose] > │ () │
00:03:58 #8167 [Verbose] > │ │
00:03:58 #8168 [Verbose] > │ │
00:03:58 #8169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:58 #8170 [Verbose] >
00:03:58 #8171 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:03:58 #8172 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:03:58 #8173 [Verbose] > │ ## main │
00:03:58 #8174 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:03:58 #8175 [Verbose] >
00:03:58 #8176 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:03:58 #8177 [Verbose] > inl main () =
00:03:58 #8178 [Verbose] > $"let contains x = !contains x" : ()
00:03:58 #8179 [Verbose] > $"let ends_with x = !ends_with x" : ()
00:03:58 #8180 [Verbose] > $"let pad_left x = !pad_left x" : ()
00:03:58 #8181 [Verbose] > $"let pad_right x = !pad_right x" : ()
00:03:58 #8182 [Verbose] > $"let replace x = !replace x" : ()
00:03:58 #8183 [Verbose] > inl slice (a : i32) (b : i32) c = slice a b c
00:03:58 #8184 [Verbose] > $"let slice x = !slice x" : ()
00:03:58 #8185 [Verbose] > $"let split x = !split x" : ()
00:03:58 #8186 [Verbose] > $"let split_string x = !split_string x" : ()
00:03:58 #8187 [Verbose] > $"let starts_with x = !starts_with x" : ()
00:03:58 #8188 [Verbose] > $"let substring x = !substring x" : ()
00:03:58 #8189 [Verbose] > $"let to_lower x = !to_lower x" : ()
00:03:58 #8190 [Verbose] > $"let to_upper x = !to_upper x" : ()
00:03:58 #8191 [Verbose] > $"let trim x = !trim x" : ()
00:03:58 #8192 [Verbose] > $"let trim_end x = !trim_end x" : ()
00:03:58 #8193 [Verbose] > $"let trim_start x = !trim_start x" : ()
00:03:58 #8194 [Verbose] > $"let ellipsis x = !ellipsis x" : ()
00:03:58 #8195 [Verbose] > $"let ellipsis_end x = !ellipsis_end x" : ()
00:03:58 #8196 [Verbose] > $"let format_exception x = !format_exception x" : ()
00:03:58 #8197 [Verbose] > $"let concat_array_trailing x = !concat_array_trailing x" : ()
00:03:58 #8198 [Verbose] > inl concat a (b : seq.seq' string) = concat a b
00:03:58 #8199 [Verbose] > $"let concat x = !concat x" : ()
00:03:58 #8200 [Verbose] > $"let join' x = !join' x" : ()
00:03:58 #8201 [Verbose] > $"let to_char_array x = !to_char_array x" : ()
00:03:58 #8202 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-3107-0768-0560ffe31d84\main.spi
00:03:59 #8203 [Verbose] >
00:03:59 #8204 [Verbose] > ╭─[ 567.01ms - stdout ]────────────────────────────────────────────────────────╮
00:03:59 #8205 [Verbose] > │ type Mut0 = {mutable l0 : int32; mutable l1 : string} │
00:03:59 #8206 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:03:59 #8207 [Verbose] > │ let rec closure1 (v0 : string) (v1 : string) : bool = │
00:03:59 #8208 [Verbose] > │ let v2 : bool = v1.Contains v0 │
00:03:59 #8209 [Verbose] > │ v2 │
00:03:59 #8210 [Verbose] > │ and closure0 () (v0 : string) : (string -> bool) = │
00:03:59 #8211 [Verbose] > │ closure1(v0) │
00:03:59 #8212 [Verbose] > │ and closure3 (v0 : string) (v1 : string) : bool = │
00:03:59 #8213 [Verbose] > │ let v2 : bool = v1.EndsWith v0 │
00:03:59 #8214 [Verbose] > │ v2 │
00:03:59 #8215 [Verbose] > │ and closure2 () (v0 : string) : (string -> bool) = │
00:03:59 #8216 [Verbose] > │ closure3(v0) │
00:03:59 #8217 [Verbose] > │ and closure6 (v0 : int32, v1 : char) (v2 : string) : string = │
00:03:59 #8218 [Verbose] > │ let v3 : string = v2.PadLeft (v0, v1) │
00:03:59 #8219 [Verbose] > │ v3 │
00:03:59 #8220 [Verbose] > │ and closure5 (v0 : int32) (v1 : char) : (string -> string) = │
00:03:59 #8221 [Verbose] > │ closure6(v0, v1) │
00:03:59 #8222 [Verbose] > │ and closure4 () (v0 : int32) : (char -> (string -> string)) = │
00:03:59 #8223 [Verbose] > │ closure5(v0) │
00:03:59 #8224 [Verbose] > │ and closure8 (v0 : int32) (v1 : string) : string = │
00:03:59 #8225 [Verbose] > │ let v2 : string = v1.PadRight v0 │
00:03:59 #8226 [Verbose] > │ v2 │
00:03:59 #8227 [Verbose] > │ and closure7 () (v0 : int32) : (string -> string) = │
00:03:59 #8228 [Verbose] > │ closure8(v0) │
00:03:59 #8229 [Verbose] > │ and closure11 (v0 : string, v1 : string) (v2 : string) : string = │
00:03:59 #8230 [Verbose] > │ let v3 : string = v2.Replace (v0, v1) │
00:03:59 #8231 [Verbose] > │ v3 │
00:03:59 #8232 [Verbose] > │ and closure10 (v0 : string) (v1 : string) : (string -> string) = │
00:03:59 #8233 [Verbose] > │ closure11(v0, v1) │
00:03:59 #8234 [Verbose] > │ and closure9 () (v0 : string) : (string -> (string -> string)) = │
00:03:59 #8235 [Verbose] > │ closure10(v0) │
00:03:59 #8236 [Verbose] > │ and closure14 (v0 : int32, v1 : int32) (v2 : string) : string = │
00:03:59 #8237 [Verbose] > │ let v3 : string = v2.[int v0..int v1] │
00:03:59 #8238 [Verbose] > │ v3 │
00:03:59 #8239 [Verbose] > │ and closure13 (v0 : int32) (v1 : int32) : (string -> string) = │
00:03:59 #8240 [Verbose] > │ closure14(v0, v1) │
00:03:59 #8241 [Verbose] > │ and closure12 () (v0 : int32) : (int32 -> (string -> string)) = │
00:03:59 #8242 [Verbose] > │ closure13(v0) │
00:03:59 #8243 [Verbose] > │ and closure16 (v0 : string) (v1 : string) : (string []) = │
00:03:59 #8244 [Verbose] > │ let v2 : (string []) = v1.Split v0 │
00:03:59 #8245 [Verbose] > │ v2 │
00:03:59 #8246 [Verbose] > │ and closure15 () (v0 : string) : (string -> (string [])) = │
00:03:59 #8247 [Verbose] > │ closure16(v0) │
00:03:59 #8248 [Verbose] > │ and method0 () : string = │
00:03:59 #8249 [Verbose] > │ let v0 : string = "" │
00:03:59 #8250 [Verbose] > │ v0 │
00:03:59 #8251 [Verbose] > │ and closure18 (v0 : (string [])) (v1 : string) : (string []) = │
00:03:59 #8252 [Verbose] > │ let v2 : (string []) option = None │
00:03:59 #8253 [Verbose] > │ let mutable _v2 = v2 │
00:03:59 #8254 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:03:59 #8255 [Verbose] > │ let v3 : ((string []) -> string seq) = Seq.ofArray │
00:03:59 #8256 [Verbose] > │ let v4 : string seq = v3 v0 │
00:03:59 #8257 [Verbose] > │ let v5 : string = method0() │
00:03:59 #8258 [Verbose] > │ let v6 : string = v4 |> String.concat v5 │
00:03:59 #8259 [Verbose] > │ let v7 : (string []) = v1.Split v6 │
00:03:59 #8260 [Verbose] > │ v7 │
00:03:59 #8261 [Verbose] > │ #endif │
00:03:59 #8262 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:59 #8263 [Verbose] > │ let v8 : ((string []) -> string seq) = Seq.ofArray │
00:03:59 #8264 [Verbose] > │ let v9 : string seq = v8 v0 │
00:03:59 #8265 [Verbose] > │ let v10 : string = method0() │
00:03:59 #8266 [Verbose] > │ let v11 : string = v9 |> String.concat v10 │
00:03:59 #8267 [Verbose] > │ let v12 : (string []) = v1.Split v11 │
00:03:59 #8268 [Verbose] > │ v12 │
00:03:59 #8269 [Verbose] > │ #endif │
00:03:59 #8270 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:03:59 #8271 [Verbose] > │ let v13 : ((string []) -> string seq) = Seq.ofArray │
00:03:59 #8272 [Verbose] > │ let v14 : string seq = v13 v0 │
00:03:59 #8273 [Verbose] > │ let v15 : string = method0() │
00:03:59 #8274 [Verbose] > │ let v16 : string = v14 |> String.concat v15 │
00:03:59 #8275 [Verbose] > │ let v17 : (string []) = v1.Split v16 │
00:03:59 #8276 [Verbose] > │ v17 │
00:03:59 #8277 [Verbose] > │ #endif │
00:03:59 #8278 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:59 #8279 [Verbose] > │ let v18 : (string []) = v1.Split (v0, System.StringSplitOptions.None) │
00:03:59 #8280 [Verbose] > │ v18 │
00:03:59 #8281 [Verbose] > │ #endif │
00:03:59 #8282 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:59 #8283 [Verbose] > │ let v19 : ((string []) -> string seq) = Seq.ofArray │
00:03:59 #8284 [Verbose] > │ let v20 : string seq = v19 v0 │
00:03:59 #8285 [Verbose] > │ let v21 : string = method0() │
00:03:59 #8286 [Verbose] > │ let v22 : string = v20 |> String.concat v21 │
00:03:59 #8287 [Verbose] > │ let v23 : (string []) = v1.Split v22 │
00:03:59 #8288 [Verbose] > │ v23 │
00:03:59 #8289 [Verbose] > │ #endif │
00:03:59 #8290 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:59 #8291 [Verbose] > │ let v24 : ((string []) -> string seq) = Seq.ofArray │
00:03:59 #8292 [Verbose] > │ let v25 : string seq = v24 v0 │
00:03:59 #8293 [Verbose] > │ let v26 : string = method0() │
00:03:59 #8294 [Verbose] > │ let v27 : string = v25 |> String.concat v26 │
00:03:59 #8295 [Verbose] > │ let v28 : (string []) = v1.Split v27 │
00:03:59 #8296 [Verbose] > │ v28 │
00:03:59 #8297 [Verbose] > │ #endif │
00:03:59 #8298 [Verbose] > │ |> fun x -> _v2 <- Some x │
00:03:59 #8299 [Verbose] > │ let v29 : (string []) = _v2 |> Option.get │
00:03:59 #8300 [Verbose] > │ v29 │
00:03:59 #8301 [Verbose] > │ and closure17 () (v0 : (string [])) : (string -> (string [])) = │
00:03:59 #8302 [Verbose] > │ closure18(v0) │
00:03:59 #8303 [Verbose] > │ and closure20 (v0 : string) (v1 : string) : bool = │
00:03:59 #8304 [Verbose] > │ let v2 : bool = v1.StartsWith v0 │
00:03:59 #8305 [Verbose] > │ v2 │
00:03:59 #8306 [Verbose] > │ and closure19 () (v0 : string) : (string -> bool) = │
00:03:59 #8307 [Verbose] > │ closure20(v0) │
00:03:59 #8308 [Verbose] > │ and closure23 (v0 : int32, v1 : int32) (v2 : string) : string = │
00:03:59 #8309 [Verbose] > │ let v3 : string = v2.Substring (v0, v1) │
00:03:59 #8310 [Verbose] > │ v3 │
00:03:59 #8311 [Verbose] > │ and closure22 (v0 : int32) (v1 : int32) : (string -> string) = │
00:03:59 #8312 [Verbose] > │ closure23(v0, v1) │
00:03:59 #8313 [Verbose] > │ and closure21 () (v0 : int32) : (int32 -> (string -> string)) = │
00:03:59 #8314 [Verbose] > │ closure22(v0) │
00:03:59 #8315 [Verbose] > │ and closure24 () (v0 : string) : string = │
00:03:59 #8316 [Verbose] > │ let v1 : string = v0.ToLower () │
00:03:59 #8317 [Verbose] > │ v1 │
00:03:59 #8318 [Verbose] > │ and closure25 () (v0 : string) : string = │
00:03:59 #8319 [Verbose] > │ let v1 : string = v0.ToUpper () │
00:03:59 #8320 [Verbose] > │ v1 │
00:03:59 #8321 [Verbose] > │ and closure26 () (v0 : string) : string = │
00:03:59 #8322 [Verbose] > │ let v1 : string = v0.Trim () │
00:03:59 #8323 [Verbose] > │ v1 │
00:03:59 #8324 [Verbose] > │ and closure28 (v0 : (char [])) (v1 : string) : string = │
00:03:59 #8325 [Verbose] > │ let v2 : string = v1.TrimEnd v0 │
00:03:59 #8326 [Verbose] > │ v2 │
00:03:59 #8327 [Verbose] > │ and closure27 () (v0 : (char [])) : (string -> string) = │
00:03:59 #8328 [Verbose] > │ closure28(v0) │
00:03:59 #8329 [Verbose] > │ and closure30 (v0 : (char [])) (v1 : string) : string = │
00:03:59 #8330 [Verbose] > │ let v2 : string = v1.TrimStart v0 │
00:03:59 #8331 [Verbose] > │ v2 │
00:03:59 #8332 [Verbose] > │ and closure29 () (v0 : (char [])) : (string -> string) = │
00:03:59 #8333 [Verbose] > │ closure30(v0) │
00:03:59 #8334 [Verbose] > │ and closure32 (v0 : int32) (v1 : string) : string = │
00:03:59 #8335 [Verbose] > │ let v2 : int32 = v1.Length │
00:03:59 #8336 [Verbose] > │ let v3 : bool = v2 <= v0 │
00:03:59 #8337 [Verbose] > │ if v3 then │
00:03:59 #8338 [Verbose] > │ v1 │
00:03:59 #8339 [Verbose] > │ else │
00:03:59 #8340 [Verbose] > │ let v4 : int32 = v0 - 1 │
00:03:59 #8341 [Verbose] > │ let v5 : string = v1.[int 0..int v4] │
00:03:59 #8342 [Verbose] > │ let v6 : string = v5 + "..." │
00:03:59 #8343 [Verbose] > │ v6 │
00:03:59 #8344 [Verbose] > │ and closure31 () (v0 : int32) : (string -> string) = │
00:03:59 #8345 [Verbose] > │ closure32(v0) │
00:03:59 #8346 [Verbose] > │ and closure34 (v0 : int64) (v1 : string) : string = │
00:03:59 #8347 [Verbose] > │ let v2 : int64 = System.Convert.ToInt64 v1.Length │
00:03:59 #8348 [Verbose] > │ let v3 : bool = v2 <= v0 │
00:03:59 #8349 [Verbose] > │ if v3 then │
00:03:59 #8350 [Verbose] > │ v1 │
00:03:59 #8351 [Verbose] > │ else │
00:03:59 #8352 [Verbose] > │ let v4 : float = float v0 │
00:03:59 #8353 [Verbose] > │ let v5 : float = v4 / 2.0 │
00:03:59 #8354 [Verbose] > │ let v6 : (float -> float) = ceil │
00:03:59 #8355 [Verbose] > │ let v7 : float = v6 v5 │
00:03:59 #8356 [Verbose] > │ let v8 : int64 = int64 v7 │
00:03:59 #8357 [Verbose] > │ let v9 : (float -> float) = floor │
00:03:59 #8358 [Verbose] > │ let v10 : float = v9 v5 │
00:03:59 #8359 [Verbose] > │ let v11 : int64 = int64 v10 │
00:03:59 #8360 [Verbose] > │ let v12 : int64 = v8 - 1L │
00:03:59 #8361 [Verbose] > │ let v13 : string = v1.[int 0L..int v12] │
00:03:59 #8362 [Verbose] > │ let v14 : int64 = v2 - v11 │
00:03:59 #8363 [Verbose] > │ let v15 : int64 = v2 - 1L │
00:03:59 #8364 [Verbose] > │ let v16 : string = v1.[int v14..int v15] │
00:03:59 #8365 [Verbose] > │ let v17 : string = "..." │
00:03:59 #8366 [Verbose] > │ let v18 : (string []) = [|v13; v17; v16|] │
00:03:59 #8367 [Verbose] > │ let v19 : ((string []) -> string seq) = Seq.ofArray │
00:03:59 #8368 [Verbose] > │ let v20 : string seq = v19 v18 │
00:03:59 #8369 [Verbose] > │ let v21 : string = "" │
00:03:59 #8370 [Verbose] > │ let v22 : string = v20 |> String.concat v21 │
00:03:59 #8371 [Verbose] > │ v22 │
00:03:59 #8372 [Verbose] > │ and closure33 () (v0 : int64) : (string -> string) = │
00:03:59 #8373 [Verbose] > │ closure34(v0) │
00:03:59 #8374 [Verbose] > │ and closure35 () (v0 : exn) : string = │
00:03:59 #8375 [Verbose] > │ let v1 : string option = None │
00:03:59 #8376 [Verbose] > │ let mutable _v1 = v1 │
00:03:59 #8377 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:03:59 #8378 [Verbose] > │ let v2 : string = $"%A{v0}" │
00:03:59 #8379 [Verbose] > │ v2 │
00:03:59 #8380 [Verbose] > │ #endif │
00:03:59 #8381 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:03:59 #8382 [Verbose] > │ let v3 : string = $"%A{v0}" │
00:03:59 #8383 [Verbose] > │ v3 │
00:03:59 #8384 [Verbose] > │ #endif │
00:03:59 #8385 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:03:59 #8386 [Verbose] > │ let v4 : string = $"%A{v0}" │
00:03:59 #8387 [Verbose] > │ v4 │
00:03:59 #8388 [Verbose] > │ #endif │
00:03:59 #8389 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:59 #8390 [Verbose] > │ let v5 : string = $"{v0.GetType ()}: {v0.Message}" │
00:03:59 #8391 [Verbose] > │ v5 │
00:03:59 #8392 [Verbose] > │ #endif │
00:03:59 #8393 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:03:59 #8394 [Verbose] > │ let v6 : string = $"%A{v0}" │
00:03:59 #8395 [Verbose] > │ v6 │
00:03:59 #8396 [Verbose] > │ #endif │
00:03:59 #8397 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:03:59 #8398 [Verbose] > │ let v7 : string = $"%A{v0}" │
00:03:59 #8399 [Verbose] > │ v7 │
00:03:59 #8400 [Verbose] > │ #endif │
00:03:59 #8401 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:03:59 #8402 [Verbose] > │ let v8 : string = _v1 |> Option.get │
00:03:59 #8403 [Verbose] > │ v8 │
00:03:59 #8404 [Verbose] > │ and method1 (v0 : int32, v1 : Mut0) : bool = │
00:03:59 #8405 [Verbose] > │ let v2 : int32 = v1.l0 │
00:03:59 #8406 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:59 #8407 [Verbose] > │ v3 │
00:03:59 #8408 [Verbose] > │ and closure37 (v0 : string) (v1 : (string [])) : string = │
00:03:59 #8409 [Verbose] > │ let v2 : int32 = v1.Length │
00:03:59 #8410 [Verbose] > │ let v3 : string = "" │
00:03:59 #8411 [Verbose] > │ let v4 : Mut0 = {l0 = 0; l1 = v3} : Mut0 │
00:03:59 #8412 [Verbose] > │ while method1(v2, v4) do │
00:03:59 #8413 [Verbose] > │ let v6 : int32 = v4.l0 │
00:03:59 #8414 [Verbose] > │ let v7 : string = v4.l1 │
00:03:59 #8415 [Verbose] > │ let v8 : string = v1.[int v6] │
00:03:59 #8416 [Verbose] > │ let v9 : string = v7 + v8 + v0 + "" │
00:03:59 #8417 [Verbose] > │ let v10 : int32 = v6 + 1 │
00:03:59 #8418 [Verbose] > │ v4.l0 <- v10 │
00:03:59 #8419 [Verbose] > │ v4.l1 <- v9 │
00:03:59 #8420 [Verbose] > │ () │
00:03:59 #8421 [Verbose] > │ let v11 : string = v4.l1 │
00:03:59 #8422 [Verbose] > │ v11 │
00:03:59 #8423 [Verbose] > │ and closure36 () (v0 : string) : ((string []) -> string) = │
00:03:59 #8424 [Verbose] > │ closure37(v0) │
00:03:59 #8425 [Verbose] > │ and closure39 (v0 : string) (v1 : string seq) : string = │
00:03:59 #8426 [Verbose] > │ let v2 : string = v1 |> String.concat v0 │
00:03:59 #8427 [Verbose] > │ v2 │
00:03:59 #8428 [Verbose] > │ and closure38 () (v0 : string) : (string seq -> string) = │
00:03:59 #8429 [Verbose] > │ closure39(v0) │
00:03:59 #8430 [Verbose] > │ and closure41 (v0 : string) (v1 : (string [])) : string = │
00:03:59 #8431 [Verbose] > │ let v2 : string = System.String.Join (v0, v1) │
00:03:59 #8432 [Verbose] > │ v2 │
00:03:59 #8433 [Verbose] > │ and closure40 () (v0 : string) : ((string []) -> string) = │
00:03:59 #8434 [Verbose] > │ closure41(v0) │
00:03:59 #8435 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool = │
00:03:59 #8436 [Verbose] > │ let v2 : int32 = v1.l0 │
00:03:59 #8437 [Verbose] > │ let v3 : bool = v2 < v0 │
00:03:59 #8438 [Verbose] > │ v3 │
00:03:59 #8439 [Verbose] > │ and closure42 () (v0 : string) : (char []) = │
00:03:59 #8440 [Verbose] > │ let v1 : int32 = v0.Length │
00:03:59 #8441 [Verbose] > │ let v2 : (char []) = Array.zeroCreate<char> (v1) │
00:03:59 #8442 [Verbose] > │ let v3 : Mut1 = {l0 = 0} : Mut1 │
00:03:59 #8443 [Verbose] > │ while method2(v1, v3) do │
00:03:59 #8444 [Verbose] > │ let v5 : int32 = v3.l0 │
00:03:59 #8445 [Verbose] > │ let v6 : char = v0.[int v5] │
00:03:59 #8446 [Verbose] > │ v2.[int v5] <- v6 │
00:03:59 #8447 [Verbose] > │ let v7 : int32 = v5 + 1 │
00:03:59 #8448 [Verbose] > │ v3.l0 <- v7 │
00:03:59 #8449 [Verbose] > │ () │
00:03:59 #8450 [Verbose] > │ v2 │
00:03:59 #8451 [Verbose] > │ let v0 : (string -> (string -> bool)) = closure0() │
00:03:59 #8452 [Verbose] > │ let contains x = v0 x │
00:03:59 #8453 [Verbose] > │ let v1 : (string -> (string -> bool)) = closure2() │
00:03:59 #8454 [Verbose] > │ let ends_with x = v1 x │
00:03:59 #8455 [Verbose] > │ let v2 : (int32 -> (char -> (string -> string))) = closure4() │
00:03:59 #8456 [Verbose] > │ let pad_left x = v2 x │
00:03:59 #8457 [Verbose] > │ let v3 : (int32 -> (string -> string)) = closure7() │
00:03:59 #8458 [Verbose] > │ let pad_right x = v3 x │
00:03:59 #8459 [Verbose] > │ let v4 : (string -> (string -> (string -> string))) = closure9() │
00:03:59 #8460 [Verbose] > │ let replace x = v4 x │
00:03:59 #8461 [Verbose] > │ let v5 : (int32 -> (int32 -> (string -> string))) = closure12() │
00:03:59 #8462 [Verbose] > │ let slice x = v5 x │
00:03:59 #8463 [Verbose] > │ let v6 : (string -> (string -> (string []))) = closure15() │
00:03:59 #8464 [Verbose] > │ let split x = v6 x │
00:03:59 #8465 [Verbose] > │ let v7 : ((string []) -> (string -> (string []))) = closure17() │
00:03:59 #8466 [Verbose] > │ let split_string x = v7 x │
00:03:59 #8467 [Verbose] > │ let v8 : (string -> (string -> bool)) = closure19() │
00:03:59 #8468 [Verbose] > │ let starts_with x = v8 x │
00:03:59 #8469 [Verbose] > │ let v9 : (int32 -> (int32 -> (string -> string))) = closure21() │
00:03:59 #8470 [Verbose] > │ let substring x = v9 x │
00:03:59 #8471 [Verbose] > │ let v10 : (string -> string) = closure24() │
00:03:59 #8472 [Verbose] > │ let to_lower x = v10 x │
00:03:59 #8473 [Verbose] > │ let v11 : (string -> string) = closure25() │
00:03:59 #8474 [Verbose] > │ let to_upper x = v11 x │
00:03:59 #8475 [Verbose] > │ let v12 : (string -> string) = closure26() │
00:03:59 #8476 [Verbose] > │ let trim x = v12 x │
00:03:59 #8477 [Verbose] > │ let v13 : ((char []) -> (string -> string)) = closure27() │
00:03:59 #8478 [Verbose] > │ let trim_end x = v13 x │
00:03:59 #8479 [Verbose] > │ let v14 : ((char []) -> (string -> string)) = closure29() │
00:03:59 #8480 [Verbose] > │ let trim_start x = v14 x │
00:03:59 #8481 [Verbose] > │ let v15 : (int32 -> (string -> string)) = closure31() │
00:03:59 #8482 [Verbose] > │ let ellipsis x = v15 x │
00:03:59 #8483 [Verbose] > │ let v16 : (int64 -> (string -> string)) = closure33() │
00:03:59 #8484 [Verbose] > │ let ellipsis_end x = v16 x │
00:03:59 #8485 [Verbose] > │ let v17 : (exn -> string) = closure35() │
00:03:59 #8486 [Verbose] > │ let format_exception x = v17 x │
00:03:59 #8487 [Verbose] > │ let v18 : (string -> ((string []) -> string)) = closure36() │
00:03:59 #8488 [Verbose] > │ let concat_array_trailing x = v18 x │
00:03:59 #8489 [Verbose] > │ let v19 : (string -> (string seq -> string)) = closure38() │
00:03:59 #8490 [Verbose] > │ let concat x = v19 x │
00:03:59 #8491 [Verbose] > │ let v20 : (string -> ((string []) -> string)) = closure40() │
00:03:59 #8492 [Verbose] > │ let join' x = v20 x │
00:03:59 #8493 [Verbose] > │ let v21 : (string -> (char [])) = closure42() │
00:03:59 #8494 [Verbose] > │ let to_char_array x = v21 x │
00:03:59 #8495 [Verbose] > │ () │
00:03:59 #8496 [Verbose] > │ │
00:03:59 #8497 [Verbose] > │ │
00:03:59 #8498 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:01 #8499 [Verbose] > [NbConvertApp] Converting notebook sm'.dib.ipynb to html
00:04:01 #8500 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:04:01 #8501 [Verbose] > validate(nb)
00:04:02 #8502 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:04:02 #8503 [Verbose] > return _pygments_highlight(
00:04:03 #8504 [Verbose] > [NbConvertApp] Writing 446538 bytes to sm'.dib.html
00:04:04 #8505 [Debug] executeAsync / exitCode: 0 / output.Length: 139697
00:04:04 #8506 [Debug] main / executeCommand / exitCode: 0
00:04:04 #8507 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"listm'.dib\" -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:04:07 #8508 [Verbose] >
00:04:07 #8509 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:07 #8510 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:07 #8511 [Verbose] > │ # listm │
00:04:07 #8512 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:07 #8513 [Verbose] >
00:04:07 #8514 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:07 #8515 [Verbose] > // // test
00:04:07 #8516 [Verbose] >
00:04:07 #8517 [Verbose] > open testing
00:04:11 #8518 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4326-2645-219b43f86a8b\main.spi
00:04:13 #8519 [Verbose] >
00:04:13 #8520 [Verbose] > ╭─[ 5.19s - stdout ]───────────────────────────────────────────────────────────╮
00:04:13 #8521 [Verbose] > │ () │
00:04:13 #8522 [Verbose] > │ │
00:04:13 #8523 [Verbose] > │ │
00:04:13 #8524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #8525 [Verbose] >
00:04:13 #8526 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:13 #8527 [Verbose] > // // test
00:04:13 #8528 [Verbose] >
00:04:13 #8529 [Verbose] > prototype append t : t -> t -> t
00:04:13 #8530 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4537-3755-38735d3a899a\main.spi
00:04:13 #8531 [Verbose] >
00:04:13 #8532 [Verbose] > ╭─[ 247.81ms - stdout ]────────────────────────────────────────────────────────╮
00:04:13 #8533 [Verbose] > │ () │
00:04:13 #8534 [Verbose] > │ │
00:04:13 #8535 [Verbose] > │ │
00:04:13 #8536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #8537 [Verbose] >
00:04:13 #8538 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:13 #8539 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:13 #8540 [Verbose] > │ ## list' │
00:04:13 #8541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #8542 [Verbose] >
00:04:13 #8543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:13 #8544 [Verbose] > nominal list' t = $'`t list'
00:04:13 #8545 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4562-6265-69be6db2a402\main.spi
00:04:13 #8546 [Verbose] >
00:04:13 #8547 [Verbose] > ╭─[ 241.76ms - stdout ]────────────────────────────────────────────────────────╮
00:04:13 #8548 [Verbose] > │ () │
00:04:13 #8549 [Verbose] > │ │
00:04:13 #8550 [Verbose] > │ │
00:04:13 #8551 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #8552 [Verbose] >
00:04:13 #8553 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:13 #8554 [Verbose] > inl empty' forall t. () : list' t =
00:04:13 #8555 [Verbose] > $'[[]]'
00:04:13 #8556 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4587-8742-8dc5f0175826\main.spi
00:04:13 #8557 [Verbose] >
00:04:13 #8558 [Verbose] > ╭─[ 217.97ms - stdout ]────────────────────────────────────────────────────────╮
00:04:13 #8559 [Verbose] > │ () │
00:04:13 #8560 [Verbose] > │ │
00:04:13 #8561 [Verbose] > │ │
00:04:13 #8562 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:13 #8563 [Verbose] >
00:04:13 #8564 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:13 #8565 [Verbose] > inl cons' forall t. (head : t) (tail : list' t) : list' t =
00:04:13 #8566 [Verbose] > $'!head :: !tail '
00:04:13 #8567 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4609-0914-0b7883fef414\main.spi
00:04:14 #8568 [Verbose] >
00:04:14 #8569 [Verbose] > ╭─[ 319.88ms - stdout ]────────────────────────────────────────────────────────╮
00:04:14 #8570 [Verbose] > │ () │
00:04:14 #8571 [Verbose] > │ │
00:04:14 #8572 [Verbose] > │ │
00:04:14 #8573 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8574 [Verbose] >
00:04:14 #8575 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:14 #8576 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:14 #8577 [Verbose] > │ ## box │
00:04:14 #8578 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8579 [Verbose] >
00:04:14 #8580 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:14 #8581 [Verbose] > inl box forall t. (list : list t) : list' t =
00:04:14 #8582 [Verbose] > (empty' (), list)
00:04:14 #8583 [Verbose] > ||> listm.fold fun acc x =>
00:04:14 #8584 [Verbose] > acc |> cons' x
00:04:14 #8585 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4641-4144-43eda52efc20\main.spi
00:04:14 #8586 [Verbose] >
00:04:14 #8587 [Verbose] > ╭─[ 249.80ms - stdout ]────────────────────────────────────────────────────────╮
00:04:14 #8588 [Verbose] > │ () │
00:04:14 #8589 [Verbose] > │ │
00:04:14 #8590 [Verbose] > │ │
00:04:14 #8591 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8592 [Verbose] >
00:04:14 #8593 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:14 #8594 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:14 #8595 [Verbose] > │ ## fold' │
00:04:14 #8596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8597 [Verbose] >
00:04:14 #8598 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:14 #8599 [Verbose] > inl fold' forall t u. (fn : t -> u) (init : list u) (list : list' t) : list u =
00:04:14 #8600 [Verbose] > (init, list)
00:04:14 #8601 [Verbose] > ||> $'List.fold' (fun acc x => Cons (fn x, acc))
00:04:14 #8602 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4667-6738-6026028af284\main.spi
00:04:14 #8603 [Verbose] >
00:04:14 #8604 [Verbose] > ╭─[ 209.77ms - stdout ]────────────────────────────────────────────────────────╮
00:04:14 #8605 [Verbose] > │ () │
00:04:14 #8606 [Verbose] > │ │
00:04:14 #8607 [Verbose] > │ │
00:04:14 #8608 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8609 [Verbose] >
00:04:14 #8610 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:14 #8611 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:14 #8612 [Verbose] > │ ## unbox │
00:04:14 #8613 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8614 [Verbose] >
00:04:14 #8615 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:14 #8616 [Verbose] > inl unbox forall t. (list : list' t) : list t =
00:04:14 #8617 [Verbose] > (Nil, list)
00:04:14 #8618 [Verbose] > ||> fold' id
00:04:14 #8619 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4688-8845-87568e952ed2\main.spi
00:04:14 #8620 [Verbose] >
00:04:14 #8621 [Verbose] > ╭─[ 232.98ms - stdout ]────────────────────────────────────────────────────────╮
00:04:14 #8622 [Verbose] > │ () │
00:04:14 #8623 [Verbose] > │ │
00:04:14 #8624 [Verbose] > │ │
00:04:14 #8625 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8626 [Verbose] >
00:04:14 #8627 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:14 #8628 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:14 #8629 [Verbose] > │ ## distinct' │
00:04:14 #8630 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:14 #8631 [Verbose] >
00:04:14 #8632 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:14 #8633 [Verbose] > inl distinct' forall t. (list : list' t) : list' t =
00:04:14 #8634 [Verbose] > list |> $'List.distinct'
00:04:14 #8635 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4712-1244-1e0b05cdcbd7\main.spi
00:04:15 #8636 [Verbose] >
00:04:15 #8637 [Verbose] > ╭─[ 230.41ms - stdout ]────────────────────────────────────────────────────────╮
00:04:15 #8638 [Verbose] > │ () │
00:04:15 #8639 [Verbose] > │ │
00:04:15 #8640 [Verbose] > │ │
00:04:15 #8641 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:15 #8642 [Verbose] >
00:04:15 #8643 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:15 #8644 [Verbose] > // // test
00:04:15 #8645 [Verbose] >
00:04:15 #8646 [Verbose] > [[ ""; "" ]]
00:04:15 #8647 [Verbose] > |> box
00:04:15 #8648 [Verbose] > |> distinct'
00:04:15 #8649 [Verbose] > |> unbox
00:04:15 #8650 [Verbose] > |> _assert_eq [[ "" ]]
00:04:15 #8651 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4735-3597-31f154822936\main.spi
00:04:16 #8652 [Verbose] >
00:04:16 #8653 [Verbose] > ╭─[ 1.61s - stdout ]───────────────────────────────────────────────────────────╮
00:04:16 #8654 [Verbose] > │ type UH0 = │
00:04:16 #8655 [Verbose] > │ | UH0_0 │
00:04:16 #8656 [Verbose] > │ | UH0_1 of string * UH0 │
00:04:16 #8657 [Verbose] > │ let rec closure1 (v0 : UH0) (v1 : string) : UH0 = │
00:04:16 #8658 [Verbose] > │ UH0_1(v1, v0) │
00:04:16 #8659 [Verbose] > │ and closure0 () (v0 : UH0) : (string -> UH0) = │
00:04:16 #8660 [Verbose] > │ closure1(v0) │
00:04:16 #8661 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:04:16 #8662 [Verbose] > │ v0 │
00:04:16 #8663 [Verbose] > │ and method0 () : unit = │
00:04:16 #8664 [Verbose] > │ let v0 : string list = [] │
00:04:16 #8665 [Verbose] > │ let v1 : string = "" │
00:04:16 #8666 [Verbose] > │ let v2 : string list = v1 :: v0 │
00:04:16 #8667 [Verbose] > │ let v3 : string list = v1 :: v2 │
00:04:16 #8668 [Verbose] > │ let v4 : (string list -> string list) = List.distinct │
00:04:16 #8669 [Verbose] > │ let v5 : string list = v4 v3 │
00:04:16 #8670 [Verbose] > │ let v6 : ((UH0 -> (string -> UH0)) -> (UH0 -> (string list -> UH0))) = │
00:04:16 #8671 [Verbose] > │ List.fold │
00:04:16 #8672 [Verbose] > │ let v7 : (UH0 -> (string -> UH0)) = closure0() │
00:04:16 #8673 [Verbose] > │ let v8 : (UH0 -> (string list -> UH0)) = v6 v7 │
00:04:16 #8674 [Verbose] > │ let v9 : UH0 = UH0_0 │
00:04:16 #8675 [Verbose] > │ let v10 : (string list -> UH0) = v8 v9 │
00:04:16 #8676 [Verbose] > │ let v11 : UH0 = v10 v5 │
00:04:16 #8677 [Verbose] > │ let v12 : string = $"%A{v11}" │
00:04:16 #8678 [Verbose] > │ System.Console.WriteLine v12 │
00:04:16 #8679 [Verbose] > │ let v20 : bool = │
00:04:16 #8680 [Verbose] > │ match v11 with │
00:04:16 #8681 [Verbose] > │ | UH0_1(v15, v16) -> (* Cons *) │
00:04:16 #8682 [Verbose] > │ let v17 : bool = v15 = "" │
00:04:16 #8683 [Verbose] > │ if v17 then │
00:04:16 #8684 [Verbose] > │ match v16 with │
00:04:16 #8685 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:04:16 #8686 [Verbose] > │ true │
00:04:16 #8687 [Verbose] > │ | _ -> │
00:04:16 #8688 [Verbose] > │ false │
00:04:16 #8689 [Verbose] > │ else │
00:04:16 #8690 [Verbose] > │ false │
00:04:16 #8691 [Verbose] > │ | _ -> │
00:04:16 #8692 [Verbose] > │ false │
00:04:16 #8693 [Verbose] > │ let v22 : bool = │
00:04:16 #8694 [Verbose] > │ if v20 then │
00:04:16 #8695 [Verbose] > │ true │
00:04:16 #8696 [Verbose] > │ else │
00:04:16 #8697 [Verbose] > │ method1(v20) │
00:04:16 #8698 [Verbose] > │ let v23 : UH0 = UH0_0 │
00:04:16 #8699 [Verbose] > │ let v24 : UH0 = UH0_1(v1, v23) │
00:04:16 #8700 [Verbose] > │ let v25 : string = $"__expect / actual: %A{v11} / expected: %A{v24}" │
00:04:16 #8701 [Verbose] > │ let v26 : bool = v22 = false │
00:04:16 #8702 [Verbose] > │ if v26 then │
00:04:16 #8703 [Verbose] > │ failwith<unit> v25 │
00:04:16 #8704 [Verbose] > │ method0() │
00:04:16 #8705 [Verbose] > │ │
00:04:16 #8706 [Verbose] > │ UH0_1 ("", UH0_0) │
00:04:16 #8707 [Verbose] > │ │
00:04:16 #8708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:16 #8709 [Verbose] >
00:04:16 #8710 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:16 #8711 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:16 #8712 [Verbose] > │ ## append │
00:04:16 #8713 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:16 #8714 [Verbose] >
00:04:16 #8715 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:16 #8716 [Verbose] > instance append list t =
00:04:16 #8717 [Verbose] > listm.append
00:04:16 #8718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4899-9935-92ed833fa7da\main.spi
00:04:17 #8719 [Verbose] >
00:04:17 #8720 [Verbose] > ╭─[ 336.66ms - stdout ]────────────────────────────────────────────────────────╮
00:04:17 #8721 [Verbose] > │ () │
00:04:17 #8722 [Verbose] > │ │
00:04:17 #8723 [Verbose] > │ │
00:04:17 #8724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #8725 [Verbose] >
00:04:17 #8726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:17 #8727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:17 #8728 [Verbose] > │ ## /@ │
00:04:17 #8729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #8730 [Verbose] >
00:04:17 #8731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:17 #8732 [Verbose] > inl (/@) a b =
00:04:17 #8733 [Verbose] > b |> append a
00:04:17 #8734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4933-3393-32a033a1cd96\main.spi
00:04:17 #8735 [Verbose] >
00:04:17 #8736 [Verbose] > ╭─[ 628.14ms - stdout ]────────────────────────────────────────────────────────╮
00:04:17 #8737 [Verbose] > │ () │
00:04:17 #8738 [Verbose] > │ │
00:04:17 #8739 [Verbose] > │ │
00:04:17 #8740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:17 #8741 [Verbose] >
00:04:17 #8742 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:17 #8743 [Verbose] > // // test
00:04:17 #8744 [Verbose] >
00:04:17 #8745 [Verbose] > [[ "a"; "b" ]] /@ [[ "c"; "d" ]]
00:04:17 #8746 [Verbose] > |> _assert_eq [[ "a"; "b"; "c"; "d" ]]
00:04:17 #8747 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4996-9676-9bb9b091da85\main.spi
00:04:18 #8748 [Verbose] >
00:04:18 #8749 [Verbose] > ╭─[ 360.74ms - stdout ]────────────────────────────────────────────────────────╮
00:04:18 #8750 [Verbose] > │ type UH0 = │
00:04:18 #8751 [Verbose] > │ | UH0_0 │
00:04:18 #8752 [Verbose] > │ | UH0_1 of string * UH0 │
00:04:18 #8753 [Verbose] > │ let rec method0 () : unit = │
00:04:18 #8754 [Verbose] > │ let v0 : string = "a" │
00:04:18 #8755 [Verbose] > │ let v1 : string = "b" │
00:04:18 #8756 [Verbose] > │ let v2 : string = "c" │
00:04:18 #8757 [Verbose] > │ let v3 : string = "d" │
00:04:18 #8758 [Verbose] > │ let v4 : UH0 = UH0_0 │
00:04:18 #8759 [Verbose] > │ let v5 : UH0 = UH0_1(v3, v4) │
00:04:18 #8760 [Verbose] > │ let v6 : UH0 = UH0_1(v2, v5) │
00:04:18 #8761 [Verbose] > │ let v7 : UH0 = UH0_1(v1, v6) │
00:04:18 #8762 [Verbose] > │ let v8 : UH0 = UH0_1(v0, v7) │
00:04:18 #8763 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:04:18 #8764 [Verbose] > │ System.Console.WriteLine v9 │
00:04:18 #8765 [Verbose] > │ let v35 : UH0 = UH0_0 │
00:04:18 #8766 [Verbose] > │ let v36 : UH0 = UH0_1(v3, v35) │
00:04:18 #8767 [Verbose] > │ let v37 : UH0 = UH0_1(v2, v36) │
00:04:18 #8768 [Verbose] > │ let v38 : UH0 = UH0_1(v1, v37) │
00:04:18 #8769 [Verbose] > │ let v39 : UH0 = UH0_1(v0, v38) │
00:04:18 #8770 [Verbose] > │ let v40 : UH0 = UH0_0 │
00:04:18 #8771 [Verbose] > │ let v41 : UH0 = UH0_1(v3, v40) │
00:04:18 #8772 [Verbose] > │ let v42 : UH0 = UH0_1(v2, v41) │
00:04:18 #8773 [Verbose] > │ let v43 : UH0 = UH0_1(v1, v42) │
00:04:18 #8774 [Verbose] > │ let v44 : UH0 = UH0_1(v0, v43) │
00:04:18 #8775 [Verbose] > │ let v45 : string = $"__expect / actual: %A{v39} / expected: %A{v44}" │
00:04:18 #8776 [Verbose] > │ () │
00:04:18 #8777 [Verbose] > │ method0() │
00:04:18 #8778 [Verbose] > │ │
00:04:18 #8779 [Verbose] > │ UH0_1 ("a", UH0_1 ("b", UH0_1 ("c", UH0_1 ("d", UH0_0)))) │
00:04:18 #8780 [Verbose] > │ │
00:04:18 #8781 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #8782 [Verbose] >
00:04:18 #8783 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:18 #8784 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:18 #8785 [Verbose] > │ ## init_series │
00:04:18 #8786 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #8787 [Verbose] >
00:04:18 #8788 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:18 #8789 [Verbose] > inl init_series start end inc =
00:04:18 #8790 [Verbose] > inl total : f64 = conv ((end - start) / inc) + 1
00:04:18 #8791 [Verbose] > listm.init total (conv >> (*) inc >> (+) start)
00:04:18 #8792 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5035-3593-3e670901724d\main.spi
00:04:18 #8793 [Verbose] >
00:04:18 #8794 [Verbose] > ╭─[ 238.45ms - stdout ]────────────────────────────────────────────────────────╮
00:04:18 #8795 [Verbose] > │ () │
00:04:18 #8796 [Verbose] > │ │
00:04:18 #8797 [Verbose] > │ │
00:04:18 #8798 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #8799 [Verbose] >
00:04:18 #8800 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:18 #8801 [Verbose] > // // test
00:04:18 #8802 [Verbose] >
00:04:18 #8803 [Verbose] > init_series 0 1 0.5
00:04:18 #8804 [Verbose] > |> _assert_eq [[ 0f64; 0.5; 1 ]]
00:04:18 #8805 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5059-5972-55cb36fb29c9\main.spi
00:04:18 #8806 [Verbose] >
00:04:18 #8807 [Verbose] > ╭─[ 250.13ms - stdout ]────────────────────────────────────────────────────────╮
00:04:18 #8808 [Verbose] > │ type UH0 = │
00:04:18 #8809 [Verbose] > │ | UH0_0 │
00:04:18 #8810 [Verbose] > │ | UH0_1 of float * UH0 │
00:04:18 #8811 [Verbose] > │ let rec method0 () : unit = │
00:04:18 #8812 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:04:18 #8813 [Verbose] > │ let v1 : UH0 = UH0_1(1.0, v0) │
00:04:18 #8814 [Verbose] > │ let v2 : UH0 = UH0_1(0.5, v1) │
00:04:18 #8815 [Verbose] > │ let v3 : UH0 = UH0_1(0.0, v2) │
00:04:18 #8816 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:04:18 #8817 [Verbose] > │ System.Console.WriteLine v4 │
00:04:18 #8818 [Verbose] > │ let v23 : UH0 = UH0_0 │
00:04:18 #8819 [Verbose] > │ let v24 : UH0 = UH0_1(1.0, v23) │
00:04:18 #8820 [Verbose] > │ let v25 : UH0 = UH0_1(0.5, v24) │
00:04:18 #8821 [Verbose] > │ let v26 : UH0 = UH0_1(0.0, v25) │
00:04:18 #8822 [Verbose] > │ let v27 : UH0 = UH0_0 │
00:04:18 #8823 [Verbose] > │ let v28 : UH0 = UH0_1(1.0, v27) │
00:04:18 #8824 [Verbose] > │ let v29 : UH0 = UH0_1(0.5, v28) │
00:04:18 #8825 [Verbose] > │ let v30 : UH0 = UH0_1(0.0, v29) │
00:04:18 #8826 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:04:18 #8827 [Verbose] > │ () │
00:04:18 #8828 [Verbose] > │ method0() │
00:04:18 #8829 [Verbose] > │ │
00:04:18 #8830 [Verbose] > │ UH0_1 (0.0, UH0_1 (0.5, UH0_1 (1.0, UH0_0))) │
00:04:18 #8831 [Verbose] > │ │
00:04:18 #8832 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #8833 [Verbose] >
00:04:18 #8834 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:18 #8835 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:18 #8836 [Verbose] > │ ## try_item │
00:04:18 #8837 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #8838 [Verbose] >
00:04:18 #8839 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:18 #8840 [Verbose] > inl rec try_item i = function
00:04:18 #8841 [Verbose] > | Cons (x, _) when i = 0 => Some x
00:04:18 #8842 [Verbose] > | Cons (_, xs) => try_item (i - 1) xs
00:04:18 #8843 [Verbose] > | Nil => None
00:04:18 #8844 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5086-8640-872a7d33b11e\main.spi
00:04:18 #8845 [Verbose] >
00:04:18 #8846 [Verbose] > ╭─[ 292.34ms - stdout ]────────────────────────────────────────────────────────╮
00:04:18 #8847 [Verbose] > │ () │
00:04:18 #8848 [Verbose] > │ │
00:04:18 #8849 [Verbose] > │ │
00:04:18 #8850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:18 #8851 [Verbose] >
00:04:18 #8852 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:18 #8853 [Verbose] > // // test
00:04:18 #8854 [Verbose] >
00:04:18 #8855 [Verbose] > listm.init 10i32 id
00:04:18 #8856 [Verbose] > |> try_item 9i32
00:04:18 #8857 [Verbose] > |> _assert_eq (Some 9)
00:04:19 #8858 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5115-1582-1ea033987f59\main.spi
00:04:19 #8859 [Verbose] >
00:04:19 #8860 [Verbose] > ╭─[ 309.83ms - stdout ]────────────────────────────────────────────────────────╮
00:04:19 #8861 [Verbose] > │ type [<Struct>] US0 = │
00:04:19 #8862 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:04:19 #8863 [Verbose] > │ | US0_1 │
00:04:19 #8864 [Verbose] > │ let rec method0 () : unit = │
00:04:19 #8865 [Verbose] > │ let v0 : US0 = US0_0(9) │
00:04:19 #8866 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:19 #8867 [Verbose] > │ System.Console.WriteLine v1 │
00:04:19 #8868 [Verbose] > │ let v5 : US0 = US0_0(9) │
00:04:19 #8869 [Verbose] > │ let v6 : US0 = US0_0(9) │
00:04:19 #8870 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:19 #8871 [Verbose] > │ () │
00:04:19 #8872 [Verbose] > │ method0() │
00:04:19 #8873 [Verbose] > │ │
00:04:19 #8874 [Verbose] > │ US0_0 9 │
00:04:19 #8875 [Verbose] > │ │
00:04:19 #8876 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #8877 [Verbose] >
00:04:19 #8878 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:19 #8879 [Verbose] > // // test
00:04:19 #8880 [Verbose] >
00:04:19 #8881 [Verbose] > listm.init 10i32 id
00:04:19 #8882 [Verbose] > |> try_item 10i32
00:04:19 #8883 [Verbose] > |> _assert_eq None
00:04:19 #8884 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5147-4748-4befc0b5dba6\main.spi
00:04:19 #8885 [Verbose] >
00:04:19 #8886 [Verbose] > ╭─[ 268.47ms - stdout ]────────────────────────────────────────────────────────╮
00:04:19 #8887 [Verbose] > │ type [<Struct>] US0 = │
00:04:19 #8888 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:04:19 #8889 [Verbose] > │ | US0_1 │
00:04:19 #8890 [Verbose] > │ let rec method0 () : unit = │
00:04:19 #8891 [Verbose] > │ let v0 : US0 = US0_1 │
00:04:19 #8892 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:19 #8893 [Verbose] > │ System.Console.WriteLine v1 │
00:04:19 #8894 [Verbose] > │ let v5 : US0 = US0_1 │
00:04:19 #8895 [Verbose] > │ let v6 : US0 = US0_1 │
00:04:19 #8896 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:19 #8897 [Verbose] > │ () │
00:04:19 #8898 [Verbose] > │ method0() │
00:04:19 #8899 [Verbose] > │ │
00:04:19 #8900 [Verbose] > │ US0_1 │
00:04:19 #8901 [Verbose] > │ │
00:04:19 #8902 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #8903 [Verbose] >
00:04:19 #8904 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:19 #8905 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:19 #8906 [Verbose] > │ ## list_item │
00:04:19 #8907 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #8908 [Verbose] >
00:04:19 #8909 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:19 #8910 [Verbose] > inl item i =
00:04:19 #8911 [Verbose] > try_item i >> optionm.value
00:04:19 #8912 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5175-7589-7925fb30dd13\main.spi
00:04:19 #8913 [Verbose] >
00:04:19 #8914 [Verbose] > ╭─[ 288.22ms - stdout ]────────────────────────────────────────────────────────╮
00:04:19 #8915 [Verbose] > │ () │
00:04:19 #8916 [Verbose] > │ │
00:04:19 #8917 [Verbose] > │ │
00:04:19 #8918 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:19 #8919 [Verbose] >
00:04:19 #8920 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:19 #8921 [Verbose] > // // test
00:04:19 #8922 [Verbose] >
00:04:19 #8923 [Verbose] > listm.init 10i32 id
00:04:19 #8924 [Verbose] > |> item 9i32
00:04:19 #8925 [Verbose] > |> _assert_eq 9
00:04:19 #8926 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5205-0507-06a9ba3f691f\main.spi
00:04:20 #8927 [Verbose] >
00:04:20 #8928 [Verbose] > ╭─[ 309.56ms - stdout ]────────────────────────────────────────────────────────╮
00:04:20 #8929 [Verbose] > │ let rec method0 () : unit = │
00:04:20 #8930 [Verbose] > │ let v0 : string = $"%A{9}" │
00:04:20 #8931 [Verbose] > │ System.Console.WriteLine v0 │
00:04:20 #8932 [Verbose] > │ let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}" │
00:04:20 #8933 [Verbose] > │ () │
00:04:20 #8934 [Verbose] > │ method0() │
00:04:20 #8935 [Verbose] > │ │
00:04:20 #8936 [Verbose] > │ 9 │
00:04:20 #8937 [Verbose] > │ │
00:04:20 #8938 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #8939 [Verbose] >
00:04:20 #8940 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:20 #8941 [Verbose] > // // test
00:04:20 #8942 [Verbose] >
00:04:20 #8943 [Verbose] > fun () =>
00:04:20 #8944 [Verbose] > listm.init 10i32 id
00:04:20 #8945 [Verbose] > |> item 10i32
00:04:20 #8946 [Verbose] > |> ignore
00:04:20 #8947 [Verbose] > |> _throws
00:04:20 #8948 [Verbose] > |> optionm.map sm'.format_exception
00:04:20 #8949 [Verbose] > |> _assert_eq (Some "System.Exception: Option does not have a value.")
00:04:20 #8950 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5236-3668-355170070a33\main.spi
00:04:20 #8951 [Verbose] >
00:04:20 #8952 [Verbose] > ╭─[ 361.37ms - stdout ]────────────────────────────────────────────────────────╮
00:04:20 #8953 [Verbose] > │ type [<Struct>] US0 = │
00:04:20 #8954 [Verbose] > │ | US0_0 of f0_0 : exn │
00:04:20 #8955 [Verbose] > │ | US0_1 │
00:04:20 #8956 [Verbose] > │ and [<Struct>] US1 = │
00:04:20 #8957 [Verbose] > │ | US1_0 of f0_0 : string │
00:04:20 #8958 [Verbose] > │ | US1_1 │
00:04:20 #8959 [Verbose] > │ let rec closure0 () () : unit = │
00:04:20 #8960 [Verbose] > │ let v0 : int32 = failwith<int32> "Option does not have a value." │
00:04:20 #8961 [Verbose] > │ () │
00:04:20 #8962 [Verbose] > │ and closure1 () (v0 : exn) : US0 = │
00:04:20 #8963 [Verbose] > │ US0_0(v0) │
00:04:20 #8964 [Verbose] > │ and method1 (v0 : bool) : bool = │
00:04:20 #8965 [Verbose] > │ v0 │
00:04:20 #8966 [Verbose] > │ and method0 () : unit = │
00:04:20 #8967 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:04:20 #8968 [Verbose] > │ let v1 : US0 = US0_1 │
00:04:20 #8969 [Verbose] > │ let v2 : (exn -> US0) = closure1() │
00:04:20 #8970 [Verbose] > │ let v3 : US0 = try v0 (); v1 with ex -> ex |> v2 │
00:04:20 #8971 [Verbose] > │ let v16 : US1 = │
00:04:20 #8972 [Verbose] > │ match v3 with │
00:04:20 #8973 [Verbose] > │ | US0_1 -> (* None *) │
00:04:20 #8974 [Verbose] > │ US1_1 │
00:04:20 #8975 [Verbose] > │ | US0_0(v4) -> (* Some *) │
00:04:20 #8976 [Verbose] > │ let v5 : string option = None │
00:04:20 #8977 [Verbose] > │ let mutable _v5 = v5 │
00:04:20 #8978 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:20 #8979 [Verbose] > │ let v6 : string = $"%A{v4}" │
00:04:20 #8980 [Verbose] > │ v6 │
00:04:20 #8981 [Verbose] > │ #endif │
00:04:20 #8982 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:20 #8983 [Verbose] > │ let v7 : string = $"%A{v4}" │
00:04:20 #8984 [Verbose] > │ v7 │
00:04:20 #8985 [Verbose] > │ #endif │
00:04:20 #8986 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:20 #8987 [Verbose] > │ let v8 : string = $"%A{v4}" │
00:04:20 #8988 [Verbose] > │ v8 │
00:04:20 #8989 [Verbose] > │ #endif │
00:04:20 #8990 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:20 #8991 [Verbose] > │ let v9 : string = $"{v4.GetType ()}: {v4.Message}" │
00:04:20 #8992 [Verbose] > │ v9 │
00:04:20 #8993 [Verbose] > │ #endif │
00:04:20 #8994 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:20 #8995 [Verbose] > │ let v10 : string = $"%A{v4}" │
00:04:20 #8996 [Verbose] > │ v10 │
00:04:20 #8997 [Verbose] > │ #endif │
00:04:20 #8998 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:20 #8999 [Verbose] > │ let v11 : string = $"%A{v4}" │
00:04:20 #9000 [Verbose] > │ v11 │
00:04:20 #9001 [Verbose] > │ #endif │
00:04:20 #9002 [Verbose] > │ |> fun x -> _v5 <- Some x │
00:04:20 #9003 [Verbose] > │ let v12 : string = _v5 |> Option.get │
00:04:20 #9004 [Verbose] > │ US1_0(v12) │
00:04:20 #9005 [Verbose] > │ let v17 : string = $"%A{v16}" │
00:04:20 #9006 [Verbose] > │ System.Console.WriteLine v17 │
00:04:20 #9007 [Verbose] > │ let v22 : bool = │
00:04:20 #9008 [Verbose] > │ match v16 with │
00:04:20 #9009 [Verbose] > │ | US1_0(v20) -> (* Some *) │
00:04:20 #9010 [Verbose] > │ let v21 : bool = v20 = "System.Exception: Option does not have a │
00:04:20 #9011 [Verbose] > │ value." │
00:04:20 #9012 [Verbose] > │ v21 │
00:04:20 #9013 [Verbose] > │ | _ -> │
00:04:20 #9014 [Verbose] > │ false │
00:04:20 #9015 [Verbose] > │ let v24 : bool = │
00:04:20 #9016 [Verbose] > │ if v22 then │
00:04:20 #9017 [Verbose] > │ true │
00:04:20 #9018 [Verbose] > │ else │
00:04:20 #9019 [Verbose] > │ method1(v22) │
00:04:20 #9020 [Verbose] > │ let v25 : string = "System.Exception: Option does not have a value." │
00:04:20 #9021 [Verbose] > │ let v26 : US1 = US1_0(v25) │
00:04:20 #9022 [Verbose] > │ let v27 : string = $"__expect / actual: %A{v16} / expected: %A{v26}" │
00:04:20 #9023 [Verbose] > │ let v28 : bool = v24 = false │
00:04:20 #9024 [Verbose] > │ if v28 then │
00:04:20 #9025 [Verbose] > │ failwith<unit> v27 │
00:04:20 #9026 [Verbose] > │ method0() │
00:04:20 #9027 [Verbose] > │ │
00:04:20 #9028 [Verbose] > │ US1_0 "System.Exception: Option does not have a value." │
00:04:20 #9029 [Verbose] > │ │
00:04:20 #9030 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #9031 [Verbose] >
00:04:20 #9032 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:20 #9033 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:20 #9034 [Verbose] > │ ## try_item_ │
00:04:20 #9035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #9036 [Verbose] >
00:04:20 #9037 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:20 #9038 [Verbose] > let rec try_item_ i = function
00:04:20 #9039 [Verbose] > | Cons (x, _) when i = 0 => Some x
00:04:20 #9040 [Verbose] > | Cons (_, xs) => try_item_ (i - 1) xs
00:04:20 #9041 [Verbose] > | Nil => None
00:04:20 #9042 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5276-7605-7b7133b9c0db\main.spi
00:04:20 #9043 [Verbose] >
00:04:20 #9044 [Verbose] > ╭─[ 220.87ms - stdout ]────────────────────────────────────────────────────────╮
00:04:20 #9045 [Verbose] > │ () │
00:04:20 #9046 [Verbose] > │ │
00:04:20 #9047 [Verbose] > │ │
00:04:20 #9048 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #9049 [Verbose] >
00:04:20 #9050 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:20 #9051 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:20 #9052 [Verbose] > │ ## item_ │
00:04:20 #9053 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #9054 [Verbose] >
00:04:20 #9055 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:20 #9056 [Verbose] > inl item_ i =
00:04:20 #9057 [Verbose] > try_item_ i >> optionm.value
00:04:20 #9058 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5298-9875-9910087440e0\main.spi
00:04:20 #9059 [Verbose] >
00:04:20 #9060 [Verbose] > ╭─[ 228.60ms - stdout ]────────────────────────────────────────────────────────╮
00:04:20 #9061 [Verbose] > │ () │
00:04:20 #9062 [Verbose] > │ │
00:04:20 #9063 [Verbose] > │ │
00:04:20 #9064 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #9065 [Verbose] >
00:04:20 #9066 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:20 #9067 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:20 #9068 [Verbose] > │ ## sum │
00:04:20 #9069 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:20 #9070 [Verbose] >
00:04:20 #9071 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:20 #9072 [Verbose] > inl sum list =
00:04:20 #9073 [Verbose] > list |> listm.fold (+) 0
00:04:21 #9074 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5322-2242-22dc8e4315ce\main.spi
00:04:21 #9075 [Verbose] >
00:04:21 #9076 [Verbose] > ╭─[ 241.54ms - stdout ]────────────────────────────────────────────────────────╮
00:04:21 #9077 [Verbose] > │ () │
00:04:21 #9078 [Verbose] > │ │
00:04:21 #9079 [Verbose] > │ │
00:04:21 #9080 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #9081 [Verbose] >
00:04:21 #9082 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:21 #9083 [Verbose] > // // test
00:04:21 #9084 [Verbose] >
00:04:21 #9085 [Verbose] > listm.init 10i32 id
00:04:21 #9086 [Verbose] > |> sum
00:04:21 #9087 [Verbose] > |> _assert_eq 45
00:04:21 #9088 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5346-4661-4ec3590fa29b\main.spi
00:04:21 #9089 [Verbose] >
00:04:21 #9090 [Verbose] > ╭─[ 229.49ms - stdout ]────────────────────────────────────────────────────────╮
00:04:21 #9091 [Verbose] > │ let rec method0 () : unit = │
00:04:21 #9092 [Verbose] > │ let v0 : string = $"%A{45}" │
00:04:21 #9093 [Verbose] > │ System.Console.WriteLine v0 │
00:04:21 #9094 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:04:21 #9095 [Verbose] > │ () │
00:04:21 #9096 [Verbose] > │ method0() │
00:04:21 #9097 [Verbose] > │ │
00:04:21 #9098 [Verbose] > │ 45 │
00:04:21 #9099 [Verbose] > │ │
00:04:21 #9100 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #9101 [Verbose] >
00:04:21 #9102 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:21 #9103 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:21 #9104 [Verbose] > │ ## unzip │
00:04:21 #9105 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #9106 [Verbose] >
00:04:21 #9107 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:21 #9108 [Verbose] > inl unzip list =
00:04:21 #9109 [Verbose] > (([[]], [[]]), list)
00:04:21 #9110 [Verbose] > ||> listm.fold fun (acc_x, acc_y) (x, y) =>
00:04:21 #9111 [Verbose] > x :: acc_x, y :: acc_y
00:04:21 #9112 [Verbose] > |> fun x, y =>
00:04:21 #9113 [Verbose] > x |> listm.rev, y |> listm.rev
00:04:21 #9114 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5370-7065-7675f8b6b884\main.spi
00:04:21 #9115 [Verbose] >
00:04:21 #9116 [Verbose] > ╭─[ 243.23ms - stdout ]────────────────────────────────────────────────────────╮
00:04:21 #9117 [Verbose] > │ () │
00:04:21 #9118 [Verbose] > │ │
00:04:21 #9119 [Verbose] > │ │
00:04:21 #9120 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #9121 [Verbose] >
00:04:21 #9122 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:21 #9123 [Verbose] > // // test
00:04:21 #9124 [Verbose] >
00:04:21 #9125 [Verbose] > listm.init 10i32 id
00:04:21 #9126 [Verbose] > |> listm.map (fun x => x, x)
00:04:21 #9127 [Verbose] > |> unzip
00:04:21 #9128 [Verbose] > |> fun x, y =>
00:04:21 #9129 [Verbose] > x |> sum
00:04:21 #9130 [Verbose] > |> _assert_eq 45
00:04:21 #9131 [Verbose] >
00:04:21 #9132 [Verbose] > y |> sum
00:04:21 #9133 [Verbose] > |> _assert_eq 45
00:04:21 #9134 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5395-9508-92a8f7b9d726\main.spi
00:04:21 #9135 [Verbose] >
00:04:21 #9136 [Verbose] > ╭─[ 261.83ms - stdout ]────────────────────────────────────────────────────────╮
00:04:21 #9137 [Verbose] > │ let rec method0 () : unit = │
00:04:21 #9138 [Verbose] > │ let v0 : string = $"%A{45}" │
00:04:21 #9139 [Verbose] > │ System.Console.WriteLine v0 │
00:04:21 #9140 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:04:21 #9141 [Verbose] > │ let v2 : string = $"%A{45}" │
00:04:21 #9142 [Verbose] > │ System.Console.WriteLine v2 │
00:04:21 #9143 [Verbose] > │ let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:04:21 #9144 [Verbose] > │ () │
00:04:21 #9145 [Verbose] > │ method0() │
00:04:21 #9146 [Verbose] > │ │
00:04:21 #9147 [Verbose] > │ 45 │
00:04:21 #9148 [Verbose] > │ 45 │
00:04:21 #9149 [Verbose] > │ │
00:04:21 #9150 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #9151 [Verbose] >
00:04:21 #9152 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:21 #9153 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:21 #9154 [Verbose] > │ ## try_index_of │
00:04:21 #9155 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:21 #9156 [Verbose] >
00:04:21 #9157 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:21 #9158 [Verbose] > inl try_index_of item list =
00:04:21 #9159 [Verbose] > inl rec loop i = function
00:04:21 #9160 [Verbose] > | [[]] => None
00:04:21 #9161 [Verbose] > | x :: xs =>
00:04:21 #9162 [Verbose] > if x = item
00:04:21 #9163 [Verbose] > then Some i
00:04:21 #9164 [Verbose] > else loop (i + 1) xs
00:04:21 #9165 [Verbose] > loop 0 list
00:04:21 #9166 [Verbose] >
00:04:21 #9167 [Verbose] > inl index_of item =
00:04:21 #9168 [Verbose] > try_index_of item >> optionm.value
00:04:21 #9169 [Verbose] >
00:04:21 #9170 [Verbose] > inl try_index_of_ item list =
00:04:21 #9171 [Verbose] > let rec loop i = function
00:04:21 #9172 [Verbose] > | [[]] => None
00:04:21 #9173 [Verbose] > | x :: xs =>
00:04:21 #9174 [Verbose] > if x = item
00:04:21 #9175 [Verbose] > then Some i
00:04:21 #9176 [Verbose] > else loop (i + 1) xs
00:04:21 #9177 [Verbose] > loop 0 list
00:04:21 #9178 [Verbose] >
00:04:21 #9179 [Verbose] > inl index_of_ item =
00:04:21 #9180 [Verbose] > try_index_of_ item >> optionm.value
00:04:21 #9181 [Verbose] >
00:04:21 #9182 [Verbose] > inl try_index_of__ item list =
00:04:21 #9183 [Verbose] > inl i = mut 0
00:04:21 #9184 [Verbose] > inl list = mut list
00:04:21 #9185 [Verbose] > inl result = mut None
00:04:21 #9186 [Verbose] > let rec loop () =
00:04:21 #9187 [Verbose] > match *list with
00:04:21 #9188 [Verbose] > | [[]] => result <- None
00:04:21 #9189 [Verbose] > | x :: xs =>
00:04:21 #9190 [Verbose] > if x = item
00:04:21 #9191 [Verbose] > then result <- Some *i
00:04:21 #9192 [Verbose] > else
00:04:21 #9193 [Verbose] > i <- *i + 1
00:04:21 #9194 [Verbose] > list <- xs
00:04:21 #9195 [Verbose] > loop ()
00:04:21 #9196 [Verbose] > loop ()
00:04:21 #9197 [Verbose] > *result
00:04:21 #9198 [Verbose] >
00:04:21 #9199 [Verbose] > inl index_of__ item =
00:04:21 #9200 [Verbose] > try_index_of__ item >> optionm.value
00:04:22 #9201 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5422-2250-23bdf2655358\main.spi
00:04:22 #9202 [Verbose] >
00:04:22 #9203 [Verbose] > ╭─[ 458.54ms - stdout ]────────────────────────────────────────────────────────╮
00:04:22 #9204 [Verbose] > │ () │
00:04:22 #9205 [Verbose] > │ │
00:04:22 #9206 [Verbose] > │ │
00:04:22 #9207 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:22 #9208 [Verbose] >
00:04:22 #9209 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:22 #9210 [Verbose] > // // test
00:04:22 #9211 [Verbose] >
00:04:22 #9212 [Verbose] > listm.init 10i32 id
00:04:22 #9213 [Verbose] > |> index_of 5i32
00:04:22 #9214 [Verbose] > |> _assert_eq 5i32
00:04:22 #9215 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5468-6848-6476a6831147\main.spi
00:04:22 #9216 [Verbose] >
00:04:22 #9217 [Verbose] > ╭─[ 321.51ms - stdout ]────────────────────────────────────────────────────────╮
00:04:22 #9218 [Verbose] > │ let rec method0 () : unit = │
00:04:22 #9219 [Verbose] > │ let v0 : string = $"%A{5}" │
00:04:22 #9220 [Verbose] > │ System.Console.WriteLine v0 │
00:04:22 #9221 [Verbose] > │ let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}" │
00:04:22 #9222 [Verbose] > │ () │
00:04:22 #9223 [Verbose] > │ method0() │
00:04:22 #9224 [Verbose] > │ │
00:04:22 #9225 [Verbose] > │ 5 │
00:04:22 #9226 [Verbose] > │ │
00:04:22 #9227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:22 #9228 [Verbose] >
00:04:22 #9229 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:22 #9230 [Verbose] > // // test
00:04:22 #9231 [Verbose] >
00:04:22 #9232 [Verbose] > listm.init 10i32 id
00:04:22 #9233 [Verbose] > |> try_index_of 10i32
00:04:22 #9234 [Verbose] > |> _assert_eq (None : option i32)
00:04:22 #9235 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5501-0156-0ba3e561a755\main.spi
00:04:22 #9236 [Verbose] >
00:04:22 #9237 [Verbose] > ╭─[ 248.25ms - stdout ]────────────────────────────────────────────────────────╮
00:04:22 #9238 [Verbose] > │ type [<Struct>] US0 = │
00:04:22 #9239 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:04:22 #9240 [Verbose] > │ | US0_1 │
00:04:22 #9241 [Verbose] > │ let rec method0 () : unit = │
00:04:22 #9242 [Verbose] > │ let v0 : US0 = US0_1 │
00:04:22 #9243 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:22 #9244 [Verbose] > │ System.Console.WriteLine v1 │
00:04:22 #9245 [Verbose] > │ let v5 : US0 = US0_1 │
00:04:22 #9246 [Verbose] > │ let v6 : US0 = US0_1 │
00:04:22 #9247 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:22 #9248 [Verbose] > │ () │
00:04:22 #9249 [Verbose] > │ method0() │
00:04:22 #9250 [Verbose] > │ │
00:04:22 #9251 [Verbose] > │ US0_1 │
00:04:22 #9252 [Verbose] > │ │
00:04:22 #9253 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:22 #9254 [Verbose] >
00:04:22 #9255 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:22 #9256 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:22 #9257 [Verbose] > │ ## try_find │
00:04:22 #9258 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #9259 [Verbose] >
00:04:23 #9260 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:23 #9261 [Verbose] > inl try_find fn list =
00:04:23 #9262 [Verbose] > inl rec loop = function
00:04:23 #9263 [Verbose] > | [[]] => None
00:04:23 #9264 [Verbose] > | x :: xs =>
00:04:23 #9265 [Verbose] > if fn x
00:04:23 #9266 [Verbose] > then Some x
00:04:23 #9267 [Verbose] > else loop xs
00:04:23 #9268 [Verbose] > loop list
00:04:23 #9269 [Verbose] >
00:04:23 #9270 [Verbose] > inl try_find_ fn list =
00:04:23 #9271 [Verbose] > let rec loop = function
00:04:23 #9272 [Verbose] > | [[]] => None
00:04:23 #9273 [Verbose] > | x :: xs =>
00:04:23 #9274 [Verbose] > if fn x
00:04:23 #9275 [Verbose] > then Some x
00:04:23 #9276 [Verbose] > else loop xs
00:04:23 #9277 [Verbose] > loop list
00:04:23 #9278 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5527-2764-2381f1d0b12a\main.spi
00:04:23 #9279 [Verbose] >
00:04:23 #9280 [Verbose] > ╭─[ 204.81ms - stdout ]────────────────────────────────────────────────────────╮
00:04:23 #9281 [Verbose] > │ () │
00:04:23 #9282 [Verbose] > │ │
00:04:23 #9283 [Verbose] > │ │
00:04:23 #9284 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #9285 [Verbose] >
00:04:23 #9286 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:23 #9287 [Verbose] > // // test
00:04:23 #9288 [Verbose] >
00:04:23 #9289 [Verbose] > listm.init 10i32 id
00:04:23 #9290 [Verbose] > |> try_find ((=) 5i32)
00:04:23 #9291 [Verbose] > |> _assert_eq (Some 5i32)
00:04:23 #9292 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5548-4806-4de4577fcdba\main.spi
00:04:23 #9293 [Verbose] >
00:04:23 #9294 [Verbose] > ╭─[ 260.99ms - stdout ]────────────────────────────────────────────────────────╮
00:04:23 #9295 [Verbose] > │ type [<Struct>] US0 = │
00:04:23 #9296 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:04:23 #9297 [Verbose] > │ | US0_1 │
00:04:23 #9298 [Verbose] > │ let rec method0 () : unit = │
00:04:23 #9299 [Verbose] > │ let v0 : US0 = US0_0(5) │
00:04:23 #9300 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:23 #9301 [Verbose] > │ System.Console.WriteLine v1 │
00:04:23 #9302 [Verbose] > │ let v5 : US0 = US0_0(5) │
00:04:23 #9303 [Verbose] > │ let v6 : US0 = US0_0(5) │
00:04:23 #9304 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:23 #9305 [Verbose] > │ () │
00:04:23 #9306 [Verbose] > │ method0() │
00:04:23 #9307 [Verbose] > │ │
00:04:23 #9308 [Verbose] > │ US0_0 5 │
00:04:23 #9309 [Verbose] > │ │
00:04:23 #9310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #9311 [Verbose] >
00:04:23 #9312 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:23 #9313 [Verbose] > inl find x =
00:04:23 #9314 [Verbose] > try_find x >> optionm.value
00:04:23 #9315 [Verbose] >
00:04:23 #9316 [Verbose] > inl find_ x =
00:04:23 #9317 [Verbose] > try_find_ x >> optionm.value
00:04:23 #9318 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5575-7529-7f4fcae43dc7\main.spi
00:04:23 #9319 [Verbose] >
00:04:23 #9320 [Verbose] > ╭─[ 195.27ms - stdout ]────────────────────────────────────────────────────────╮
00:04:23 #9321 [Verbose] > │ () │
00:04:23 #9322 [Verbose] > │ │
00:04:23 #9323 [Verbose] > │ │
00:04:23 #9324 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #9325 [Verbose] >
00:04:23 #9326 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:23 #9327 [Verbose] > // // test
00:04:23 #9328 [Verbose] >
00:04:23 #9329 [Verbose] > listm.init 10i32 id
00:04:23 #9330 [Verbose] > |> find ((=) 5i32)
00:04:23 #9331 [Verbose] > |> _assert_eq 5i32
00:04:23 #9332 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5594-9494-9e96f636c86a\main.spi
00:04:23 #9333 [Verbose] >
00:04:23 #9334 [Verbose] > ╭─[ 247.87ms - stdout ]────────────────────────────────────────────────────────╮
00:04:23 #9335 [Verbose] > │ let rec method0 () : unit = │
00:04:23 #9336 [Verbose] > │ let v0 : string = $"%A{5}" │
00:04:23 #9337 [Verbose] > │ System.Console.WriteLine v0 │
00:04:23 #9338 [Verbose] > │ let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}" │
00:04:23 #9339 [Verbose] > │ () │
00:04:23 #9340 [Verbose] > │ method0() │
00:04:23 #9341 [Verbose] > │ │
00:04:23 #9342 [Verbose] > │ 5 │
00:04:23 #9343 [Verbose] > │ │
00:04:23 #9344 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #9345 [Verbose] >
00:04:23 #9346 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:23 #9347 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:23 #9348 [Verbose] > │ ## choose │
00:04:23 #9349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:23 #9350 [Verbose] >
00:04:23 #9351 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:23 #9352 [Verbose] > inl choose f l =
00:04:23 #9353 [Verbose] > (l, [[]])
00:04:23 #9354 [Verbose] > ||> listm.foldBack fun x acc =>
00:04:23 #9355 [Verbose] > match f x with
00:04:23 #9356 [Verbose] > | Some y => y :: acc
00:04:23 #9357 [Verbose] > | None => acc
00:04:24 #9358 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5620-2097-217ba13660fc\main.spi
00:04:24 #9359 [Verbose] >
00:04:24 #9360 [Verbose] > ╭─[ 194.90ms - stdout ]────────────────────────────────────────────────────────╮
00:04:24 #9361 [Verbose] > │ () │
00:04:24 #9362 [Verbose] > │ │
00:04:24 #9363 [Verbose] > │ │
00:04:24 #9364 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #9365 [Verbose] >
00:04:24 #9366 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:24 #9367 [Verbose] > // // test
00:04:24 #9368 [Verbose] >
00:04:24 #9369 [Verbose] > listm.init 10i32 id
00:04:24 #9370 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:04:24 #9371 [Verbose] > |> _assert_eq [[ 0; 2; 4; 6; 8 ]]
00:04:24 #9372 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5640-4036-4f59543969f9\main.spi
00:04:24 #9373 [Verbose] >
00:04:24 #9374 [Verbose] > ╭─[ 361.85ms - stdout ]────────────────────────────────────────────────────────╮
00:04:24 #9375 [Verbose] > │ type UH0 = │
00:04:24 #9376 [Verbose] > │ | UH0_0 │
00:04:24 #9377 [Verbose] > │ | UH0_1 of int32 * UH0 │
00:04:24 #9378 [Verbose] > │ let rec method0 () : unit = │
00:04:24 #9379 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:04:24 #9380 [Verbose] > │ let v1 : UH0 = UH0_1(8, v0) │
00:04:24 #9381 [Verbose] > │ let v2 : UH0 = UH0_1(6, v1) │
00:04:24 #9382 [Verbose] > │ let v3 : UH0 = UH0_1(4, v2) │
00:04:24 #9383 [Verbose] > │ let v4 : UH0 = UH0_1(2, v3) │
00:04:24 #9384 [Verbose] > │ let v5 : UH0 = UH0_1(0, v4) │
00:04:24 #9385 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:04:24 #9386 [Verbose] > │ System.Console.WriteLine v6 │
00:04:24 #9387 [Verbose] > │ let v40 : UH0 = UH0_0 │
00:04:24 #9388 [Verbose] > │ let v41 : UH0 = UH0_1(8, v40) │
00:04:24 #9389 [Verbose] > │ let v42 : UH0 = UH0_1(6, v41) │
00:04:24 #9390 [Verbose] > │ let v43 : UH0 = UH0_1(4, v42) │
00:04:24 #9391 [Verbose] > │ let v44 : UH0 = UH0_1(2, v43) │
00:04:24 #9392 [Verbose] > │ let v45 : UH0 = UH0_1(0, v44) │
00:04:24 #9393 [Verbose] > │ let v46 : UH0 = UH0_0 │
00:04:24 #9394 [Verbose] > │ let v47 : UH0 = UH0_1(8, v46) │
00:04:24 #9395 [Verbose] > │ let v48 : UH0 = UH0_1(6, v47) │
00:04:24 #9396 [Verbose] > │ let v49 : UH0 = UH0_1(4, v48) │
00:04:24 #9397 [Verbose] > │ let v50 : UH0 = UH0_1(2, v49) │
00:04:24 #9398 [Verbose] > │ let v51 : UH0 = UH0_1(0, v50) │
00:04:24 #9399 [Verbose] > │ let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}" │
00:04:24 #9400 [Verbose] > │ () │
00:04:24 #9401 [Verbose] > │ method0() │
00:04:24 #9402 [Verbose] > │ │
00:04:24 #9403 [Verbose] > │ UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, UH0_1 (8, UH0_0))))) │
00:04:24 #9404 [Verbose] > │ │
00:04:24 #9405 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #9406 [Verbose] >
00:04:24 #9407 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:24 #9408 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:24 #9409 [Verbose] > │ ## zip_with │
00:04:24 #9410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #9411 [Verbose] >
00:04:24 #9412 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:24 #9413 [Verbose] > inl zip_with fn xs ys =
00:04:24 #9414 [Verbose] > inl rec loop acc xs ys =
00:04:24 #9415 [Verbose] > match xs, ys with
00:04:24 #9416 [Verbose] > | Cons (x, xs), Cons (y, ys) =>
00:04:24 #9417 [Verbose] > loop (fn x y :: acc) xs ys
00:04:24 #9418 [Verbose] > | _ => listm.rev acc
00:04:24 #9419 [Verbose] > loop [[]] xs ys
00:04:24 #9420 [Verbose] >
00:04:24 #9421 [Verbose] > inl zip_with_ fn xs ys =
00:04:24 #9422 [Verbose] > let rec loop acc xs ys =
00:04:24 #9423 [Verbose] > match xs, ys with
00:04:24 #9424 [Verbose] > | Cons (x, xs), Cons (y, ys) =>
00:04:24 #9425 [Verbose] > loop (fn x y :: acc) xs ys
00:04:24 #9426 [Verbose] > | _ => listm.rev acc
00:04:24 #9427 [Verbose] > loop [[]] xs ys
00:04:24 #9428 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5679-7904-7832146fe127\main.spi
00:04:24 #9429 [Verbose] >
00:04:24 #9430 [Verbose] > ╭─[ 206.26ms - stdout ]────────────────────────────────────────────────────────╮
00:04:24 #9431 [Verbose] > │ () │
00:04:24 #9432 [Verbose] > │ │
00:04:24 #9433 [Verbose] > │ │
00:04:24 #9434 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:24 #9435 [Verbose] >
00:04:24 #9436 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:24 #9437 [Verbose] > // // test
00:04:24 #9438 [Verbose] >
00:04:24 #9439 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4; 5; 6 ]])
00:04:24 #9440 [Verbose] > ||> zip_with (+)
00:04:24 #9441 [Verbose] > |> _assert_eq [[ 5; 7; 9 ]]
00:04:24 #9442 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5699-9968-942efe8eddeb\main.spi
00:04:25 #9443 [Verbose] >
00:04:25 #9444 [Verbose] > ╭─[ 308.24ms - stdout ]────────────────────────────────────────────────────────╮
00:04:25 #9445 [Verbose] > │ type UH0 = │
00:04:25 #9446 [Verbose] > │ | UH0_0 │
00:04:25 #9447 [Verbose] > │ | UH0_1 of int32 * UH0 │
00:04:25 #9448 [Verbose] > │ let rec method0 () : unit = │
00:04:25 #9449 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:04:25 #9450 [Verbose] > │ let v1 : UH0 = UH0_1(9, v0) │
00:04:25 #9451 [Verbose] > │ let v2 : UH0 = UH0_1(7, v1) │
00:04:25 #9452 [Verbose] > │ let v3 : UH0 = UH0_1(5, v2) │
00:04:25 #9453 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:04:25 #9454 [Verbose] > │ System.Console.WriteLine v4 │
00:04:25 #9455 [Verbose] > │ let v23 : UH0 = UH0_0 │
00:04:25 #9456 [Verbose] > │ let v24 : UH0 = UH0_1(9, v23) │
00:04:25 #9457 [Verbose] > │ let v25 : UH0 = UH0_1(7, v24) │
00:04:25 #9458 [Verbose] > │ let v26 : UH0 = UH0_1(5, v25) │
00:04:25 #9459 [Verbose] > │ let v27 : UH0 = UH0_0 │
00:04:25 #9460 [Verbose] > │ let v28 : UH0 = UH0_1(9, v27) │
00:04:25 #9461 [Verbose] > │ let v29 : UH0 = UH0_1(7, v28) │
00:04:25 #9462 [Verbose] > │ let v30 : UH0 = UH0_1(5, v29) │
00:04:25 #9463 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:04:25 #9464 [Verbose] > │ () │
00:04:25 #9465 [Verbose] > │ method0() │
00:04:25 #9466 [Verbose] > │ │
00:04:25 #9467 [Verbose] > │ UH0_1 (5, UH0_1 (7, UH0_1 (9, UH0_0))) │
00:04:25 #9468 [Verbose] > │ │
00:04:25 #9469 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #9470 [Verbose] >
00:04:25 #9471 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:25 #9472 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:25 #9473 [Verbose] > │ ## zip │
00:04:25 #9474 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #9475 [Verbose] >
00:04:25 #9476 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:25 #9477 [Verbose] > inl zip xs ys =
00:04:25 #9478 [Verbose] > zip_with pair xs ys
00:04:25 #9479 [Verbose] >
00:04:25 #9480 [Verbose] > inl zip_ xs ys =
00:04:25 #9481 [Verbose] > zip_with_ pair xs ys
00:04:25 #9482 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5732-3285-35dfcbf943d9\main.spi
00:04:25 #9483 [Verbose] >
00:04:25 #9484 [Verbose] > ╭─[ 449.77ms - stdout ]────────────────────────────────────────────────────────╮
00:04:25 #9485 [Verbose] > │ () │
00:04:25 #9486 [Verbose] > │ │
00:04:25 #9487 [Verbose] > │ │
00:04:25 #9488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #9489 [Verbose] >
00:04:25 #9490 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:25 #9491 [Verbose] > // // test
00:04:25 #9492 [Verbose] >
00:04:25 #9493 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4i32; 5; 6 ]])
00:04:25 #9494 [Verbose] > ||> zip
00:04:25 #9495 [Verbose] > |> _assert_eq [[ 1, 4; 2, 5; 3, 6 ]]
00:04:25 #9496 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5777-7788-74cae4141c88\main.spi
00:04:25 #9497 [Verbose] >
00:04:25 #9498 [Verbose] > ╭─[ 358.30ms - stdout ]────────────────────────────────────────────────────────╮
00:04:25 #9499 [Verbose] > │ type UH0 = │
00:04:25 #9500 [Verbose] > │ | UH0_0 │
00:04:25 #9501 [Verbose] > │ | UH0_1 of int32 * int32 * UH0 │
00:04:25 #9502 [Verbose] > │ let rec method0 () : unit = │
00:04:25 #9503 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:04:25 #9504 [Verbose] > │ let v1 : UH0 = UH0_1(3, 6, v0) │
00:04:25 #9505 [Verbose] > │ let v2 : UH0 = UH0_1(2, 5, v1) │
00:04:25 #9506 [Verbose] > │ let v3 : UH0 = UH0_1(1, 4, v2) │
00:04:25 #9507 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:04:25 #9508 [Verbose] > │ System.Console.WriteLine v4 │
00:04:25 #9509 [Verbose] > │ let v23 : UH0 = UH0_0 │
00:04:25 #9510 [Verbose] > │ let v24 : UH0 = UH0_1(3, 6, v23) │
00:04:25 #9511 [Verbose] > │ let v25 : UH0 = UH0_1(2, 5, v24) │
00:04:25 #9512 [Verbose] > │ let v26 : UH0 = UH0_1(1, 4, v25) │
00:04:25 #9513 [Verbose] > │ let v27 : UH0 = UH0_0 │
00:04:25 #9514 [Verbose] > │ let v28 : UH0 = UH0_1(3, 6, v27) │
00:04:25 #9515 [Verbose] > │ let v29 : UH0 = UH0_1(2, 5, v28) │
00:04:25 #9516 [Verbose] > │ let v30 : UH0 = UH0_1(1, 4, v29) │
00:04:25 #9517 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:04:25 #9518 [Verbose] > │ () │
00:04:25 #9519 [Verbose] > │ method0() │
00:04:25 #9520 [Verbose] > │ │
00:04:25 #9521 [Verbose] > │ UH0_1 (1, 4, UH0_1 (2, 5, UH0_1 (3, 6, UH0_0))) │
00:04:25 #9522 [Verbose] > │ │
00:04:25 #9523 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #9524 [Verbose] >
00:04:25 #9525 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:25 #9526 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:25 #9527 [Verbose] > │ ## indexed │
00:04:25 #9528 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:25 #9529 [Verbose] >
00:04:25 #9530 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:25 #9531 [Verbose] > inl indexed list =
00:04:25 #9532 [Verbose] > (([[]], 0), list)
00:04:25 #9533 [Verbose] > ||> listm.fold fun (acc, i) x =>
00:04:25 #9534 [Verbose] > (i, x) :: acc, i + 1
00:04:25 #9535 [Verbose] > |> fst
00:04:25 #9536 [Verbose] > |> listm.rev
00:04:26 #9537 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5815-1560-12b731782b1b\main.spi
00:04:26 #9538 [Verbose] >
00:04:26 #9539 [Verbose] > ╭─[ 231.78ms - stdout ]────────────────────────────────────────────────────────╮
00:04:26 #9540 [Verbose] > │ () │
00:04:26 #9541 [Verbose] > │ │
00:04:26 #9542 [Verbose] > │ │
00:04:26 #9543 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #9544 [Verbose] >
00:04:26 #9545 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:26 #9546 [Verbose] > // // test
00:04:26 #9547 [Verbose] >
00:04:26 #9548 [Verbose] > listm.init 5i32 ((*) 2)
00:04:26 #9549 [Verbose] > |> indexed
00:04:26 #9550 [Verbose] > |> _assert_eq [[ 0i32, 0; 1, 2; 2, 4; 3, 6; 4, 8 ]]
00:04:26 #9551 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5838-3888-38b32bce6e5d\main.spi
00:04:26 #9552 [Verbose] >
00:04:26 #9553 [Verbose] > ╭─[ 304.11ms - stdout ]────────────────────────────────────────────────────────╮
00:04:26 #9554 [Verbose] > │ type UH0 = │
00:04:26 #9555 [Verbose] > │ | UH0_0 │
00:04:26 #9556 [Verbose] > │ | UH0_1 of int32 * int32 * UH0 │
00:04:26 #9557 [Verbose] > │ let rec method0 () : unit = │
00:04:26 #9558 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:04:26 #9559 [Verbose] > │ let v1 : UH0 = UH0_1(4, 8, v0) │
00:04:26 #9560 [Verbose] > │ let v2 : UH0 = UH0_1(3, 6, v1) │
00:04:26 #9561 [Verbose] > │ let v3 : UH0 = UH0_1(2, 4, v2) │
00:04:26 #9562 [Verbose] > │ let v4 : UH0 = UH0_1(1, 2, v3) │
00:04:26 #9563 [Verbose] > │ let v5 : UH0 = UH0_1(0, 0, v4) │
00:04:26 #9564 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:04:26 #9565 [Verbose] > │ System.Console.WriteLine v6 │
00:04:26 #9566 [Verbose] > │ let v40 : UH0 = UH0_0 │
00:04:26 #9567 [Verbose] > │ let v41 : UH0 = UH0_1(4, 8, v40) │
00:04:26 #9568 [Verbose] > │ let v42 : UH0 = UH0_1(3, 6, v41) │
00:04:26 #9569 [Verbose] > │ let v43 : UH0 = UH0_1(2, 4, v42) │
00:04:26 #9570 [Verbose] > │ let v44 : UH0 = UH0_1(1, 2, v43) │
00:04:26 #9571 [Verbose] > │ let v45 : UH0 = UH0_1(0, 0, v44) │
00:04:26 #9572 [Verbose] > │ let v46 : UH0 = UH0_0 │
00:04:26 #9573 [Verbose] > │ let v47 : UH0 = UH0_1(4, 8, v46) │
00:04:26 #9574 [Verbose] > │ let v48 : UH0 = UH0_1(3, 6, v47) │
00:04:26 #9575 [Verbose] > │ let v49 : UH0 = UH0_1(2, 4, v48) │
00:04:26 #9576 [Verbose] > │ let v50 : UH0 = UH0_1(1, 2, v49) │
00:04:26 #9577 [Verbose] > │ let v51 : UH0 = UH0_1(0, 0, v50) │
00:04:26 #9578 [Verbose] > │ let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}" │
00:04:26 #9579 [Verbose] > │ () │
00:04:26 #9580 [Verbose] > │ method0() │
00:04:26 #9581 [Verbose] > │ │
00:04:26 #9582 [Verbose] > │ UH0_1 (0, 0, UH0_1 (1, 2, UH0_1 (2, 4, UH0_1 (3, 6, UH0_1 (4, 8, UH0_0))))) │
00:04:26 #9583 [Verbose] > │ │
00:04:26 #9584 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #9585 [Verbose] >
00:04:26 #9586 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:26 #9587 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:26 #9588 [Verbose] > │ ## group_by │
00:04:26 #9589 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #9590 [Verbose] >
00:04:26 #9591 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:26 #9592 [Verbose] > inl group_by fn list =
00:04:26 #9593 [Verbose] > (list, [[]])
00:04:26 #9594 [Verbose] > ||> listm.foldBack fun x acc =>
00:04:26 #9595 [Verbose] > inl xk = fn x
00:04:26 #9596 [Verbose] > inl found, new_acc =
00:04:26 #9597 [Verbose] > ((false, [[]]), acc)
00:04:26 #9598 [Verbose] > ||> listm.fold fun (found, acc') (k, xs) =>
00:04:26 #9599 [Verbose] > if k = xk
00:04:26 #9600 [Verbose] > then true, (k, x :: xs) :: acc'
00:04:26 #9601 [Verbose] > else found, (k, xs) :: acc'
00:04:26 #9602 [Verbose] > if found
00:04:26 #9603 [Verbose] > then new_acc
00:04:26 #9604 [Verbose] > else (xk, [[ x ]]) :: new_acc
00:04:26 #9605 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5870-7096-7bd6dcc0d586\main.spi
00:04:26 #9606 [Verbose] >
00:04:26 #9607 [Verbose] > ╭─[ 224.76ms - stdout ]────────────────────────────────────────────────────────╮
00:04:26 #9608 [Verbose] > │ () │
00:04:26 #9609 [Verbose] > │ │
00:04:26 #9610 [Verbose] > │ │
00:04:26 #9611 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:26 #9612 [Verbose] >
00:04:26 #9613 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:26 #9614 [Verbose] > // // test
00:04:26 #9615 [Verbose] >
00:04:26 #9616 [Verbose] > listm.init 10i32 id
00:04:26 #9617 [Verbose] > |> group_by (fun x => x % 2 = 0)
00:04:26 #9618 [Verbose] > |> _assert_eq [[ true, [[ 0; 2; 4; 6; 8 ]]; false, [[ 1; 3; 5; 7; 9 ]] ]]
00:04:26 #9619 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5893-9381-9fd3200c75b2\main.spi
00:04:27 #9620 [Verbose] >
00:04:27 #9621 [Verbose] > ╭─[ 391.66ms - stdout ]────────────────────────────────────────────────────────╮
00:04:27 #9622 [Verbose] > │ type UH0 = │
00:04:27 #9623 [Verbose] > │ | UH0_0 │
00:04:27 #9624 [Verbose] > │ | UH0_1 of int32 * UH0 │
00:04:27 #9625 [Verbose] > │ and UH1 = │
00:04:27 #9626 [Verbose] > │ | UH1_0 │
00:04:27 #9627 [Verbose] > │ | UH1_1 of bool * UH0 * UH1 │
00:04:27 #9628 [Verbose] > │ let rec method0 () : unit = │
00:04:27 #9629 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:04:27 #9630 [Verbose] > │ let v1 : UH0 = UH0_1(8, v0) │
00:04:27 #9631 [Verbose] > │ let v2 : UH0 = UH0_1(6, v1) │
00:04:27 #9632 [Verbose] > │ let v3 : UH0 = UH0_1(4, v2) │
00:04:27 #9633 [Verbose] > │ let v4 : UH0 = UH0_1(2, v3) │
00:04:27 #9634 [Verbose] > │ let v5 : UH0 = UH0_1(0, v4) │
00:04:27 #9635 [Verbose] > │ let v6 : UH0 = UH0_0 │
00:04:27 #9636 [Verbose] > │ let v7 : UH0 = UH0_1(9, v6) │
00:04:27 #9637 [Verbose] > │ let v8 : UH0 = UH0_1(7, v7) │
00:04:27 #9638 [Verbose] > │ let v9 : UH0 = UH0_1(5, v8) │
00:04:27 #9639 [Verbose] > │ let v10 : UH0 = UH0_1(3, v9) │
00:04:27 #9640 [Verbose] > │ let v11 : UH0 = UH0_1(1, v10) │
00:04:27 #9641 [Verbose] > │ let v12 : UH1 = UH1_0 │
00:04:27 #9642 [Verbose] > │ let v13 : UH1 = UH1_1(false, v11, v12) │
00:04:27 #9643 [Verbose] > │ let v14 : UH1 = UH1_1(true, v5, v13) │
00:04:27 #9644 [Verbose] > │ let v15 : string = $"%A{v14}" │
00:04:27 #9645 [Verbose] > │ System.Console.WriteLine v15 │
00:04:27 #9646 [Verbose] > │ let v112 : UH0 = UH0_0 │
00:04:27 #9647 [Verbose] > │ let v113 : UH0 = UH0_1(8, v112) │
00:04:27 #9648 [Verbose] > │ let v114 : UH0 = UH0_1(6, v113) │
00:04:27 #9649 [Verbose] > │ let v115 : UH0 = UH0_1(4, v114) │
00:04:27 #9650 [Verbose] > │ let v116 : UH0 = UH0_1(2, v115) │
00:04:27 #9651 [Verbose] > │ let v117 : UH0 = UH0_1(0, v116) │
00:04:27 #9652 [Verbose] > │ let v118 : UH0 = UH0_0 │
00:04:27 #9653 [Verbose] > │ let v119 : UH0 = UH0_1(9, v118) │
00:04:27 #9654 [Verbose] > │ let v120 : UH0 = UH0_1(7, v119) │
00:04:27 #9655 [Verbose] > │ let v121 : UH0 = UH0_1(5, v120) │
00:04:27 #9656 [Verbose] > │ let v122 : UH0 = UH0_1(3, v121) │
00:04:27 #9657 [Verbose] > │ let v123 : UH0 = UH0_1(1, v122) │
00:04:27 #9658 [Verbose] > │ let v124 : UH1 = UH1_0 │
00:04:27 #9659 [Verbose] > │ let v125 : UH1 = UH1_1(false, v123, v124) │
00:04:27 #9660 [Verbose] > │ let v126 : UH1 = UH1_1(true, v117, v125) │
00:04:27 #9661 [Verbose] > │ let v127 : UH0 = UH0_0 │
00:04:27 #9662 [Verbose] > │ let v128 : UH0 = UH0_1(8, v127) │
00:04:27 #9663 [Verbose] > │ let v129 : UH0 = UH0_1(6, v128) │
00:04:27 #9664 [Verbose] > │ let v130 : UH0 = UH0_1(4, v129) │
00:04:27 #9665 [Verbose] > │ let v131 : UH0 = UH0_1(2, v130) │
00:04:27 #9666 [Verbose] > │ let v132 : UH0 = UH0_1(0, v131) │
00:04:27 #9667 [Verbose] > │ let v133 : UH0 = UH0_0 │
00:04:27 #9668 [Verbose] > │ let v134 : UH0 = UH0_1(9, v133) │
00:04:27 #9669 [Verbose] > │ let v135 : UH0 = UH0_1(7, v134) │
00:04:27 #9670 [Verbose] > │ let v136 : UH0 = UH0_1(5, v135) │
00:04:27 #9671 [Verbose] > │ let v137 : UH0 = UH0_1(3, v136) │
00:04:27 #9672 [Verbose] > │ let v138 : UH0 = UH0_1(1, v137) │
00:04:27 #9673 [Verbose] > │ let v139 : UH1 = UH1_0 │
00:04:27 #9674 [Verbose] > │ let v140 : UH1 = UH1_1(false, v138, v139) │
00:04:27 #9675 [Verbose] > │ let v141 : UH1 = UH1_1(true, v132, v140) │
00:04:27 #9676 [Verbose] > │ let v142 : string = $"__expect / actual: %A{v126} / expected: %A{v141}" │
00:04:27 #9677 [Verbose] > │ () │
00:04:27 #9678 [Verbose] > │ method0() │
00:04:27 #9679 [Verbose] > │ │
00:04:27 #9680 [Verbose] > │ UH1_1 │
00:04:27 #9681 [Verbose] > │ (true, UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, UH0_1 (8, UH0_0))))), │
00:04:27 #9682 [Verbose] > │ UH1_1 │
00:04:27 #9683 [Verbose] > │ (false, UH0_1 (1, UH0_1 (3, UH0_1 (5, UH0_1 (7, UH0_1 (9, UH0_0))))), │
00:04:27 #9684 [Verbose] > │ UH1_0)) │
00:04:27 #9685 [Verbose] > │ │
00:04:27 #9686 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:27 #9687 [Verbose] >
00:04:27 #9688 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:27 #9689 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:27 #9690 [Verbose] > │ ## forall' │
00:04:27 #9691 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:27 #9692 [Verbose] >
00:04:27 #9693 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:27 #9694 [Verbose] > inl forall' fn (head :: tail) =
00:04:27 #9695 [Verbose] > (true, tail)
00:04:27 #9696 [Verbose] > ||> listm.fold fun acc x =>
00:04:27 #9697 [Verbose] > acc && x = head
00:04:27 #9698 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5937-3782-324de55e8cf4\main.spi
00:04:27 #9699 [Verbose] >
00:04:27 #9700 [Verbose] > ╭─[ 245.09ms - stdout ]────────────────────────────────────────────────────────╮
00:04:27 #9701 [Verbose] > │ () │
00:04:27 #9702 [Verbose] > │ │
00:04:27 #9703 [Verbose] > │ │
00:04:27 #9704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:27 #9705 [Verbose] >
00:04:27 #9706 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:27 #9707 [Verbose] > // // test
00:04:27 #9708 [Verbose] >
00:04:27 #9709 [Verbose] > [[ 1i32; 1; 1; 1; 1 ]]
00:04:27 #9710 [Verbose] > |> forall' ((=) 1i32)
00:04:27 #9711 [Verbose] > |> _assert_eq true
00:04:27 #9712 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5962-6253-601a3879d3cb\main.spi
00:04:27 #9713 [Verbose] >
00:04:27 #9714 [Verbose] > ╭─[ 242.05ms - stdout ]────────────────────────────────────────────────────────╮
00:04:27 #9715 [Verbose] > │ let rec method0 () : unit = │
00:04:27 #9716 [Verbose] > │ let v0 : string = $"%A{true}" │
00:04:27 #9717 [Verbose] > │ System.Console.WriteLine v0 │
00:04:27 #9718 [Verbose] > │ let v1 : string = $"__expect / actual: %A{true} / expected: %A{true}" │
00:04:27 #9719 [Verbose] > │ () │
00:04:27 #9720 [Verbose] > │ method0() │
00:04:27 #9721 [Verbose] > │ │
00:04:27 #9722 [Verbose] > │ true │
00:04:27 #9723 [Verbose] > │ │
00:04:27 #9724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:27 #9725 [Verbose] >
00:04:27 #9726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:27 #9727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:27 #9728 [Verbose] > │ ## last │
00:04:27 #9729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:27 #9730 [Verbose] >
00:04:27 #9731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:27 #9732 [Verbose] > inl last list =
00:04:27 #9733 [Verbose] > list
00:04:27 #9734 [Verbose] > |> listm.rev
00:04:27 #9735 [Verbose] > |> item 0i32
00:04:27 #9736 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5987-8773-880347694352\main.spi
00:04:27 #9737 [Verbose] >
00:04:27 #9738 [Verbose] > ╭─[ 228.84ms - stdout ]────────────────────────────────────────────────────────╮
00:04:27 #9739 [Verbose] > │ () │
00:04:27 #9740 [Verbose] > │ │
00:04:27 #9741 [Verbose] > │ │
00:04:27 #9742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:27 #9743 [Verbose] >
00:04:27 #9744 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:27 #9745 [Verbose] > // // test
00:04:27 #9746 [Verbose] >
00:04:27 #9747 [Verbose] > listm.init 10i32 id
00:04:27 #9748 [Verbose] > |> last
00:04:27 #9749 [Verbose] > |> _assert_eq 9
00:04:27 #9750 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-0010-1082-1978deea3ec5\main.spi
00:04:28 #9751 [Verbose] >
00:04:28 #9752 [Verbose] > ╭─[ 247.71ms - stdout ]────────────────────────────────────────────────────────╮
00:04:28 #9753 [Verbose] > │ let rec method0 () : unit = │
00:04:28 #9754 [Verbose] > │ let v0 : string = $"%A{9}" │
00:04:28 #9755 [Verbose] > │ System.Console.WriteLine v0 │
00:04:28 #9756 [Verbose] > │ let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}" │
00:04:28 #9757 [Verbose] > │ () │
00:04:28 #9758 [Verbose] > │ method0() │
00:04:28 #9759 [Verbose] > │ │
00:04:28 #9760 [Verbose] > │ 9 │
00:04:28 #9761 [Verbose] > │ │
00:04:28 #9762 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:28 #9763 [Verbose] >
00:04:28 #9764 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:28 #9765 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:28 #9766 [Verbose] > │ ## try_pick │
00:04:28 #9767 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:28 #9768 [Verbose] >
00:04:28 #9769 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:28 #9770 [Verbose] > inl try_pick fn list =
00:04:28 #9771 [Verbose] > inl rec body fn = function
00:04:28 #9772 [Verbose] > | [[]] => None
00:04:28 #9773 [Verbose] > | x :: xs =>
00:04:28 #9774 [Verbose] > match fn x with
00:04:28 #9775 [Verbose] > | Some y => Some y
00:04:28 #9776 [Verbose] > | None => loop xs
00:04:28 #9777 [Verbose] > and inl loop list =
00:04:28 #9778 [Verbose] > if var_is list |> not
00:04:28 #9779 [Verbose] > then body fn list
00:04:28 #9780 [Verbose] > else
00:04:28 #9781 [Verbose] > inl fn = join fn
00:04:28 #9782 [Verbose] > inl list = dyn list
00:04:28 #9783 [Verbose] > join body fn list
00:04:28 #9784 [Verbose] > loop list
00:04:28 #9785 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-0036-3642-3aae3465b65e\main.spi
00:04:28 #9786 [Verbose] >
00:04:28 #9787 [Verbose] > ╭─[ 412.55ms - stdout ]────────────────────────────────────────────────────────╮
00:04:28 #9788 [Verbose] > │ () │
00:04:28 #9789 [Verbose] > │ │
00:04:28 #9790 [Verbose] > │ │
00:04:28 #9791 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:28 #9792 [Verbose] >
00:04:28 #9793 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:28 #9794 [Verbose] > // // test
00:04:28 #9795 [Verbose] >
00:04:28 #9796 [Verbose] > listm.init 10i32 id
00:04:28 #9797 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)
00:04:28 #9798 [Verbose] > |> _assert_eq (Some 5i32)
00:04:28 #9799 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-0077-7781-7d64b4b5a931\main.spi
00:04:28 #9800 [Verbose] >
00:04:28 #9801 [Verbose] > ╭─[ 270.58ms - stdout ]────────────────────────────────────────────────────────╮
00:04:28 #9802 [Verbose] > │ type [<Struct>] US0 = │
00:04:28 #9803 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:04:28 #9804 [Verbose] > │ | US0_1 │
00:04:28 #9805 [Verbose] > │ let rec method0 () : unit = │
00:04:28 #9806 [Verbose] > │ let v0 : US0 = US0_0(5) │
00:04:28 #9807 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:04:28 #9808 [Verbose] > │ System.Console.WriteLine v1 │
00:04:28 #9809 [Verbose] > │ let v5 : US0 = US0_0(5) │
00:04:28 #9810 [Verbose] > │ let v6 : US0 = US0_0(5) │
00:04:28 #9811 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:04:28 #9812 [Verbose] > │ () │
00:04:28 #9813 [Verbose] > │ method0() │
00:04:28 #9814 [Verbose] > │ │
00:04:28 #9815 [Verbose] > │ US0_0 5 │
00:04:28 #9816 [Verbose] > │ │
00:04:28 #9817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:31 #9818 [Verbose] > [NbConvertApp] Converting notebook listm'.dib.ipynb to html
00:04:31 #9819 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:04:31 #9820 [Verbose] > validate(nb)
00:04:32 #9821 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:04:32 #9822 [Verbose] > return _pygments_highlight(
00:04:32 #9823 [Verbose] > [NbConvertApp] Writing 384035 bytes to listm'.dib.html
00:04:33 #9824 [Debug] executeAsync / exitCode: 0 / output.Length: 75202
00:04:33 #9825 [Debug] main / executeCommand / exitCode: 0
00:04:33 #9826 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 benchmark.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:04:36 #9827 [Verbose] >
00:04:37 #9828 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:37 #9829 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:37 #9830 [Verbose] > │ ## benchmark (Polyglot) │
00:04:37 #9831 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:37 #9832 [Verbose] >
00:04:37 #9833 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:37 #9834 [Verbose] > // // test
00:04:37 #9835 [Verbose] >
00:04:37 #9836 [Verbose] > open testing
00:04:40 #9837 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1238-3847-348ad8f6adf8\main.spi
00:04:42 #9838 [Verbose] >
00:04:42 #9839 [Verbose] > ╭─[ 4.95s - stdout ]───────────────────────────────────────────────────────────╮
00:04:42 #9840 [Verbose] > │ () │
00:04:42 #9841 [Verbose] > │ │
00:04:42 #9842 [Verbose] > │ │
00:04:42 #9843 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9844 [Verbose] >
00:04:42 #9845 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:42 #9846 [Verbose] > inl (/@) x = listm'.(/@) x
00:04:42 #9847 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1435-3509-305125462abc\main.spi
00:04:42 #9848 [Verbose] >
00:04:42 #9849 [Verbose] > ╭─[ 205.04ms - stdout ]────────────────────────────────────────────────────────╮
00:04:42 #9850 [Verbose] > │ () │
00:04:42 #9851 [Verbose] > │ │
00:04:42 #9852 [Verbose] > │ │
00:04:42 #9853 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9854 [Verbose] >
00:04:42 #9855 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:42 #9856 [Verbose] > inl gc_collect () =
00:04:42 #9857 [Verbose] > run_target function
00:04:42 #9858 [Verbose] > | Fsharp _ => fun () => $"System.GC.Collect ()"
00:04:42 #9859 [Verbose] > | _ => fun () => ()
00:04:42 #9860 [Verbose] >
00:04:42 #9861 [Verbose] > inl printfn x =
00:04:42 #9862 [Verbose] > console.write_line x
00:04:42 #9863 [Verbose] >
00:04:42 #9864 [Verbose] > nominal stopwatch = $"System.Diagnostics.Stopwatch"
00:04:42 #9865 [Verbose] >
00:04:42 #9866 [Verbose] > inl stopwatch () : stopwatch =
00:04:42 #9867 [Verbose] > $"`stopwatch" ()
00:04:42 #9868 [Verbose] >
00:04:42 #9869 [Verbose] > inl stopwatch_elapsed_milliseconds (stopwatch : stopwatch) : i64 =
00:04:42 #9870 [Verbose] > $"!stopwatch.ElapsedMilliseconds"
00:04:42 #9871 [Verbose] >
00:04:42 #9872 [Verbose] > inl stopwatch_start (stopwatch : stopwatch) : () =
00:04:42 #9873 [Verbose] > $"!stopwatch.Start ()"
00:04:42 #9874 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1455-5523-5d9c1fa67c29\main.spi
00:04:42 #9875 [Verbose] >
00:04:42 #9876 [Verbose] > ╭─[ 213.08ms - stdout ]────────────────────────────────────────────────────────╮
00:04:42 #9877 [Verbose] > │ () │
00:04:42 #9878 [Verbose] > │ │
00:04:42 #9879 [Verbose] > │ │
00:04:42 #9880 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9881 [Verbose] >
00:04:42 #9882 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:42 #9883 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:42 #9884 [Verbose] > │ ## test_case_result │
00:04:42 #9885 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9886 [Verbose] >
00:04:42 #9887 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:42 #9888 [Verbose] > type test_case_result =
00:04:42 #9889 [Verbose] > {
00:04:42 #9890 [Verbose] > Input : string
00:04:42 #9891 [Verbose] > Expected : string
00:04:42 #9892 [Verbose] > Result : string
00:04:42 #9893 [Verbose] > TimeList : a u64 i64
00:04:42 #9894 [Verbose] > }
00:04:42 #9895 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1477-7707-73978dbe5804\main.spi
00:04:42 #9896 [Verbose] >
00:04:42 #9897 [Verbose] > ╭─[ 241.97ms - stdout ]────────────────────────────────────────────────────────╮
00:04:42 #9898 [Verbose] > │ () │
00:04:42 #9899 [Verbose] > │ │
00:04:42 #9900 [Verbose] > │ │
00:04:42 #9901 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9902 [Verbose] >
00:04:42 #9903 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:42 #9904 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:42 #9905 [Verbose] > │ ## run │
00:04:42 #9906 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9907 [Verbose] >
00:04:42 #9908 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:42 #9909 [Verbose] > inl run forall input expected.
00:04:42 #9910 [Verbose] > count
00:04:42 #9911 [Verbose] > (solutions : list (string * (input -> expected)))
00:04:42 #9912 [Verbose] > ((input, expected) : (input * expected))
00:04:42 #9913 [Verbose] > : test_case_result
00:04:42 #9914 [Verbose] > =
00:04:42 #9915 [Verbose] > inl input_str = input |> sm'.format_debug
00:04:42 #9916 [Verbose] >
00:04:42 #9917 [Verbose] > printfn ""
00:04:42 #9918 [Verbose] > printfn ($"$\"Solution: {!input_str} \"" : string)
00:04:42 #9919 [Verbose] >
00:04:42 #9920 [Verbose] > inl performance_invoke (fn : () -> expected) =
00:04:42 #9921 [Verbose] > gc_collect ()
00:04:42 #9922 [Verbose] > inl stopwatch = stopwatch ()
00:04:42 #9923 [Verbose] > stopwatch |> stopwatch_start
00:04:42 #9924 [Verbose] > inl time1 = stopwatch |> stopwatch_elapsed_milliseconds
00:04:42 #9925 [Verbose] > inl result : expected =
00:04:42 #9926 [Verbose] > am'.init_series 0 count 1i32
00:04:42 #9927 [Verbose] > |> am'.parallel_map fun _n => fn ()
00:04:42 #9928 [Verbose] > |> am'.last
00:04:42 #9929 [Verbose] > inl time2 = (stopwatch |> stopwatch_elapsed_milliseconds) - time1
00:04:42 #9930 [Verbose] > result, time2
00:04:42 #9931 [Verbose] >
00:04:42 #9932 [Verbose] > inl results_with_time : a u64 _ =
00:04:42 #9933 [Verbose] > solutions
00:04:42 #9934 [Verbose] > |> listm'.indexed
00:04:42 #9935 [Verbose] > |> listm.toArray
00:04:42 #9936 [Verbose] > |> am.map fun ((i : i32), (test_name, solution)) =>
00:04:42 #9937 [Verbose] > inl result, time = performance_invoke fun () => solution input
00:04:42 #9938 [Verbose] > printfn ($"$\"Test case {!i + 1}. {!test_name}. Time: {!time} \"" :
00:04:42 #9939 [Verbose] > string)
00:04:42 #9940 [Verbose] > result, time
00:04:42 #9941 [Verbose] >
00:04:42 #9942 [Verbose] > match results_with_time |> am.map fst with
00:04:42 #9943 [Verbose] > | array when length array <= 1 => ()
00:04:42 #9944 [Verbose] > | array when array |> am.forall' ((=) (index array 0)) => ()
00:04:42 #9945 [Verbose] > | results => failwith ($"$\"Challenge error: {!results}\"" : string)
00:04:42 #9946 [Verbose] >
00:04:42 #9947 [Verbose] > {
00:04:42 #9948 [Verbose] > Input = input_str
00:04:42 #9949 [Verbose] > Expected = expected |> sm'.format_debug
00:04:42 #9950 [Verbose] > Result = results_with_time |> am.map fst |> fun array => index array 0
00:04:42 #9951 [Verbose] > |> sm'.format_debug
00:04:42 #9952 [Verbose] > TimeList = results_with_time |> am.map snd
00:04:42 #9953 [Verbose] > }
00:04:42 #9954 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1501-0194-0367215b9ea6\main.spi
00:04:42 #9955 [Verbose] >
00:04:42 #9956 [Verbose] > ╭─[ 218.30ms - stdout ]────────────────────────────────────────────────────────╮
00:04:42 #9957 [Verbose] > │ () │
00:04:42 #9958 [Verbose] > │ │
00:04:42 #9959 [Verbose] > │ │
00:04:42 #9960 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9961 [Verbose] >
00:04:42 #9962 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:42 #9963 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:42 #9964 [Verbose] > │ ## run_all │
00:04:42 #9965 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:42 #9966 [Verbose] >
00:04:42 #9967 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:42 #9968 [Verbose] > inl run_all forall input expected.
00:04:42 #9969 [Verbose] > test_name
00:04:42 #9970 [Verbose] > count
00:04:42 #9971 [Verbose] > (solutions : list (string * (input -> expected)))
00:04:42 #9972 [Verbose] > test_cases
00:04:42 #9973 [Verbose] > =
00:04:42 #9974 [Verbose] > printfn ""
00:04:42 #9975 [Verbose] > printfn ""
00:04:42 #9976 [Verbose] > printfn ($"$\"Test: {!test_name}\"" : string)
00:04:42 #9977 [Verbose] > test_cases
00:04:42 #9978 [Verbose] > |> listm.toArray
00:04:42 #9979 [Verbose] > |> am.map (run count solutions)
00:04:43 #9980 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1524-2435-22676a2398e7\main.spi
00:04:43 #9981 [Verbose] >
00:04:43 #9982 [Verbose] > ╭─[ 207.41ms - stdout ]────────────────────────────────────────────────────────╮
00:04:43 #9983 [Verbose] > │ () │
00:04:43 #9984 [Verbose] > │ │
00:04:43 #9985 [Verbose] > │ │
00:04:43 #9986 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:43 #9987 [Verbose] >
00:04:43 #9988 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:43 #9989 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:43 #9990 [Verbose] > │ ## sort_result_list │
00:04:43 #9991 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:43 #9992 [Verbose] >
00:04:43 #9993 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:43 #9994 [Verbose] > inl sort_result_list results =
00:04:43 #9995 [Verbose] > inl table =
00:04:43 #9996 [Verbose] > inl rows =
00:04:43 #9997 [Verbose] > results
00:04:43 #9998 [Verbose] > |> am.map fun (result : test_case_result) =>
00:04:43 #9999 [Verbose] > inl best =
00:04:43 #10000 [Verbose] > result.TimeList
00:04:43 #10001 [Verbose] > |> am'.indexed
00:04:43 #10002 [Verbose] > |> am.map fun (i, time) =>
00:04:43 #10003 [Verbose] > i + 1i64, time
00:04:43 #10004 [Verbose] > |> am'.sort_by snd
00:04:43 #10005 [Verbose] > |> fun array => index array 0i32
00:04:43 #10006 [Verbose] > |> sm'.format_debug
00:04:43 #10007 [Verbose] > inl row =
00:04:43 #10008 [Verbose] > [[
00:04:43 #10009 [Verbose] > result.Input
00:04:43 #10010 [Verbose] > result.Expected
00:04:43 #10011 [Verbose] > result.Result
00:04:43 #10012 [Verbose] > best
00:04:43 #10013 [Verbose] > ]]
00:04:43 #10014 [Verbose] > inl color : option console.console_color =
00:04:43 #10015 [Verbose] > open console
00:04:43 #10016 [Verbose] > match result.Expected = result.Result with
00:04:43 #10017 [Verbose] > | true => Some $"`console_color.DarkGreen"
00:04:43 #10018 [Verbose] > | false => Some $"`console_color.DarkRed"
00:04:43 #10019 [Verbose] > row, color
00:04:43 #10020 [Verbose] >
00:04:43 #10021 [Verbose] > inl header =
00:04:43 #10022 [Verbose] > [[
00:04:43 #10023 [Verbose] > [[
00:04:43 #10024 [Verbose] > "Input"
00:04:43 #10025 [Verbose] > "Expected"
00:04:43 #10026 [Verbose] > "Result"
00:04:43 #10027 [Verbose] > "Best"
00:04:43 #10028 [Verbose] > ]]
00:04:43 #10029 [Verbose] > [[
00:04:43 #10030 [Verbose] > "---"
00:04:43 #10031 [Verbose] > "---"
00:04:43 #10032 [Verbose] > "---"
00:04:43 #10033 [Verbose] > "---"
00:04:43 #10034 [Verbose] > ]]
00:04:43 #10035 [Verbose] > ]]
00:04:43 #10036 [Verbose] > |> listm.map fun row => row, None
00:04:43 #10037 [Verbose] > |> listm.toArray
00:04:43 #10038 [Verbose] > rows |> am.append header
00:04:43 #10039 [Verbose] >
00:04:43 #10040 [Verbose] > inl formattedTable =
00:04:43 #10041 [Verbose] > inl lengthMap : mapm.map i32 i64 =
00:04:43 #10042 [Verbose] > table
00:04:43 #10043 [Verbose] > |> am.map (fst >> listm.toArray)
00:04:43 #10044 [Verbose] > |> am'.transpose
00:04:43 #10045 [Verbose] > |> am.map fun column =>
00:04:43 #10046 [Verbose] > column
00:04:43 #10047 [Verbose] > |> am.map sm.length
00:04:43 #10048 [Verbose] > |> am'.sort_descending
00:04:43 #10049 [Verbose] > |> am'.try_item 0i32
00:04:43 #10050 [Verbose] > |> optionm'.default_value 0i64
00:04:43 #10051 [Verbose] > |> am'.indexed
00:04:43 #10052 [Verbose] > |> fun (x : a i32 _) => x
00:04:43 #10053 [Verbose] > |> mapm.of_array
00:04:43 #10054 [Verbose] > table
00:04:43 #10055 [Verbose] > |> am.map fun (row, color) =>
00:04:43 #10056 [Verbose] > inl newRow =
00:04:43 #10057 [Verbose] > row
00:04:43 #10058 [Verbose] > |> listm'.indexed
00:04:43 #10059 [Verbose] > |> listm.map fun (i, cell) =>
00:04:43 #10060 [Verbose] > cell |> sm'.pad_right (lengthMap |> mapm.item i |> conv)
00:04:43 #10061 [Verbose] > |> listm.toArray
00:04:43 #10062 [Verbose] > newRow, color
00:04:43 #10063 [Verbose] >
00:04:43 #10064 [Verbose] > printfn ""
00:04:43 #10065 [Verbose] > formattedTable
00:04:43 #10066 [Verbose] > |> am.iter fun ((row : a i32 string), color) =>
00:04:43 #10067 [Verbose] > match color with
00:04:43 #10068 [Verbose] > | Some color => color |> console.set_foreground_color
00:04:43 #10069 [Verbose] > | None => console.reset_color ()
00:04:43 #10070 [Verbose] >
00:04:43 #10071 [Verbose] > printfn (row |> sm'.join' "\t| ")
00:04:43 #10072 [Verbose] >
00:04:43 #10073 [Verbose] > console.reset_color ()
00:04:43 #10074 [Verbose] >
00:04:43 #10075 [Verbose] > inl averages : a u64 _ =
00:04:43 #10076 [Verbose] > results
00:04:43 #10077 [Verbose] > |> am.map fun result =>
00:04:43 #10078 [Verbose] > result.TimeList
00:04:43 #10079 [Verbose] > |> am.map ($"float" : i64 -> f64)
00:04:43 #10080 [Verbose] > |> am'.transpose
00:04:43 #10081 [Verbose] > |> am.map am'.average
00:04:43 #10082 [Verbose] > |> am.map ($"int64" : f64 -> i64)
00:04:43 #10083 [Verbose] > |> am'.indexed
00:04:43 #10084 [Verbose] >
00:04:43 #10085 [Verbose] > printfn ""
00:04:43 #10086 [Verbose] > printfn "Average Ranking "
00:04:43 #10087 [Verbose] > averages
00:04:43 #10088 [Verbose] > |> am'.sort_by snd
00:04:43 #10089 [Verbose] > |> am.iter fun ((i : i32), avg) =>
00:04:43 #10090 [Verbose] > printfn ($"$\"Test case %d{!i + 1}. Average Time: %A{!avg} \"" :
00:04:43 #10091 [Verbose] > string)
00:04:43 #10092 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1545-4581-469502926278\main.spi
00:04:43 #10093 [Verbose] >
00:04:43 #10094 [Verbose] > ╭─[ 227.81ms - stdout ]────────────────────────────────────────────────────────╮
00:04:43 #10095 [Verbose] > │ () │
00:04:43 #10096 [Verbose] > │ │
00:04:43 #10097 [Verbose] > │ │
00:04:43 #10098 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:43 #10099 [Verbose] >
00:04:43 #10100 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:43 #10101 [Verbose] > // // test
00:04:43 #10102 [Verbose] >
00:04:43 #10103 [Verbose] > inl is_fast () =
00:04:43 #10104 [Verbose] > false
00:04:43 #10105 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1568-6870-6cb9a98996d8\main.spi
00:04:43 #10106 [Verbose] >
00:04:43 #10107 [Verbose] > ╭─[ 220.73ms - stdout ]────────────────────────────────────────────────────────╮
00:04:43 #10108 [Verbose] > │ () │
00:04:43 #10109 [Verbose] > │ │
00:04:43 #10110 [Verbose] > │ │
00:04:43 #10111 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:43 #10112 [Verbose] >
00:04:43 #10113 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:43 #10114 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:43 #10115 [Verbose] > │ ## empty2Tests │
00:04:43 #10116 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:43 #10117 [Verbose] >
00:04:43 #10118 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:43 #10119 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:43 #10120 [Verbose] > │ Test: Empty2 │
00:04:43 #10121 [Verbose] > │ │
00:04:43 #10122 [Verbose] > │ Solution: (a, a) │
00:04:43 #10123 [Verbose] > │ Test case 1. A. Time: 59L │
00:04:43 #10124 [Verbose] > │ │
00:04:43 #10125 [Verbose] > │ Solution: (a, a) │
00:04:43 #10126 [Verbose] > │ Test case 1. A. Time: 53L │
00:04:43 #10127 [Verbose] > │ │
00:04:43 #10128 [Verbose] > │ Input | Expected | Result | Best │
00:04:43 #10129 [Verbose] > │ --- | --- | --- | --- │
00:04:43 #10130 [Verbose] > │ (a, a) | a | a | (1, 59) │
00:04:43 #10131 [Verbose] > │ (a, a) | a | a | (1, 53) │
00:04:43 #10132 [Verbose] > │ │
00:04:43 #10133 [Verbose] > │ Averages │
00:04:43 #10134 [Verbose] > │ Test case 1. Average Time: 56L │
00:04:43 #10135 [Verbose] > │ │
00:04:43 #10136 [Verbose] > │ Ranking │
00:04:43 #10137 [Verbose] > │ Test case 1. Average Time: 56L │
00:04:43 #10138 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:43 #10139 [Verbose] >
00:04:43 #10140 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:43 #10141 [Verbose] > // // test
00:04:43 #10142 [Verbose] >
00:04:43 #10143 [Verbose] > inl get_solutions () =
00:04:43 #10144 [Verbose] > [[
00:04:43 #10145 [Verbose] > "A",
00:04:43 #10146 [Verbose] > fun (a, _b) =>
00:04:43 #10147 [Verbose] > a
00:04:43 #10148 [Verbose] >
00:04:43 #10149 [Verbose] > "B",
00:04:43 #10150 [Verbose] > fun (_a, b) =>
00:04:43 #10151 [Verbose] > b
00:04:43 #10152 [Verbose] > ]]
00:04:43 #10153 [Verbose] >
00:04:43 #10154 [Verbose] > inl rec empty_2_tests () =
00:04:43 #10155 [Verbose] > inl test_cases = [[
00:04:43 #10156 [Verbose] > ("a", "a"), "a"
00:04:43 #10157 [Verbose] > ("b", "b"), "b"
00:04:43 #10158 [Verbose] > ]]
00:04:43 #10159 [Verbose] >
00:04:43 #10160 [Verbose] > inl solutions = get_solutions ()
00:04:43 #10161 [Verbose] >
00:04:43 #10162 [Verbose] > // inl is_fast () = true
00:04:43 #10163 [Verbose] >
00:04:43 #10164 [Verbose] > inl count =
00:04:43 #10165 [Verbose] > if is_fast ()
00:04:43 #10166 [Verbose] > then 1000i32
00:04:43 #10167 [Verbose] > else 2000000i32
00:04:43 #10168 [Verbose] >
00:04:43 #10169 [Verbose] > run_all (nameof empty_2_tests) count solutions test_cases
00:04:43 #10170 [Verbose] > |> sort_result_list
00:04:43 #10171 [Verbose] >
00:04:43 #10172 [Verbose] > empty_2_tests ()
00:04:43 #10173 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1593-9309-9aff08780736\main.spi
00:04:57 #10174 [Verbose] >
00:04:57 #10175 [Verbose] > ╭─[ 13.66s - stdout ]──────────────────────────────────────────────────────────╮
00:04:57 #10176 [Verbose] > │ type UH0 = │
00:04:57 #10177 [Verbose] > │ | UH0_0 │
00:04:57 #10178 [Verbose] > │ | UH0_1 of string * string * string * UH0 │
00:04:57 #10179 [Verbose] > │ and Mut0 = {mutable l0 : uint64} │
00:04:57 #10180 [Verbose] > │ and UH1 = │
00:04:57 #10181 [Verbose] > │ | UH1_0 │
00:04:57 #10182 [Verbose] > │ | UH1_1 of int32 * string * (struct (string * string) -> string) * UH1 │
00:04:57 #10183 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:04:57 #10184 [Verbose] > │ and UH2 = │
00:04:57 #10185 [Verbose] > │ | UH2_0 │
00:04:57 #10186 [Verbose] > │ | UH2_1 of string * UH2 │
00:04:57 #10187 [Verbose] > │ and [<Struct>] US0 = │
00:04:57 #10188 [Verbose] > │ | US0_0 of f0_0 : System.ConsoleColor │
00:04:57 #10189 [Verbose] > │ | US0_1 │
00:04:57 #10190 [Verbose] > │ and UH3 = │
00:04:57 #10191 [Verbose] > │ | UH3_0 │
00:04:57 #10192 [Verbose] > │ | UH3_1 of int64 * int64 * UH3 │
00:04:57 #10193 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64} │
00:04:57 #10194 [Verbose] > │ and UH4 = │
00:04:57 #10195 [Verbose] > │ | UH4_0 │
00:04:57 #10196 [Verbose] > │ | UH4_1 of UH2 * US0 * UH4 │
00:04:57 #10197 [Verbose] > │ and [<Struct>] US1 = │
00:04:57 #10198 [Verbose] > │ | US1_0 of f0_0 : int64 │
00:04:57 #10199 [Verbose] > │ | US1_1 │
00:04:57 #10200 [Verbose] > │ and UH5 = │
00:04:57 #10201 [Verbose] > │ | UH5_0 │
00:04:57 #10202 [Verbose] > │ | UH5_1 of int32 * int64 * UH5 │
00:04:57 #10203 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32} │
00:04:57 #10204 [Verbose] > │ and UH6 = │
00:04:57 #10205 [Verbose] > │ | UH6_0 │
00:04:57 #10206 [Verbose] > │ | UH6_1 of int32 * string * UH6 │
00:04:57 #10207 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 = │
00:04:57 #10208 [Verbose] > │ match v0 with │
00:04:57 #10209 [Verbose] > │ | UH0_1(v2, v3, v4, v5) -> (* Cons *) │
00:04:57 #10210 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:04:57 #10211 [Verbose] > │ method2(v5, v6) │
00:04:57 #10212 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:04:57 #10213 [Verbose] > │ v1 │
00:04:57 #10214 [Verbose] > │ and method3 (v0 : (struct (string * string * string) []), v1 : UH0, v2 : │
00:04:57 #10215 [Verbose] > │ uint64) : uint64 = │
00:04:57 #10216 [Verbose] > │ match v1 with │
00:04:57 #10217 [Verbose] > │ | UH0_1(v3, v4, v5, v6) -> (* Cons *) │
00:04:57 #10218 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:04:57 #10219 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:04:57 #10220 [Verbose] > │ method3(v0, v6, v7) │
00:04:57 #10221 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:04:57 #10222 [Verbose] > │ v2 │
00:04:57 #10223 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string * string) []) = │
00:04:57 #10224 [Verbose] > │ let v1 : uint64 = 0UL │
00:04:57 #10225 [Verbose] > │ let v2 : uint64 = method2(v0, v1) │
00:04:57 #10226 [Verbose] > │ let v3 : (struct (string * string * string) []) = │
00:04:57 #10227 [Verbose] > │ Array.zeroCreate<struct (string * string * string)> │
00:04:57 #10228 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:04:57 #10229 [Verbose] > │ let v4 : uint64 = 0UL │
00:04:57 #10230 [Verbose] > │ let v5 : uint64 = method3(v3, v0, v4) │
00:04:57 #10231 [Verbose] > │ v3 │
00:04:57 #10232 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool = │
00:04:57 #10233 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:04:57 #10234 [Verbose] > │ let v3 : bool = v2 < v0 │
00:04:57 #10235 [Verbose] > │ v3 │
00:04:57 #10236 [Verbose] > │ and closure1 () struct (v0 : string, v1 : string) : string = │
00:04:57 #10237 [Verbose] > │ v0 │
00:04:57 #10238 [Verbose] > │ and closure2 () struct (v0 : string, v1 : string) : string = │
00:04:57 #10239 [Verbose] > │ v1 │
00:04:57 #10240 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 = │
00:04:57 #10241 [Verbose] > │ match v0 with │
00:04:57 #10242 [Verbose] > │ | UH1_1(v2, v3, v4, v5) -> (* Cons *) │
00:04:57 #10243 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:04:57 #10244 [Verbose] > │ method6(v5, v6) │
00:04:57 #10245 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:04:57 #10246 [Verbose] > │ v1 │
00:04:57 #10247 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (struct (string * string) -> │
00:04:57 #10248 [Verbose] > │ string)) []), v1 : UH1, v2 : uint64) : uint64 = │
00:04:57 #10249 [Verbose] > │ match v1 with │
00:04:57 #10250 [Verbose] > │ | UH1_1(v3, v4, v5, v6) -> (* Cons *) │
00:04:57 #10251 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:04:57 #10252 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:04:57 #10253 [Verbose] > │ method7(v0, v6, v7) │
00:04:57 #10254 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:04:57 #10255 [Verbose] > │ v2 │
00:04:57 #10256 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (struct (string * string) │
00:04:57 #10257 [Verbose] > │ -> string)) []) = │
00:04:57 #10258 [Verbose] > │ let v1 : uint64 = 0UL │
00:04:57 #10259 [Verbose] > │ let v2 : uint64 = method6(v0, v1) │
00:04:57 #10260 [Verbose] > │ let v3 : (struct (int32 * string * (struct (string * string) -> string)) │
00:04:57 #10261 [Verbose] > │ []) = Array.zeroCreate<struct (int32 * string * (struct (string * string) -> │
00:04:57 #10262 [Verbose] > │ string))> (System.Convert.ToInt32(v2)) │
00:04:57 #10263 [Verbose] > │ let v4 : uint64 = 0UL │
00:04:57 #10264 [Verbose] > │ let v5 : uint64 = method7(v3, v0, v4) │
00:04:57 #10265 [Verbose] > │ v3 │
00:04:57 #10266 [Verbose] > │ and method8 (v0 : Mut1) : bool = │
00:04:57 #10267 [Verbose] > │ let v1 : int32 = v0.l0 │
00:04:57 #10268 [Verbose] > │ let v2 : bool = v1 < 2000001 │
00:04:57 #10269 [Verbose] > │ v2 │
00:04:57 #10270 [Verbose] > │ and closure3 (v0 : string, v1 : string, v2 : (struct (string * string) -> │
00:04:57 #10271 [Verbose] > │ string)) (v3 : int32) : string = │
00:04:57 #10272 [Verbose] > │ v2 struct (v0, v1) │
00:04:57 #10273 [Verbose] > │ and method9 (v0 : string, v1 : (string []), v2 : uint64) : bool = │
00:04:57 #10274 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:04:57 #10275 [Verbose] > │ let v4 : bool = v2 < v3 │
00:04:57 #10276 [Verbose] > │ if v4 then │
00:04:57 #10277 [Verbose] > │ let v5 : string = v1.[int v2] │
00:04:57 #10278 [Verbose] > │ let v6 : bool = v0 = v5 │
00:04:57 #10279 [Verbose] > │ if v6 then │
00:04:57 #10280 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:04:57 #10281 [Verbose] > │ method9(v0, v1, v7) │
00:04:57 #10282 [Verbose] > │ else │
00:04:57 #10283 [Verbose] > │ false │
00:04:57 #10284 [Verbose] > │ else │
00:04:57 #10285 [Verbose] > │ true │
00:04:57 #10286 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool = │
00:04:57 #10287 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:04:57 #10288 [Verbose] > │ let v3 : bool = v2 < v0 │
00:04:57 #10289 [Verbose] > │ v3 │
00:04:57 #10290 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 = │
00:04:57 #10291 [Verbose] > │ match v0 with │
00:04:57 #10292 [Verbose] > │ | UH3_1(v2, v3, v4) -> (* Cons *) │
00:04:57 #10293 [Verbose] > │ let v5 : UH3 = UH3_1(v2, v3, v1) │
00:04:57 #10294 [Verbose] > │ method11(v4, v5) │
00:04:57 #10295 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:04:57 #10296 [Verbose] > │ v1 │
00:04:57 #10297 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 = │
00:04:57 #10298 [Verbose] > │ match v0 with │
00:04:57 #10299 [Verbose] > │ | UH3_1(v2, v3, v4) -> (* Cons *) │
00:04:57 #10300 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:04:57 #10301 [Verbose] > │ method13(v4, v5) │
00:04:57 #10302 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:04:57 #10303 [Verbose] > │ v1 │
00:04:57 #10304 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) : │
00:04:57 #10305 [Verbose] > │ int32 = │
00:04:57 #10306 [Verbose] > │ match v1 with │
00:04:57 #10307 [Verbose] > │ | UH3_1(v3, v4, v5) -> (* Cons *) │
00:04:57 #10308 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:04:57 #10309 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:04:57 #10310 [Verbose] > │ method14(v0, v5, v6) │
00:04:57 #10311 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:04:57 #10312 [Verbose] > │ v2 │
00:04:57 #10313 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) = │
00:04:57 #10314 [Verbose] > │ let v1 : int32 = 0 │
00:04:57 #10315 [Verbose] > │ let v2 : int32 = method13(v0, v1) │
00:04:57 #10316 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:04:57 #10317 [Verbose] > │ int64)> (v2) │
00:04:57 #10318 [Verbose] > │ let v4 : int32 = 0 │
00:04:57 #10319 [Verbose] > │ let v5 : int32 = method14(v3, v0, v4) │
00:04:57 #10320 [Verbose] > │ v3 │
00:04:57 #10321 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool = │
00:04:57 #10322 [Verbose] > │ let v2 : int32 = v1.l0 │
00:04:57 #10323 [Verbose] > │ let v3 : bool = v2 < v0 │
00:04:57 #10324 [Verbose] > │ v3 │
00:04:57 #10325 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 = │
00:04:57 #10326 [Verbose] > │ v1 │
00:04:57 #10327 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 = │
00:04:57 #10328 [Verbose] > │ match v0 with │
00:04:57 #10329 [Verbose] > │ | UH4_1(v2, v3, v4) -> (* Cons *) │
00:04:57 #10330 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:04:57 #10331 [Verbose] > │ method17(v4, v5) │
00:04:57 #10332 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:04:57 #10333 [Verbose] > │ v1 │
00:04:57 #10334 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64 │
00:04:57 #10335 [Verbose] > │ = │
00:04:57 #10336 [Verbose] > │ match v1 with │
00:04:57 #10337 [Verbose] > │ | UH4_1(v3, v4, v5) -> (* Cons *) │
00:04:57 #10338 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:04:57 #10339 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:04:57 #10340 [Verbose] > │ method18(v0, v5, v6) │
00:04:57 #10341 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:04:57 #10342 [Verbose] > │ v2 │
00:04:57 #10343 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) = │
00:04:57 #10344 [Verbose] > │ let v1 : uint64 = 0UL │
00:04:57 #10345 [Verbose] > │ let v2 : uint64 = method17(v0, v1) │
00:04:57 #10346 [Verbose] > │ let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:04:57 #10347 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:04:57 #10348 [Verbose] > │ let v4 : uint64 = 0UL │
00:04:57 #10349 [Verbose] > │ let v5 : uint64 = method18(v3, v0, v4) │
00:04:57 #10350 [Verbose] > │ v3 │
00:04:57 #10351 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 = │
00:04:57 #10352 [Verbose] > │ match v0 with │
00:04:57 #10353 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:04:57 #10354 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:04:57 #10355 [Verbose] > │ method20(v3, v4) │
00:04:57 #10356 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:04:57 #10357 [Verbose] > │ v1 │
00:04:57 #10358 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:04:57 #10359 [Verbose] > │ match v1 with │
00:04:57 #10360 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:04:57 #10361 [Verbose] > │ v0.[int v2] <- v3 │
00:04:57 #10362 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:04:57 #10363 [Verbose] > │ method21(v0, v4, v5) │
00:04:57 #10364 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:04:57 #10365 [Verbose] > │ v2 │
00:04:57 #10366 [Verbose] > │ and method19 (v0 : UH2) : (string []) = │
00:04:57 #10367 [Verbose] > │ let v1 : uint64 = 0UL │
00:04:57 #10368 [Verbose] > │ let v2 : uint64 = method20(v0, v1) │
00:04:57 #10369 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:04:57 #10370 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:04:57 #10371 [Verbose] > │ let v4 : uint64 = 0UL │
00:04:57 #10372 [Verbose] > │ let v5 : uint64 = method21(v3, v0, v4) │
00:04:57 #10373 [Verbose] > │ v3 │
00:04:57 #10374 [Verbose] > │ and closure5 () (v0 : int64) : US1 = │
00:04:57 #10375 [Verbose] > │ US1_0(v0) │
00:04:57 #10376 [Verbose] > │ and method22 () : (int64 -> US1) = │
00:04:57 #10377 [Verbose] > │ closure5() │
00:04:57 #10378 [Verbose] > │ and method23 (v0 : uint64, v1 : Mut3) : bool = │
00:04:57 #10379 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:04:57 #10380 [Verbose] > │ let v3 : bool = v2 < v0 │
00:04:57 #10381 [Verbose] > │ v3 │
00:04:57 #10382 [Verbose] > │ and method24 (v0 : UH5, v1 : UH5) : UH5 = │
00:04:57 #10383 [Verbose] > │ match v0 with │
00:04:57 #10384 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:04:57 #10385 [Verbose] > │ let v5 : UH5 = UH5_1(v2, v3, v1) │
00:04:57 #10386 [Verbose] > │ method24(v4, v5) │
00:04:57 #10387 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:04:57 #10388 [Verbose] > │ v1 │
00:04:57 #10389 [Verbose] > │ and method26 (v0 : UH5, v1 : int32) : int32 = │
00:04:57 #10390 [Verbose] > │ match v0 with │
00:04:57 #10391 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:04:57 #10392 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:04:57 #10393 [Verbose] > │ method26(v4, v5) │
00:04:57 #10394 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:04:57 #10395 [Verbose] > │ v1 │
00:04:57 #10396 [Verbose] > │ and method27 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) : │
00:04:57 #10397 [Verbose] > │ int32 = │
00:04:57 #10398 [Verbose] > │ match v1 with │
00:04:57 #10399 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:04:57 #10400 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:04:57 #10401 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:04:57 #10402 [Verbose] > │ method27(v0, v5, v6) │
00:04:57 #10403 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:04:57 #10404 [Verbose] > │ v2 │
00:04:57 #10405 [Verbose] > │ and method25 (v0 : UH5) : (struct (int32 * int64) []) = │
00:04:57 #10406 [Verbose] > │ let v1 : int32 = 0 │
00:04:57 #10407 [Verbose] > │ let v2 : int32 = method26(v0, v1) │
00:04:57 #10408 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:04:57 #10409 [Verbose] > │ int64)> (v2) │
00:04:57 #10410 [Verbose] > │ let v4 : int32 = 0 │
00:04:57 #10411 [Verbose] > │ let v5 : int32 = method27(v3, v0, v4) │
00:04:57 #10412 [Verbose] > │ v3 │
00:04:57 #10413 [Verbose] > │ and method28 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) = │
00:04:57 #10414 [Verbose] > │ match v0 with │
00:04:57 #10415 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:04:57 #10416 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:04:57 #10417 [Verbose] > │ let v6 : UH6 = UH6_1(v2, v3, v1) │
00:04:57 #10418 [Verbose] > │ method28(v4, v6, v5) │
00:04:57 #10419 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:04:57 #10420 [Verbose] > │ struct (v1, v2) │
00:04:57 #10421 [Verbose] > │ and method29 (v0 : UH6, v1 : UH6) : UH6 = │
00:04:57 #10422 [Verbose] > │ match v0 with │
00:04:57 #10423 [Verbose] > │ | UH6_1(v2, v3, v4) -> (* Cons *) │
00:04:57 #10424 [Verbose] > │ let v5 : UH6 = UH6_1(v2, v3, v1) │
00:04:57 #10425 [Verbose] > │ method29(v4, v5) │
00:04:57 #10426 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:04:57 #10427 [Verbose] > │ v1 │
00:04:57 #10428 [Verbose] > │ and method30 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 = │
00:04:57 #10429 [Verbose] > │ match v1 with │
00:04:57 #10430 [Verbose] > │ | UH6_1(v3, v4, v5) -> (* Cons *) │
00:04:57 #10431 [Verbose] > │ let v6 : UH2 = method30(v0, v5, v2) │
00:04:57 #10432 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:04:57 #10433 [Verbose] > │ let v8 : int32 = int32 v7 │
00:04:57 #10434 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:04:57 #10435 [Verbose] > │ UH2_1(v9, v6) │
00:04:57 #10436 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:04:57 #10437 [Verbose] > │ v2 │
00:04:57 #10438 [Verbose] > │ and method32 (v0 : UH2, v1 : int32) : int32 = │
00:04:57 #10439 [Verbose] > │ match v0 with │
00:04:57 #10440 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:04:57 #10441 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:04:57 #10442 [Verbose] > │ method32(v3, v4) │
00:04:57 #10443 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:04:57 #10444 [Verbose] > │ v1 │
00:04:57 #10445 [Verbose] > │ and method33 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:04:57 #10446 [Verbose] > │ match v1 with │
00:04:57 #10447 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:04:57 #10448 [Verbose] > │ v0.[int v2] <- v3 │
00:04:57 #10449 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:04:57 #10450 [Verbose] > │ method33(v0, v4, v5) │
00:04:57 #10451 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:04:57 #10452 [Verbose] > │ v2 │
00:04:57 #10453 [Verbose] > │ and method31 (v0 : UH2) : (string []) = │
00:04:57 #10454 [Verbose] > │ let v1 : int32 = 0 │
00:04:57 #10455 [Verbose] > │ let v2 : int32 = method32(v0, v1) │
00:04:57 #10456 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:04:57 #10457 [Verbose] > │ let v4 : int32 = 0 │
00:04:57 #10458 [Verbose] > │ let v5 : int32 = method33(v3, v0, v4) │
00:04:57 #10459 [Verbose] > │ v3 │
00:04:57 #10460 [Verbose] > │ and method35 (v0 : UH5, v1 : uint64) : uint64 = │
00:04:57 #10461 [Verbose] > │ match v0 with │
00:04:57 #10462 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:04:57 #10463 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:04:57 #10464 [Verbose] > │ method35(v4, v5) │
00:04:57 #10465 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:04:57 #10466 [Verbose] > │ v1 │
00:04:57 #10467 [Verbose] > │ and method36 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) : │
00:04:57 #10468 [Verbose] > │ uint64 = │
00:04:57 #10469 [Verbose] > │ match v1 with │
00:04:57 #10470 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:04:57 #10471 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:04:57 #10472 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:04:57 #10473 [Verbose] > │ method36(v0, v5, v6) │
00:04:57 #10474 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:04:57 #10475 [Verbose] > │ v2 │
00:04:57 #10476 [Verbose] > │ and method34 (v0 : UH5) : (struct (int32 * int64) []) = │
00:04:57 #10477 [Verbose] > │ let v1 : uint64 = 0UL │
00:04:57 #10478 [Verbose] > │ let v2 : uint64 = method35(v0, v1) │
00:04:57 #10479 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:04:57 #10480 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:04:57 #10481 [Verbose] > │ let v4 : uint64 = 0UL │
00:04:57 #10482 [Verbose] > │ let v5 : uint64 = method36(v3, v0, v4) │
00:04:57 #10483 [Verbose] > │ v3 │
00:04:57 #10484 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 = │
00:04:57 #10485 [Verbose] > │ v1 │
00:04:57 #10486 [Verbose] > │ and closure0 () () : unit = │
00:04:57 #10487 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:04:57 #10488 [Verbose] > │ let v1 : string = nameof v0 │
00:04:57 #10489 [Verbose] > │ let v2 : string = "" │
00:04:57 #10490 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #10491 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #10492 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:04:57 #10493 [Verbose] > │ System.Console.WriteLine v3 │
00:04:57 #10494 [Verbose] > │ let v4 : string = "a" │
00:04:57 #10495 [Verbose] > │ let v5 : string = "b" │
00:04:57 #10496 [Verbose] > │ let v6 : UH0 = UH0_0 │
00:04:57 #10497 [Verbose] > │ let v7 : UH0 = UH0_1(v5, v5, v5, v6) │
00:04:57 #10498 [Verbose] > │ let v8 : UH0 = UH0_1(v4, v4, v4, v7) │
00:04:57 #10499 [Verbose] > │ let v9 : (struct (string * string * string) []) = method1(v8) │
00:04:57 #10500 [Verbose] > │ let v10 : uint64 = System.Convert.ToUInt64 v9.Length │
00:04:57 #10501 [Verbose] > │ let v11 : (struct (string * string * string * (int64 [])) []) = │
00:04:57 #10502 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:04:57 #10503 [Verbose] > │ (System.Convert.ToInt32(v10)) │
00:04:57 #10504 [Verbose] > │ let v12 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10505 [Verbose] > │ while method4(v10, v12) do │
00:04:57 #10506 [Verbose] > │ let v14 : uint64 = v12.l0 │
00:04:57 #10507 [Verbose] > │ let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │
00:04:57 #10508 [Verbose] > │ let v18 : string = $"%A{struct (v15, v16)}" │
00:04:57 #10509 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #10510 [Verbose] > │ let v19 : string = $"Solution: {v18} " │
00:04:57 #10511 [Verbose] > │ System.Console.WriteLine v19 │
00:04:57 #10512 [Verbose] > │ let v20 : int32 = 0 │
00:04:57 #10513 [Verbose] > │ let v21 : string = "A" │
00:04:57 #10514 [Verbose] > │ let v22 : (struct (string * string) -> string) = closure1() │
00:04:57 #10515 [Verbose] > │ let v23 : int32 = 1 │
00:04:57 #10516 [Verbose] > │ let v24 : string = "B" │
00:04:57 #10517 [Verbose] > │ let v25 : (struct (string * string) -> string) = closure2() │
00:04:57 #10518 [Verbose] > │ let v26 : UH1 = UH1_0 │
00:04:57 #10519 [Verbose] > │ let v27 : UH1 = UH1_1(v23, v24, v25, v26) │
00:04:57 #10520 [Verbose] > │ let v28 : UH1 = UH1_1(v20, v21, v22, v27) │
00:04:57 #10521 [Verbose] > │ let v29 : (struct (int32 * string * (struct (string * string) -> │
00:04:57 #10522 [Verbose] > │ string)) []) = method5(v28) │
00:04:57 #10523 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:04:57 #10524 [Verbose] > │ let v31 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:04:57 #10525 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30)) │
00:04:57 #10526 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10527 [Verbose] > │ while method4(v30, v32) do │
00:04:57 #10528 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:04:57 #10529 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (struct (string * │
00:04:57 #10530 [Verbose] > │ string) -> string)) = v29.[int v34] │
00:04:57 #10531 [Verbose] > │ let v38 : unit option = None │
00:04:57 #10532 [Verbose] > │ let mutable _v38 = v38 │
00:04:57 #10533 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:57 #10534 [Verbose] > │ () │
00:04:57 #10535 [Verbose] > │ #endif │
00:04:57 #10536 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:57 #10537 [Verbose] > │ () │
00:04:57 #10538 [Verbose] > │ #endif │
00:04:57 #10539 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:57 #10540 [Verbose] > │ () │
00:04:57 #10541 [Verbose] > │ #endif │
00:04:57 #10542 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10543 [Verbose] > │ System.GC.Collect () │
00:04:57 #10544 [Verbose] > │ () │
00:04:57 #10545 [Verbose] > │ #endif │
00:04:57 #10546 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10547 [Verbose] > │ System.GC.Collect () │
00:04:57 #10548 [Verbose] > │ () │
00:04:57 #10549 [Verbose] > │ #endif │
00:04:57 #10550 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:57 #10551 [Verbose] > │ System.GC.Collect () │
00:04:57 #10552 [Verbose] > │ () │
00:04:57 #10553 [Verbose] > │ #endif │
00:04:57 #10554 [Verbose] > │ |> fun x -> _v38 <- Some x │
00:04:57 #10555 [Verbose] > │ _v38 |> Option.get │
00:04:57 #10556 [Verbose] > │ let v39 : (unit -> System.Diagnostics.Stopwatch) = │
00:04:57 #10557 [Verbose] > │ System.Diagnostics.Stopwatch │
00:04:57 #10558 [Verbose] > │ let v40 : System.Diagnostics.Stopwatch = v39 () │
00:04:57 #10559 [Verbose] > │ v40.Start () │
00:04:57 #10560 [Verbose] > │ let v41 : int64 = v40.ElapsedMilliseconds │
00:04:57 #10561 [Verbose] > │ let v42 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:04:57 #10562 [Verbose] > │ let v43 : Mut1 = {l0 = 0} : Mut1 │
00:04:57 #10563 [Verbose] > │ while method8(v43) do │
00:04:57 #10564 [Verbose] > │ let v45 : int32 = v43.l0 │
00:04:57 #10565 [Verbose] > │ v42.[int v45] <- v45 │
00:04:57 #10566 [Verbose] > │ let v46 : int32 = v45 + 1 │
00:04:57 #10567 [Verbose] > │ v43.l0 <- v46 │
00:04:57 #10568 [Verbose] > │ () │
00:04:57 #10569 [Verbose] > │ let v47 : ((int32 -> string) -> ((int32 []) -> (string []))) = │
00:04:57 #10570 [Verbose] > │ Array.Parallel.map │
00:04:57 #10571 [Verbose] > │ let v48 : (int32 -> string) = closure3(v15, v16, v37) │
00:04:57 #10572 [Verbose] > │ let v49 : ((int32 []) -> (string [])) = v47 v48 │
00:04:57 #10573 [Verbose] > │ let v50 : (string []) = v49 v42 │
00:04:57 #10574 [Verbose] > │ let v51 : int32 = v50.Length │
00:04:57 #10575 [Verbose] > │ let v52 : int32 = v51 - 1 │
00:04:57 #10576 [Verbose] > │ let v53 : string = v50.[int v52] │
00:04:57 #10577 [Verbose] > │ let v54 : int64 = v40.ElapsedMilliseconds │
00:04:57 #10578 [Verbose] > │ let v55 : int64 = v54 - v41 │
00:04:57 #10579 [Verbose] > │ let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55} " │
00:04:57 #10580 [Verbose] > │ System.Console.WriteLine v56 │
00:04:57 #10581 [Verbose] > │ v31.[int v34] <- struct (v53, v55) │
00:04:57 #10582 [Verbose] > │ let v57 : uint64 = v34 + 1UL │
00:04:57 #10583 [Verbose] > │ v32.l0 <- v57 │
00:04:57 #10584 [Verbose] > │ () │
00:04:57 #10585 [Verbose] > │ let v58 : uint64 = System.Convert.ToUInt64 v31.Length │
00:04:57 #10586 [Verbose] > │ let v59 : (string []) = Array.zeroCreate<string> │
00:04:57 #10587 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:04:57 #10588 [Verbose] > │ let v60 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10589 [Verbose] > │ while method4(v58, v60) do │
00:04:57 #10590 [Verbose] > │ let v62 : uint64 = v60.l0 │
00:04:57 #10591 [Verbose] > │ let struct (v63 : string, v64 : int64) = v31.[int v62] │
00:04:57 #10592 [Verbose] > │ v59.[int v62] <- v63 │
00:04:57 #10593 [Verbose] > │ let v65 : uint64 = v62 + 1UL │
00:04:57 #10594 [Verbose] > │ v60.l0 <- v65 │
00:04:57 #10595 [Verbose] > │ () │
00:04:57 #10596 [Verbose] > │ let v66 : uint64 = System.Convert.ToUInt64 v59.Length │
00:04:57 #10597 [Verbose] > │ let v67 : bool = v66 <= 1UL │
00:04:57 #10598 [Verbose] > │ if v67 then │
00:04:57 #10599 [Verbose] > │ () │
00:04:57 #10600 [Verbose] > │ else │
00:04:57 #10601 [Verbose] > │ let v68 : string = v59.[int 0UL] │
00:04:57 #10602 [Verbose] > │ let v69 : uint64 = 0UL │
00:04:57 #10603 [Verbose] > │ let v70 : bool = method9(v68, v59, v69) │
00:04:57 #10604 [Verbose] > │ if v70 then │
00:04:57 #10605 [Verbose] > │ () │
00:04:57 #10606 [Verbose] > │ else │
00:04:57 #10607 [Verbose] > │ let v71 : string = $"Challenge error: {v59}" │
00:04:57 #10608 [Verbose] > │ failwith<unit> v71 │
00:04:57 #10609 [Verbose] > │ let v72 : string = $"%A{v17}" │
00:04:57 #10610 [Verbose] > │ let v73 : (string []) = Array.zeroCreate<string> │
00:04:57 #10611 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:04:57 #10612 [Verbose] > │ let v74 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10613 [Verbose] > │ while method4(v58, v74) do │
00:04:57 #10614 [Verbose] > │ let v76 : uint64 = v74.l0 │
00:04:57 #10615 [Verbose] > │ let struct (v77 : string, v78 : int64) = v31.[int v76] │
00:04:57 #10616 [Verbose] > │ v73.[int v76] <- v77 │
00:04:57 #10617 [Verbose] > │ let v79 : uint64 = v76 + 1UL │
00:04:57 #10618 [Verbose] > │ v74.l0 <- v79 │
00:04:57 #10619 [Verbose] > │ () │
00:04:57 #10620 [Verbose] > │ let v80 : string = v73.[int 0UL] │
00:04:57 #10621 [Verbose] > │ let v81 : string = $"%A{v80}" │
00:04:57 #10622 [Verbose] > │ let v82 : (int64 []) = Array.zeroCreate<int64> │
00:04:57 #10623 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:04:57 #10624 [Verbose] > │ let v83 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10625 [Verbose] > │ while method4(v58, v83) do │
00:04:57 #10626 [Verbose] > │ let v85 : uint64 = v83.l0 │
00:04:57 #10627 [Verbose] > │ let struct (v86 : string, v87 : int64) = v31.[int v85] │
00:04:57 #10628 [Verbose] > │ v82.[int v85] <- v87 │
00:04:57 #10629 [Verbose] > │ let v88 : uint64 = v85 + 1UL │
00:04:57 #10630 [Verbose] > │ v83.l0 <- v88 │
00:04:57 #10631 [Verbose] > │ () │
00:04:57 #10632 [Verbose] > │ v11.[int v14] <- struct (v72, v18, v81, v82) │
00:04:57 #10633 [Verbose] > │ let v89 : uint64 = v14 + 1UL │
00:04:57 #10634 [Verbose] > │ v12.l0 <- v89 │
00:04:57 #10635 [Verbose] > │ () │
00:04:57 #10636 [Verbose] > │ let v90 : uint64 = System.Convert.ToUInt64 v11.Length │
00:04:57 #10637 [Verbose] > │ let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:04:57 #10638 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:04:57 #10639 [Verbose] > │ let v92 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10640 [Verbose] > │ while method4(v90, v92) do │
00:04:57 #10641 [Verbose] > │ let v94 : uint64 = v92.l0 │
00:04:57 #10642 [Verbose] > │ let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │
00:04:57 #10643 [Verbose] > │ ])) = v11.[int v94] │
00:04:57 #10644 [Verbose] > │ let v99 : uint64 = System.Convert.ToUInt64 v98.Length │
00:04:57 #10645 [Verbose] > │ let v100 : UH3 = UH3_0 │
00:04:57 #10646 [Verbose] > │ let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2 │
00:04:57 #10647 [Verbose] > │ while method10(v99, v101) do │
00:04:57 #10648 [Verbose] > │ let v103 : uint64 = v101.l0 │
00:04:57 #10649 [Verbose] > │ let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2 │
00:04:57 #10650 [Verbose] > │ let v106 : int64 = v98.[int v103] │
00:04:57 #10651 [Verbose] > │ let v107 : int64 = v105 + 1L │
00:04:57 #10652 [Verbose] > │ let v108 : uint64 = v103 + 1UL │
00:04:57 #10653 [Verbose] > │ let v109 : UH3 = UH3_1(v105, v106, v104) │
00:04:57 #10654 [Verbose] > │ v101.l0 <- v108 │
00:04:57 #10655 [Verbose] > │ v101.l1 <- v109 │
00:04:57 #10656 [Verbose] > │ v101.l2 <- v107 │
00:04:57 #10657 [Verbose] > │ () │
00:04:57 #10658 [Verbose] > │ let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2 │
00:04:57 #10659 [Verbose] > │ let v112 : UH3 = UH3_0 │
00:04:57 #10660 [Verbose] > │ let v113 : UH3 = method11(v110, v112) │
00:04:57 #10661 [Verbose] > │ let v114 : (struct (int64 * int64) []) = method12(v113) │
00:04:57 #10662 [Verbose] > │ let v115 : int32 = v114.Length │
00:04:57 #10663 [Verbose] > │ let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:04:57 #10664 [Verbose] > │ (int64 * int64)> (v115) │
00:04:57 #10665 [Verbose] > │ let v117 : Mut1 = {l0 = 0} : Mut1 │
00:04:57 #10666 [Verbose] > │ while method15(v115, v117) do │
00:04:57 #10667 [Verbose] > │ let v119 : int32 = v117.l0 │
00:04:57 #10668 [Verbose] > │ let struct (v120 : int64, v121 : int64) = v114.[int v119] │
00:04:57 #10669 [Verbose] > │ let v122 : int64 = v120 + 1L │
00:04:57 #10670 [Verbose] > │ v116.[int v119] <- struct (v122, v121) │
00:04:57 #10671 [Verbose] > │ let v123 : int32 = v119 + 1 │
00:04:57 #10672 [Verbose] > │ v117.l0 <- v123 │
00:04:57 #10673 [Verbose] > │ () │
00:04:57 #10674 [Verbose] > │ let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:04:57 #10675 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:04:57 #10676 [Verbose] > │ let v125 : (struct (int64 * int64) -> int64) = closure4() │
00:04:57 #10677 [Verbose] > │ let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:04:57 #10678 [Verbose] > │ ])) = v124 v125 │
00:04:57 #10679 [Verbose] > │ let v127 : (struct (int64 * int64) []) = v126 v116 │
00:04:57 #10680 [Verbose] > │ let struct (v128 : int64, v129 : int64) = v127.[int 0] │
00:04:57 #10681 [Verbose] > │ let v130 : string = $"%A{struct (v128, v129)}" │
00:04:57 #10682 [Verbose] > │ let v131 : bool = v95 = v97 │
00:04:57 #10683 [Verbose] > │ let v136 : US0 = │
00:04:57 #10684 [Verbose] > │ if v131 then │
00:04:57 #10685 [Verbose] > │ let v132 : System.ConsoleColor = │
00:04:57 #10686 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:04:57 #10687 [Verbose] > │ US0_0(v132) │
00:04:57 #10688 [Verbose] > │ else │
00:04:57 #10689 [Verbose] > │ let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:04:57 #10690 [Verbose] > │ US0_0(v134) │
00:04:57 #10691 [Verbose] > │ let v137 : UH2 = UH2_0 │
00:04:57 #10692 [Verbose] > │ let v138 : UH2 = UH2_1(v130, v137) │
00:04:57 #10693 [Verbose] > │ let v139 : UH2 = UH2_1(v97, v138) │
00:04:57 #10694 [Verbose] > │ let v140 : UH2 = UH2_1(v95, v139) │
00:04:57 #10695 [Verbose] > │ let v141 : UH2 = UH2_1(v96, v140) │
00:04:57 #10696 [Verbose] > │ v91.[int v94] <- struct (v141, v136) │
00:04:57 #10697 [Verbose] > │ let v142 : uint64 = v94 + 1UL │
00:04:57 #10698 [Verbose] > │ v92.l0 <- v142 │
00:04:57 #10699 [Verbose] > │ () │
00:04:57 #10700 [Verbose] > │ let v143 : string = "Input" │
00:04:57 #10701 [Verbose] > │ let v144 : string = "Expected" │
00:04:57 #10702 [Verbose] > │ let v145 : string = "Result" │
00:04:57 #10703 [Verbose] > │ let v146 : string = "Best" │
00:04:57 #10704 [Verbose] > │ let v147 : UH2 = UH2_0 │
00:04:57 #10705 [Verbose] > │ let v148 : UH2 = UH2_1(v146, v147) │
00:04:57 #10706 [Verbose] > │ let v149 : UH2 = UH2_1(v145, v148) │
00:04:57 #10707 [Verbose] > │ let v150 : UH2 = UH2_1(v144, v149) │
00:04:57 #10708 [Verbose] > │ let v151 : UH2 = UH2_1(v143, v150) │
00:04:57 #10709 [Verbose] > │ let v152 : US0 = US0_1 │
00:04:57 #10710 [Verbose] > │ let v153 : string = "---" │
00:04:57 #10711 [Verbose] > │ let v154 : UH2 = UH2_0 │
00:04:57 #10712 [Verbose] > │ let v155 : UH2 = UH2_1(v153, v154) │
00:04:57 #10713 [Verbose] > │ let v156 : UH2 = UH2_1(v153, v155) │
00:04:57 #10714 [Verbose] > │ let v157 : UH2 = UH2_1(v153, v156) │
00:04:57 #10715 [Verbose] > │ let v158 : UH2 = UH2_1(v153, v157) │
00:04:57 #10716 [Verbose] > │ let v159 : US0 = US0_1 │
00:04:57 #10717 [Verbose] > │ let v160 : UH4 = UH4_0 │
00:04:57 #10718 [Verbose] > │ let v161 : UH4 = UH4_1(v158, v159, v160) │
00:04:57 #10719 [Verbose] > │ let v162 : UH4 = UH4_1(v151, v152, v161) │
00:04:57 #10720 [Verbose] > │ let v163 : (struct (UH2 * US0) []) = method16(v162) │
00:04:57 #10721 [Verbose] > │ let v164 : uint64 = System.Convert.ToUInt64 v163.Length │
00:04:57 #10722 [Verbose] > │ let v165 : uint64 = System.Convert.ToUInt64 v91.Length │
00:04:57 #10723 [Verbose] > │ let v166 : uint64 = v164 + v165 │
00:04:57 #10724 [Verbose] > │ let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:04:57 #10725 [Verbose] > │ US0)> (System.Convert.ToInt32(v166)) │
00:04:57 #10726 [Verbose] > │ let v168 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10727 [Verbose] > │ while method4(v166, v168) do │
00:04:57 #10728 [Verbose] > │ let v170 : uint64 = v168.l0 │
00:04:57 #10729 [Verbose] > │ let v171 : bool = v170 < v164 │
00:04:57 #10730 [Verbose] > │ let struct (v177 : UH2, v178 : US0) = │
00:04:57 #10731 [Verbose] > │ if v171 then │
00:04:57 #10732 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = v163.[int v170] │
00:04:57 #10733 [Verbose] > │ struct (v172, v173) │
00:04:57 #10734 [Verbose] > │ else │
00:04:57 #10735 [Verbose] > │ let v174 : uint64 = v170 - v164 │
00:04:57 #10736 [Verbose] > │ let struct (v175 : UH2, v176 : US0) = v91.[int v174] │
00:04:57 #10737 [Verbose] > │ struct (v175, v176) │
00:04:57 #10738 [Verbose] > │ v167.[int v170] <- struct (v177, v178) │
00:04:57 #10739 [Verbose] > │ let v179 : uint64 = v170 + 1UL │
00:04:57 #10740 [Verbose] > │ v168.l0 <- v179 │
00:04:57 #10741 [Verbose] > │ () │
00:04:57 #10742 [Verbose] > │ let v180 : uint64 = System.Convert.ToUInt64 v167.Length │
00:04:57 #10743 [Verbose] > │ let v181 : ((string []) []) = Array.zeroCreate<(string [])> │
00:04:57 #10744 [Verbose] > │ (System.Convert.ToInt32(v180)) │
00:04:57 #10745 [Verbose] > │ let v182 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10746 [Verbose] > │ while method4(v180, v182) do │
00:04:57 #10747 [Verbose] > │ let v184 : uint64 = v182.l0 │
00:04:57 #10748 [Verbose] > │ let struct (v185 : UH2, v186 : US0) = v167.[int v184] │
00:04:57 #10749 [Verbose] > │ let v187 : (string []) = method19(v185) │
00:04:57 #10750 [Verbose] > │ v181.[int v184] <- v187 │
00:04:57 #10751 [Verbose] > │ let v188 : uint64 = v184 + 1UL │
00:04:57 #10752 [Verbose] > │ v182.l0 <- v188 │
00:04:57 #10753 [Verbose] > │ () │
00:04:57 #10754 [Verbose] > │ let v189 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:04:57 #10755 [Verbose] > │ let v190 : ((string []) []) = v189 v181 │
00:04:57 #10756 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:04:57 #10757 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:04:57 #10758 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:04:57 #10759 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10760 [Verbose] > │ while method4(v191, v193) do │
00:04:57 #10761 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:04:57 #10762 [Verbose] > │ let v196 : (string []) = v190.[int v195] │
00:04:57 #10763 [Verbose] > │ let v197 : uint64 = System.Convert.ToUInt64 v196.Length │
00:04:57 #10764 [Verbose] > │ let v198 : (int64 []) = Array.zeroCreate<int64> │
00:04:57 #10765 [Verbose] > │ (System.Convert.ToInt32(v197)) │
00:04:57 #10766 [Verbose] > │ let v199 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10767 [Verbose] > │ while method4(v197, v199) do │
00:04:57 #10768 [Verbose] > │ let v201 : uint64 = v199.l0 │
00:04:57 #10769 [Verbose] > │ let v202 : string = v196.[int v201] │
00:04:57 #10770 [Verbose] > │ let v203 : int64 = System.Convert.ToInt64 v202.Length │
00:04:57 #10771 [Verbose] > │ v198.[int v201] <- v203 │
00:04:57 #10772 [Verbose] > │ let v204 : uint64 = v201 + 1UL │
00:04:57 #10773 [Verbose] > │ v199.l0 <- v204 │
00:04:57 #10774 [Verbose] > │ () │
00:04:57 #10775 [Verbose] > │ let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:04:57 #10776 [Verbose] > │ let v206 : (int64 []) = v205 v198 │
00:04:57 #10777 [Verbose] > │ let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:04:57 #10778 [Verbose] > │ let v208 : ((int64 []) -> int64 option) = v207 0 │
00:04:57 #10779 [Verbose] > │ let v209 : int64 option = v208 v206 │
00:04:57 #10780 [Verbose] > │ let v210 : (int64 -> US1) = method22() │
00:04:57 #10781 [Verbose] > │ let v211 : US1 = US1_1 │
00:04:57 #10782 [Verbose] > │ let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │
00:04:57 #10783 [Verbose] > │ let v215 : int64 = │
00:04:57 #10784 [Verbose] > │ match v212 with │
00:04:57 #10785 [Verbose] > │ | US1_1 -> (* None *) │
00:04:57 #10786 [Verbose] > │ 0L │
00:04:57 #10787 [Verbose] > │ | US1_0(v213) -> (* Some *) │
00:04:57 #10788 [Verbose] > │ v213 │
00:04:57 #10789 [Verbose] > │ v192.[int v195] <- v215 │
00:04:57 #10790 [Verbose] > │ let v216 : uint64 = v195 + 1UL │
00:04:57 #10791 [Verbose] > │ v193.l0 <- v216 │
00:04:57 #10792 [Verbose] > │ () │
00:04:57 #10793 [Verbose] > │ let v217 : uint64 = System.Convert.ToUInt64 v192.Length │
00:04:57 #10794 [Verbose] > │ let v218 : UH5 = UH5_0 │
00:04:57 #10795 [Verbose] > │ let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3 │
00:04:57 #10796 [Verbose] > │ while method23(v217, v219) do │
00:04:57 #10797 [Verbose] > │ let v221 : uint64 = v219.l0 │
00:04:57 #10798 [Verbose] > │ let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2 │
00:04:57 #10799 [Verbose] > │ let v224 : int64 = v192.[int v221] │
00:04:57 #10800 [Verbose] > │ let v225 : int32 = v223 + 1 │
00:04:57 #10801 [Verbose] > │ let v226 : uint64 = v221 + 1UL │
00:04:57 #10802 [Verbose] > │ let v227 : UH5 = UH5_1(v223, v224, v222) │
00:04:57 #10803 [Verbose] > │ v219.l0 <- v226 │
00:04:57 #10804 [Verbose] > │ v219.l1 <- v227 │
00:04:57 #10805 [Verbose] > │ v219.l2 <- v225 │
00:04:57 #10806 [Verbose] > │ () │
00:04:57 #10807 [Verbose] > │ let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2 │
00:04:57 #10808 [Verbose] > │ let v230 : UH5 = UH5_0 │
00:04:57 #10809 [Verbose] > │ let v231 : UH5 = method24(v228, v230) │
00:04:57 #10810 [Verbose] > │ let v232 : (struct (int32 * int64) []) = method25(v231) │
00:04:57 #10811 [Verbose] > │ let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │
00:04:57 #10812 [Verbose] > │ a, b) |> Map.ofArray │
00:04:57 #10813 [Verbose] > │ let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:04:57 #10814 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180)) │
00:04:57 #10815 [Verbose] > │ let v235 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10816 [Verbose] > │ while method4(v180, v235) do │
00:04:57 #10817 [Verbose] > │ let v237 : uint64 = v235.l0 │
00:04:57 #10818 [Verbose] > │ let struct (v238 : UH2, v239 : US0) = v167.[int v237] │
00:04:57 #10819 [Verbose] > │ let v240 : UH6 = UH6_0 │
00:04:57 #10820 [Verbose] > │ let v241 : int32 = 0 │
00:04:57 #10821 [Verbose] > │ let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241) │
00:04:57 #10822 [Verbose] > │ let v244 : UH6 = UH6_0 │
00:04:57 #10823 [Verbose] > │ let v245 : UH6 = method29(v242, v244) │
00:04:57 #10824 [Verbose] > │ let v246 : UH2 = UH2_0 │
00:04:57 #10825 [Verbose] > │ let v247 : UH2 = method30(v233, v245, v246) │
00:04:57 #10826 [Verbose] > │ let v248 : (string []) = method31(v247) │
00:04:57 #10827 [Verbose] > │ v234.[int v237] <- struct (v248, v239) │
00:04:57 #10828 [Verbose] > │ let v249 : uint64 = v237 + 1UL │
00:04:57 #10829 [Verbose] > │ v235.l0 <- v249 │
00:04:57 #10830 [Verbose] > │ () │
00:04:57 #10831 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #10832 [Verbose] > │ let v250 : uint64 = System.Convert.ToUInt64 v234.Length │
00:04:57 #10833 [Verbose] > │ let v251 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10834 [Verbose] > │ while method4(v250, v251) do │
00:04:57 #10835 [Verbose] > │ let v253 : uint64 = v251.l0 │
00:04:57 #10836 [Verbose] > │ let struct (v254 : (string []), v255 : US0) = v234.[int v253] │
00:04:57 #10837 [Verbose] > │ match v255 with │
00:04:57 #10838 [Verbose] > │ | US0_1 -> (* None *) │
00:04:57 #10839 [Verbose] > │ let v258 : unit option = None │
00:04:57 #10840 [Verbose] > │ let mutable _v258 = v258 │
00:04:57 #10841 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:57 #10842 [Verbose] > │ () │
00:04:57 #10843 [Verbose] > │ #endif │
00:04:57 #10844 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:57 #10845 [Verbose] > │ () │
00:04:57 #10846 [Verbose] > │ #endif │
00:04:57 #10847 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:57 #10848 [Verbose] > │ () │
00:04:57 #10849 [Verbose] > │ #endif │
00:04:57 #10850 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10851 [Verbose] > │ System.Console.ResetColor () │
00:04:57 #10852 [Verbose] > │ () │
00:04:57 #10853 [Verbose] > │ #endif │
00:04:57 #10854 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10855 [Verbose] > │ System.Console.ResetColor () │
00:04:57 #10856 [Verbose] > │ () │
00:04:57 #10857 [Verbose] > │ #endif │
00:04:57 #10858 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:57 #10859 [Verbose] > │ System.Console.ResetColor () │
00:04:57 #10860 [Verbose] > │ () │
00:04:57 #10861 [Verbose] > │ #endif │
00:04:57 #10862 [Verbose] > │ |> fun x -> _v258 <- Some x │
00:04:57 #10863 [Verbose] > │ _v258 |> Option.get │
00:04:57 #10864 [Verbose] > │ () │
00:04:57 #10865 [Verbose] > │ | US0_0(v256) -> (* Some *) │
00:04:57 #10866 [Verbose] > │ let v257 : unit option = None │
00:04:57 #10867 [Verbose] > │ let mutable _v257 = v257 │
00:04:57 #10868 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:57 #10869 [Verbose] > │ () │
00:04:57 #10870 [Verbose] > │ #endif │
00:04:57 #10871 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:57 #10872 [Verbose] > │ () │
00:04:57 #10873 [Verbose] > │ #endif │
00:04:57 #10874 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:57 #10875 [Verbose] > │ () │
00:04:57 #10876 [Verbose] > │ #endif │
00:04:57 #10877 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10878 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:04:57 #10879 [Verbose] > │ () │
00:04:57 #10880 [Verbose] > │ #endif │
00:04:57 #10881 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10882 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:04:57 #10883 [Verbose] > │ () │
00:04:57 #10884 [Verbose] > │ #endif │
00:04:57 #10885 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:57 #10886 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:04:57 #10887 [Verbose] > │ () │
00:04:57 #10888 [Verbose] > │ #endif │
00:04:57 #10889 [Verbose] > │ |> fun x -> _v257 <- Some x │
00:04:57 #10890 [Verbose] > │ _v257 |> Option.get │
00:04:57 #10891 [Verbose] > │ () │
00:04:57 #10892 [Verbose] > │ let v259 : string = "\t| " │
00:04:57 #10893 [Verbose] > │ let v260 : string = System.String.Join (v259, v254) │
00:04:57 #10894 [Verbose] > │ System.Console.WriteLine v260 │
00:04:57 #10895 [Verbose] > │ let v261 : unit option = None │
00:04:57 #10896 [Verbose] > │ let mutable _v261 = v261 │
00:04:57 #10897 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:57 #10898 [Verbose] > │ () │
00:04:57 #10899 [Verbose] > │ #endif │
00:04:57 #10900 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:57 #10901 [Verbose] > │ () │
00:04:57 #10902 [Verbose] > │ #endif │
00:04:57 #10903 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:57 #10904 [Verbose] > │ () │
00:04:57 #10905 [Verbose] > │ #endif │
00:04:57 #10906 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10907 [Verbose] > │ System.Console.ResetColor () │
00:04:57 #10908 [Verbose] > │ () │
00:04:57 #10909 [Verbose] > │ #endif │
00:04:57 #10910 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #10911 [Verbose] > │ System.Console.ResetColor () │
00:04:57 #10912 [Verbose] > │ () │
00:04:57 #10913 [Verbose] > │ #endif │
00:04:57 #10914 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:57 #10915 [Verbose] > │ System.Console.ResetColor () │
00:04:57 #10916 [Verbose] > │ () │
00:04:57 #10917 [Verbose] > │ #endif │
00:04:57 #10918 [Verbose] > │ |> fun x -> _v261 <- Some x │
00:04:57 #10919 [Verbose] > │ _v261 |> Option.get │
00:04:57 #10920 [Verbose] > │ let v262 : uint64 = v253 + 1UL │
00:04:57 #10921 [Verbose] > │ v251.l0 <- v262 │
00:04:57 #10922 [Verbose] > │ () │
00:04:57 #10923 [Verbose] > │ let v263 : ((float []) []) = Array.zeroCreate<(float [])> │
00:04:57 #10924 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:04:57 #10925 [Verbose] > │ let v264 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10926 [Verbose] > │ while method4(v90, v264) do │
00:04:57 #10927 [Verbose] > │ let v266 : uint64 = v264.l0 │
00:04:57 #10928 [Verbose] > │ let struct (v267 : string, v268 : string, v269 : string, v270 : │
00:04:57 #10929 [Verbose] > │ (int64 [])) = v11.[int v266] │
00:04:57 #10930 [Verbose] > │ let v271 : (int64 -> float) = float │
00:04:57 #10931 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v270.Length │
00:04:57 #10932 [Verbose] > │ let v273 : (float []) = Array.zeroCreate<float> │
00:04:57 #10933 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:04:57 #10934 [Verbose] > │ let v274 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10935 [Verbose] > │ while method4(v272, v274) do │
00:04:57 #10936 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:04:57 #10937 [Verbose] > │ let v277 : int64 = v270.[int v276] │
00:04:57 #10938 [Verbose] > │ let v278 : float = v271 v277 │
00:04:57 #10939 [Verbose] > │ v273.[int v276] <- v278 │
00:04:57 #10940 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:04:57 #10941 [Verbose] > │ v274.l0 <- v279 │
00:04:57 #10942 [Verbose] > │ () │
00:04:57 #10943 [Verbose] > │ v263.[int v266] <- v273 │
00:04:57 #10944 [Verbose] > │ let v280 : uint64 = v266 + 1UL │
00:04:57 #10945 [Verbose] > │ v264.l0 <- v280 │
00:04:57 #10946 [Verbose] > │ () │
00:04:57 #10947 [Verbose] > │ let v281 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:04:57 #10948 [Verbose] > │ let v282 : ((float []) []) = v281 v263 │
00:04:57 #10949 [Verbose] > │ let v283 : uint64 = System.Convert.ToUInt64 v282.Length │
00:04:57 #10950 [Verbose] > │ let v284 : (float []) = Array.zeroCreate<float> │
00:04:57 #10951 [Verbose] > │ (System.Convert.ToInt32(v283)) │
00:04:57 #10952 [Verbose] > │ let v285 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10953 [Verbose] > │ while method4(v283, v285) do │
00:04:57 #10954 [Verbose] > │ let v287 : uint64 = v285.l0 │
00:04:57 #10955 [Verbose] > │ let v288 : (float []) = v282.[int v287] │
00:04:57 #10956 [Verbose] > │ let v289 : ((float []) -> float) = Array.average │
00:04:57 #10957 [Verbose] > │ let v290 : float = v289 v288 │
00:04:57 #10958 [Verbose] > │ v284.[int v287] <- v290 │
00:04:57 #10959 [Verbose] > │ let v291 : uint64 = v287 + 1UL │
00:04:57 #10960 [Verbose] > │ v285.l0 <- v291 │
00:04:57 #10961 [Verbose] > │ () │
00:04:57 #10962 [Verbose] > │ let v292 : (float -> int64) = int64 │
00:04:57 #10963 [Verbose] > │ let v293 : uint64 = System.Convert.ToUInt64 v284.Length │
00:04:57 #10964 [Verbose] > │ let v294 : (int64 []) = Array.zeroCreate<int64> │
00:04:57 #10965 [Verbose] > │ (System.Convert.ToInt32(v293)) │
00:04:57 #10966 [Verbose] > │ let v295 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #10967 [Verbose] > │ while method4(v293, v295) do │
00:04:57 #10968 [Verbose] > │ let v297 : uint64 = v295.l0 │
00:04:57 #10969 [Verbose] > │ let v298 : float = v284.[int v297] │
00:04:57 #10970 [Verbose] > │ let v299 : int64 = v292 v298 │
00:04:57 #10971 [Verbose] > │ v294.[int v297] <- v299 │
00:04:57 #10972 [Verbose] > │ let v300 : uint64 = v297 + 1UL │
00:04:57 #10973 [Verbose] > │ v295.l0 <- v300 │
00:04:57 #10974 [Verbose] > │ () │
00:04:57 #10975 [Verbose] > │ let v301 : uint64 = System.Convert.ToUInt64 v294.Length │
00:04:57 #10976 [Verbose] > │ let v302 : UH5 = UH5_0 │
00:04:57 #10977 [Verbose] > │ let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3 │
00:04:57 #10978 [Verbose] > │ while method23(v301, v303) do │
00:04:57 #10979 [Verbose] > │ let v305 : uint64 = v303.l0 │
00:04:57 #10980 [Verbose] > │ let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2 │
00:04:57 #10981 [Verbose] > │ let v308 : int64 = v294.[int v305] │
00:04:57 #10982 [Verbose] > │ let v309 : int32 = v307 + 1 │
00:04:57 #10983 [Verbose] > │ let v310 : uint64 = v305 + 1UL │
00:04:57 #10984 [Verbose] > │ let v311 : UH5 = UH5_1(v307, v308, v306) │
00:04:57 #10985 [Verbose] > │ v303.l0 <- v310 │
00:04:57 #10986 [Verbose] > │ v303.l1 <- v311 │
00:04:57 #10987 [Verbose] > │ v303.l2 <- v309 │
00:04:57 #10988 [Verbose] > │ () │
00:04:57 #10989 [Verbose] > │ let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2 │
00:04:57 #10990 [Verbose] > │ let v314 : UH5 = UH5_0 │
00:04:57 #10991 [Verbose] > │ let v315 : UH5 = method24(v312, v314) │
00:04:57 #10992 [Verbose] > │ let v316 : (struct (int32 * int64) []) = method34(v315) │
00:04:57 #10993 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #10994 [Verbose] > │ let v317 : string = "Average Ranking " │
00:04:57 #10995 [Verbose] > │ System.Console.WriteLine v317 │
00:04:57 #10996 [Verbose] > │ let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:04:57 #10997 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:04:57 #10998 [Verbose] > │ let v319 : (struct (int32 * int64) -> int64) = closure6() │
00:04:57 #10999 [Verbose] > │ let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:04:57 #11000 [Verbose] > │ = v318 v319 │
00:04:57 #11001 [Verbose] > │ let v321 : (struct (int32 * int64) []) = v320 v316 │
00:04:57 #11002 [Verbose] > │ let v322 : uint64 = System.Convert.ToUInt64 v321.Length │
00:04:57 #11003 [Verbose] > │ let v323 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #11004 [Verbose] > │ while method4(v322, v323) do │
00:04:57 #11005 [Verbose] > │ let v325 : uint64 = v323.l0 │
00:04:57 #11006 [Verbose] > │ let struct (v326 : int32, v327 : int64) = v321.[int v325] │
00:04:57 #11007 [Verbose] > │ let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │
00:04:57 #11008 [Verbose] > │ " │
00:04:57 #11009 [Verbose] > │ System.Console.WriteLine v328 │
00:04:57 #11010 [Verbose] > │ let v329 : uint64 = v325 + 1UL │
00:04:57 #11011 [Verbose] > │ v323.l0 <- v329 │
00:04:57 #11012 [Verbose] > │ () │
00:04:57 #11013 [Verbose] > │ () │
00:04:57 #11014 [Verbose] > │ and method0 () : unit = │
00:04:57 #11015 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:04:57 #11016 [Verbose] > │ let v1 : string = nameof v0 │
00:04:57 #11017 [Verbose] > │ let v2 : string = "" │
00:04:57 #11018 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #11019 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #11020 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:04:57 #11021 [Verbose] > │ System.Console.WriteLine v3 │
00:04:57 #11022 [Verbose] > │ let v4 : string = "a" │
00:04:57 #11023 [Verbose] > │ let v5 : string = "b" │
00:04:57 #11024 [Verbose] > │ let v6 : UH0 = UH0_0 │
00:04:57 #11025 [Verbose] > │ let v7 : UH0 = UH0_1(v5, v5, v5, v6) │
00:04:57 #11026 [Verbose] > │ let v8 : UH0 = UH0_1(v4, v4, v4, v7) │
00:04:57 #11027 [Verbose] > │ let v9 : (struct (string * string * string) []) = method1(v8) │
00:04:57 #11028 [Verbose] > │ let v10 : uint64 = System.Convert.ToUInt64 v9.Length │
00:04:57 #11029 [Verbose] > │ let v11 : (struct (string * string * string * (int64 [])) []) = │
00:04:57 #11030 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:04:57 #11031 [Verbose] > │ (System.Convert.ToInt32(v10)) │
00:04:57 #11032 [Verbose] > │ let v12 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #11033 [Verbose] > │ while method4(v10, v12) do │
00:04:57 #11034 [Verbose] > │ let v14 : uint64 = v12.l0 │
00:04:57 #11035 [Verbose] > │ let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │
00:04:57 #11036 [Verbose] > │ let v18 : string = $"%A{struct (v15, v16)}" │
00:04:57 #11037 [Verbose] > │ System.Console.WriteLine v2 │
00:04:57 #11038 [Verbose] > │ let v19 : string = $"Solution: {v18} " │
00:04:57 #11039 [Verbose] > │ System.Console.WriteLine v19 │
00:04:57 #11040 [Verbose] > │ let v20 : int32 = 0 │
00:04:57 #11041 [Verbose] > │ let v21 : string = "A" │
00:04:57 #11042 [Verbose] > │ let v22 : (struct (string * string) -> string) = closure1() │
00:04:57 #11043 [Verbose] > │ let v23 : int32 = 1 │
00:04:57 #11044 [Verbose] > │ let v24 : string = "B" │
00:04:57 #11045 [Verbose] > │ let v25 : (struct (string * string) -> string) = closure2() │
00:04:57 #11046 [Verbose] > │ let v26 : UH1 = UH1_0 │
00:04:57 #11047 [Verbose] > │ let v27 : UH1 = UH1_1(v23, v24, v25, v26) │
00:04:57 #11048 [Verbose] > │ let v28 : UH1 = UH1_1(v20, v21, v22, v27) │
00:04:57 #11049 [Verbose] > │ let v29 : (struct (int32 * string * (struct (string * string) -> │
00:04:57 #11050 [Verbose] > │ string)) []) = method5(v28) │
00:04:57 #11051 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:04:57 #11052 [Verbose] > │ let v31 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:04:57 #11053 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30)) │
00:04:57 #11054 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #11055 [Verbose] > │ while method4(v30, v32) do │
00:04:57 #11056 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:04:57 #11057 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (struct (string * │
00:04:57 #11058 [Verbose] > │ string) -> string)) = v29.[int v34] │
00:04:57 #11059 [Verbose] > │ let v38 : unit option = None │
00:04:57 #11060 [Verbose] > │ let mutable _v38 = v38 │
00:04:57 #11061 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:57 #11062 [Verbose] > │ () │
00:04:57 #11063 [Verbose] > │ #endif │
00:04:57 #11064 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:57 #11065 [Verbose] > │ () │
00:04:57 #11066 [Verbose] > │ #endif │
00:04:57 #11067 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:57 #11068 [Verbose] > │ () │
00:04:57 #11069 [Verbose] > │ #endif │
00:04:57 #11070 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #11071 [Verbose] > │ System.GC.Collect () │
00:04:57 #11072 [Verbose] > │ () │
00:04:57 #11073 [Verbose] > │ #endif │
00:04:57 #11074 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:57 #11075 [Verbose] > │ System.GC.Collect () │
00:04:57 #11076 [Verbose] > │ () │
00:04:57 #11077 [Verbose] > │ #endif │
00:04:57 #11078 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:57 #11079 [Verbose] > │ System.GC.Collect () │
00:04:57 #11080 [Verbose] > │ () │
00:04:57 #11081 [Verbose] > │ #endif │
00:04:57 #11082 [Verbose] > │ |> fun x -> _v38 <- Some x │
00:04:57 #11083 [Verbose] > │ _v38 |> Option.get │
00:04:57 #11084 [Verbose] > │ let v39 : (unit -> System.Diagnostics.Stopwatch) = │
00:04:57 #11085 [Verbose] > │ System.Diagnostics.Stopwatch │
00:04:57 #11086 [Verbose] > │ let v40 : System.Diagnostics.Stopwatch = v39 () │
00:04:57 #11087 [Verbose] > │ v40.Start () │
00:04:57 #11088 [Verbose] > │ let v41 : int64 = v40.ElapsedMilliseconds │
00:04:57 #11089 [Verbose] > │ let v42 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:04:57 #11090 [Verbose] > │ let v43 : Mut1 = {l0 = 0} : Mut1 │
00:04:57 #11091 [Verbose] > │ while method8(v43) do │
00:04:57 #11092 [Verbose] > │ let v45 : int32 = v43.l0 │
00:04:57 #11093 [Verbose] > │ v42.[int v45] <- v45 │
00:04:57 #11094 [Verbose] > │ let v46 : int32 = v45 + 1 │
00:04:57 #11095 [Verbose] > │ v43.l0 <- v46 │
00:04:57 #11096 [Verbose] > │ () │
00:04:57 #11097 [Verbose] > │ let v47 : ((int32 -> string) -> ((int32 []) -> (string []))) = │
00:04:57 #11098 [Verbose] > │ Array.Parallel.map │
00:04:57 #11099 [Verbose] > │ let v48 : (int32 -> string) = closure3(v15, v16, v37) │
00:04:57 #11100 [Verbose] > │ let v49 : ((int32 []) -> (string [])) = v47 v48 │
00:04:57 #11101 [Verbose] > │ let v50 : (string []) = v49 v42 │
00:04:57 #11102 [Verbose] > │ let v51 : int32 = v50.Length │
00:04:57 #11103 [Verbose] > │ let v52 : int32 = v51 - 1 │
00:04:57 #11104 [Verbose] > │ let v53 : string = v50.[int v52] │
00:04:57 #11105 [Verbose] > │ let v54 : int64 = v40.ElapsedMilliseconds │
00:04:57 #11106 [Verbose] > │ let v55 : int64 = v54 - v41 │
00:04:57 #11107 [Verbose] > │ let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55} " │
00:04:57 #11108 [Verbose] > │ System.Console.WriteLine v56 │
00:04:57 #11109 [Verbose] > │ v31.[int v34] <- struct (v53, v55) │
00:04:57 #11110 [Verbose] > │ let v57 : uint64 = v34 + 1UL │
00:04:57 #11111 [Verbose] > │ v32.l0 <- v57 │
00:04:57 #11112 [Verbose] > │ () │
00:04:57 #11113 [Verbose] > │ let v58 : uint64 = System.Convert.ToUInt64 v31.Length │
00:04:57 #11114 [Verbose] > │ let v59 : (string []) = Array.zeroCreate<string> │
00:04:57 #11115 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:04:57 #11116 [Verbose] > │ let v60 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #11117 [Verbose] > │ while method4(v58, v60) do │
00:04:57 #11118 [Verbose] > │ let v62 : uint64 = v60.l0 │
00:04:57 #11119 [Verbose] > │ let struct (v63 : string, v64 : int64) = v31.[int v62] │
00:04:57 #11120 [Verbose] > │ v59.[int v62] <- v63 │
00:04:57 #11121 [Verbose] > │ let v65 : uint64 = v62 + 1UL │
00:04:57 #11122 [Verbose] > │ v60.l0 <- v65 │
00:04:57 #11123 [Verbose] > │ () │
00:04:57 #11124 [Verbose] > │ let v66 : uint64 = System.Convert.ToUInt64 v59.Length │
00:04:57 #11125 [Verbose] > │ let v67 : bool = v66 <= 1UL │
00:04:57 #11126 [Verbose] > │ if v67 then │
00:04:57 #11127 [Verbose] > │ () │
00:04:57 #11128 [Verbose] > │ else │
00:04:57 #11129 [Verbose] > │ let v68 : string = v59.[int 0UL] │
00:04:57 #11130 [Verbose] > │ let v69 : uint64 = 0UL │
00:04:57 #11131 [Verbose] > │ let v70 : bool = method9(v68, v59, v69) │
00:04:57 #11132 [Verbose] > │ if v70 then │
00:04:57 #11133 [Verbose] > │ () │
00:04:57 #11134 [Verbose] > │ else │
00:04:57 #11135 [Verbose] > │ let v71 : string = $"Challenge error: {v59}" │
00:04:57 #11136 [Verbose] > │ failwith<unit> v71 │
00:04:57 #11137 [Verbose] > │ let v72 : string = $"%A{v17}" │
00:04:57 #11138 [Verbose] > │ let v73 : (string []) = Array.zeroCreate<string> │
00:04:57 #11139 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:04:57 #11140 [Verbose] > │ let v74 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #11141 [Verbose] > │ while method4(v58, v74) do │
00:04:57 #11142 [Verbose] > │ let v76 : uint64 = v74.l0 │
00:04:57 #11143 [Verbose] > │ let struct (v77 : string, v78 : int64) = v31.[int v76] │
00:04:57 #11144 [Verbose] > │ v73.[int v76] <- v77 │
00:04:57 #11145 [Verbose] > │ let v79 : uint64 = v76 + 1UL │
00:04:57 #11146 [Verbose] > │ v74.l0 <- v79 │
00:04:57 #11147 [Verbose] > │ () │
00:04:57 #11148 [Verbose] > │ let v80 : string = v73.[int 0UL] │
00:04:57 #11149 [Verbose] > │ let v81 : string = $"%A{v80}" │
00:04:57 #11150 [Verbose] > │ let v82 : (int64 []) = Array.zeroCreate<int64> │
00:04:57 #11151 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:04:57 #11152 [Verbose] > │ let v83 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #11153 [Verbose] > │ while method4(v58, v83) do │
00:04:57 #11154 [Verbose] > │ let v85 : uint64 = v83.l0 │
00:04:57 #11155 [Verbose] > │ let struct (v86 : string, v87 : int64) = v31.[int v85] │
00:04:57 #11156 [Verbose] > │ v82.[int v85] <- v87 │
00:04:57 #11157 [Verbose] > │ let v88 : uint64 = v85 + 1UL │
00:04:57 #11158 [Verbose] > │ v83.l0 <- v88 │
00:04:57 #11159 [Verbose] > │ () │
00:04:57 #11160 [Verbose] > │ v11.[int v14] <- struct (v72, v18, v81, v82) │
00:04:57 #11161 [Verbose] > │ let v89 : uint64 = v14 + 1UL │
00:04:57 #11162 [Verbose] > │ v12.l0 <- v89 │
00:04:57 #11163 [Verbose] > │ () │
00:04:57 #11164 [Verbose] > │ let v90 : uint64 = System.Convert.ToUInt64 v11.Length │
00:04:57 #11165 [Verbose] > │ let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:04:57 #11166 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:04:57 #11167 [Verbose] > │ let v92 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:57 #11168 [Verbose] > │ while method4(v90, v92) do │
00:04:57 #11169 [Verbose] > │ let v94 : uint64 = v92.l0 │
00:04:57 #11170 [Verbose] > │ let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │
00:04:57 #11171 [Verbose] > │ ])) = v11.[int v94] │
00:04:57 #11172 [Verbose] > │ let v99 : uint64 = System.Convert.ToUInt64 v98.Length │
00:04:57 #11173 [Verbose] > │ let v100 : UH3 = UH3_0 │
00:04:57 #11174 [Verbose] > │ let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2 │
00:04:57 #11175 [Verbose] > │ while method10(v99, v101) do │
00:04:57 #11176 [Verbose] > │ let v103 : uint64 = v101.l0 │
00:04:57 #11177 [Verbose] > │ let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2 │
00:04:57 #11178 [Verbose] > │ let v106 : int64 = v98.[int v103] │
00:04:57 #11179 [Verbose] > │ let v107 : int64 = v105 + 1L │
00:04:57 #11180 [Verbose] > │ let v108 : uint64 = v103 + 1UL │
00:04:57 #11181 [Verbose] > │ let v109 : UH3 = UH3_1(v105, v106, v104) │
00:04:57 #11182 [Verbose] > │ v101.l0 <- v108 │
00:04:57 #11183 [Verbose] > │ v101.l1 <- v109 │
00:04:57 #11184 [Verbose] > │ v101.l2 <- v107 │
00:04:57 #11185 [Verbose] > │ () │
00:04:57 #11186 [Verbose] > │ let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2 │
00:04:57 #11187 [Verbose] > │ let v112 : UH3 = UH3_0 │
00:04:57 #11188 [Verbose] > │ let v113 : UH3 = method11(v110, v112) │
00:04:57 #11189 [Verbose] > │ let v114 : (struct (int64 * int64) []) = method12(v113) │
00:04:57 #11190 [Verbose] > │ let v115 : int32 = v114.Length │
00:04:57 #11191 [Verbose] > │ let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:04:57 #11192 [Verbose] > │ (int64 * int64)> (v115) │
00:04:57 #11193 [Verbose] > │ let v117 : Mut1 = {l0 = 0} : Mut1 │
00:04:58 #11194 [Verbose] > │ while method15(v115, v117) do │
00:04:58 #11195 [Verbose] > │ let v119 : int32 = v117.l0 │
00:04:58 #11196 [Verbose] > │ let struct (v120 : int64, v121 : int64) = v114.[int v119] │
00:04:58 #11197 [Verbose] > │ let v122 : int64 = v120 + 1L │
00:04:58 #11198 [Verbose] > │ v116.[int v119] <- struct (v122, v121) │
00:04:58 #11199 [Verbose] > │ let v123 : int32 = v119 + 1 │
00:04:58 #11200 [Verbose] > │ v117.l0 <- v123 │
00:04:58 #11201 [Verbose] > │ () │
00:04:58 #11202 [Verbose] > │ let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:04:58 #11203 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:04:58 #11204 [Verbose] > │ let v125 : (struct (int64 * int64) -> int64) = closure4() │
00:04:58 #11205 [Verbose] > │ let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:04:58 #11206 [Verbose] > │ ])) = v124 v125 │
00:04:58 #11207 [Verbose] > │ let v127 : (struct (int64 * int64) []) = v126 v116 │
00:04:58 #11208 [Verbose] > │ let struct (v128 : int64, v129 : int64) = v127.[int 0] │
00:04:58 #11209 [Verbose] > │ let v130 : string = $"%A{struct (v128, v129)}" │
00:04:58 #11210 [Verbose] > │ let v131 : bool = v95 = v97 │
00:04:58 #11211 [Verbose] > │ let v136 : US0 = │
00:04:58 #11212 [Verbose] > │ if v131 then │
00:04:58 #11213 [Verbose] > │ let v132 : System.ConsoleColor = │
00:04:58 #11214 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:04:58 #11215 [Verbose] > │ US0_0(v132) │
00:04:58 #11216 [Verbose] > │ else │
00:04:58 #11217 [Verbose] > │ let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:04:58 #11218 [Verbose] > │ US0_0(v134) │
00:04:58 #11219 [Verbose] > │ let v137 : UH2 = UH2_0 │
00:04:58 #11220 [Verbose] > │ let v138 : UH2 = UH2_1(v130, v137) │
00:04:58 #11221 [Verbose] > │ let v139 : UH2 = UH2_1(v97, v138) │
00:04:58 #11222 [Verbose] > │ let v140 : UH2 = UH2_1(v95, v139) │
00:04:58 #11223 [Verbose] > │ let v141 : UH2 = UH2_1(v96, v140) │
00:04:58 #11224 [Verbose] > │ v91.[int v94] <- struct (v141, v136) │
00:04:58 #11225 [Verbose] > │ let v142 : uint64 = v94 + 1UL │
00:04:58 #11226 [Verbose] > │ v92.l0 <- v142 │
00:04:58 #11227 [Verbose] > │ () │
00:04:58 #11228 [Verbose] > │ let v143 : string = "Input" │
00:04:58 #11229 [Verbose] > │ let v144 : string = "Expected" │
00:04:58 #11230 [Verbose] > │ let v145 : string = "Result" │
00:04:58 #11231 [Verbose] > │ let v146 : string = "Best" │
00:04:58 #11232 [Verbose] > │ let v147 : UH2 = UH2_0 │
00:04:58 #11233 [Verbose] > │ let v148 : UH2 = UH2_1(v146, v147) │
00:04:58 #11234 [Verbose] > │ let v149 : UH2 = UH2_1(v145, v148) │
00:04:58 #11235 [Verbose] > │ let v150 : UH2 = UH2_1(v144, v149) │
00:04:58 #11236 [Verbose] > │ let v151 : UH2 = UH2_1(v143, v150) │
00:04:58 #11237 [Verbose] > │ let v152 : US0 = US0_1 │
00:04:58 #11238 [Verbose] > │ let v153 : string = "---" │
00:04:58 #11239 [Verbose] > │ let v154 : UH2 = UH2_0 │
00:04:58 #11240 [Verbose] > │ let v155 : UH2 = UH2_1(v153, v154) │
00:04:58 #11241 [Verbose] > │ let v156 : UH2 = UH2_1(v153, v155) │
00:04:58 #11242 [Verbose] > │ let v157 : UH2 = UH2_1(v153, v156) │
00:04:58 #11243 [Verbose] > │ let v158 : UH2 = UH2_1(v153, v157) │
00:04:58 #11244 [Verbose] > │ let v159 : US0 = US0_1 │
00:04:58 #11245 [Verbose] > │ let v160 : UH4 = UH4_0 │
00:04:58 #11246 [Verbose] > │ let v161 : UH4 = UH4_1(v158, v159, v160) │
00:04:58 #11247 [Verbose] > │ let v162 : UH4 = UH4_1(v151, v152, v161) │
00:04:58 #11248 [Verbose] > │ let v163 : (struct (UH2 * US0) []) = method16(v162) │
00:04:58 #11249 [Verbose] > │ let v164 : uint64 = System.Convert.ToUInt64 v163.Length │
00:04:58 #11250 [Verbose] > │ let v165 : uint64 = System.Convert.ToUInt64 v91.Length │
00:04:58 #11251 [Verbose] > │ let v166 : uint64 = v164 + v165 │
00:04:58 #11252 [Verbose] > │ let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:04:58 #11253 [Verbose] > │ US0)> (System.Convert.ToInt32(v166)) │
00:04:58 #11254 [Verbose] > │ let v168 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11255 [Verbose] > │ while method4(v166, v168) do │
00:04:58 #11256 [Verbose] > │ let v170 : uint64 = v168.l0 │
00:04:58 #11257 [Verbose] > │ let v171 : bool = v170 < v164 │
00:04:58 #11258 [Verbose] > │ let struct (v177 : UH2, v178 : US0) = │
00:04:58 #11259 [Verbose] > │ if v171 then │
00:04:58 #11260 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = v163.[int v170] │
00:04:58 #11261 [Verbose] > │ struct (v172, v173) │
00:04:58 #11262 [Verbose] > │ else │
00:04:58 #11263 [Verbose] > │ let v174 : uint64 = v170 - v164 │
00:04:58 #11264 [Verbose] > │ let struct (v175 : UH2, v176 : US0) = v91.[int v174] │
00:04:58 #11265 [Verbose] > │ struct (v175, v176) │
00:04:58 #11266 [Verbose] > │ v167.[int v170] <- struct (v177, v178) │
00:04:58 #11267 [Verbose] > │ let v179 : uint64 = v170 + 1UL │
00:04:58 #11268 [Verbose] > │ v168.l0 <- v179 │
00:04:58 #11269 [Verbose] > │ () │
00:04:58 #11270 [Verbose] > │ let v180 : uint64 = System.Convert.ToUInt64 v167.Length │
00:04:58 #11271 [Verbose] > │ let v181 : ((string []) []) = Array.zeroCreate<(string [])> │
00:04:58 #11272 [Verbose] > │ (System.Convert.ToInt32(v180)) │
00:04:58 #11273 [Verbose] > │ let v182 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11274 [Verbose] > │ while method4(v180, v182) do │
00:04:58 #11275 [Verbose] > │ let v184 : uint64 = v182.l0 │
00:04:58 #11276 [Verbose] > │ let struct (v185 : UH2, v186 : US0) = v167.[int v184] │
00:04:58 #11277 [Verbose] > │ let v187 : (string []) = method19(v185) │
00:04:58 #11278 [Verbose] > │ v181.[int v184] <- v187 │
00:04:58 #11279 [Verbose] > │ let v188 : uint64 = v184 + 1UL │
00:04:58 #11280 [Verbose] > │ v182.l0 <- v188 │
00:04:58 #11281 [Verbose] > │ () │
00:04:58 #11282 [Verbose] > │ let v189 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:04:58 #11283 [Verbose] > │ let v190 : ((string []) []) = v189 v181 │
00:04:58 #11284 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:04:58 #11285 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:04:58 #11286 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:04:58 #11287 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11288 [Verbose] > │ while method4(v191, v193) do │
00:04:58 #11289 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:04:58 #11290 [Verbose] > │ let v196 : (string []) = v190.[int v195] │
00:04:58 #11291 [Verbose] > │ let v197 : uint64 = System.Convert.ToUInt64 v196.Length │
00:04:58 #11292 [Verbose] > │ let v198 : (int64 []) = Array.zeroCreate<int64> │
00:04:58 #11293 [Verbose] > │ (System.Convert.ToInt32(v197)) │
00:04:58 #11294 [Verbose] > │ let v199 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11295 [Verbose] > │ while method4(v197, v199) do │
00:04:58 #11296 [Verbose] > │ let v201 : uint64 = v199.l0 │
00:04:58 #11297 [Verbose] > │ let v202 : string = v196.[int v201] │
00:04:58 #11298 [Verbose] > │ let v203 : int64 = System.Convert.ToInt64 v202.Length │
00:04:58 #11299 [Verbose] > │ v198.[int v201] <- v203 │
00:04:58 #11300 [Verbose] > │ let v204 : uint64 = v201 + 1UL │
00:04:58 #11301 [Verbose] > │ v199.l0 <- v204 │
00:04:58 #11302 [Verbose] > │ () │
00:04:58 #11303 [Verbose] > │ let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:04:58 #11304 [Verbose] > │ let v206 : (int64 []) = v205 v198 │
00:04:58 #11305 [Verbose] > │ let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:04:58 #11306 [Verbose] > │ let v208 : ((int64 []) -> int64 option) = v207 0 │
00:04:58 #11307 [Verbose] > │ let v209 : int64 option = v208 v206 │
00:04:58 #11308 [Verbose] > │ let v210 : (int64 -> US1) = method22() │
00:04:58 #11309 [Verbose] > │ let v211 : US1 = US1_1 │
00:04:58 #11310 [Verbose] > │ let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │
00:04:58 #11311 [Verbose] > │ let v215 : int64 = │
00:04:58 #11312 [Verbose] > │ match v212 with │
00:04:58 #11313 [Verbose] > │ | US1_1 -> (* None *) │
00:04:58 #11314 [Verbose] > │ 0L │
00:04:58 #11315 [Verbose] > │ | US1_0(v213) -> (* Some *) │
00:04:58 #11316 [Verbose] > │ v213 │
00:04:58 #11317 [Verbose] > │ v192.[int v195] <- v215 │
00:04:58 #11318 [Verbose] > │ let v216 : uint64 = v195 + 1UL │
00:04:58 #11319 [Verbose] > │ v193.l0 <- v216 │
00:04:58 #11320 [Verbose] > │ () │
00:04:58 #11321 [Verbose] > │ let v217 : uint64 = System.Convert.ToUInt64 v192.Length │
00:04:58 #11322 [Verbose] > │ let v218 : UH5 = UH5_0 │
00:04:58 #11323 [Verbose] > │ let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3 │
00:04:58 #11324 [Verbose] > │ while method23(v217, v219) do │
00:04:58 #11325 [Verbose] > │ let v221 : uint64 = v219.l0 │
00:04:58 #11326 [Verbose] > │ let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2 │
00:04:58 #11327 [Verbose] > │ let v224 : int64 = v192.[int v221] │
00:04:58 #11328 [Verbose] > │ let v225 : int32 = v223 + 1 │
00:04:58 #11329 [Verbose] > │ let v226 : uint64 = v221 + 1UL │
00:04:58 #11330 [Verbose] > │ let v227 : UH5 = UH5_1(v223, v224, v222) │
00:04:58 #11331 [Verbose] > │ v219.l0 <- v226 │
00:04:58 #11332 [Verbose] > │ v219.l1 <- v227 │
00:04:58 #11333 [Verbose] > │ v219.l2 <- v225 │
00:04:58 #11334 [Verbose] > │ () │
00:04:58 #11335 [Verbose] > │ let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2 │
00:04:58 #11336 [Verbose] > │ let v230 : UH5 = UH5_0 │
00:04:58 #11337 [Verbose] > │ let v231 : UH5 = method24(v228, v230) │
00:04:58 #11338 [Verbose] > │ let v232 : (struct (int32 * int64) []) = method25(v231) │
00:04:58 #11339 [Verbose] > │ let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │
00:04:58 #11340 [Verbose] > │ a, b) |> Map.ofArray │
00:04:58 #11341 [Verbose] > │ let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:04:58 #11342 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180)) │
00:04:58 #11343 [Verbose] > │ let v235 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11344 [Verbose] > │ while method4(v180, v235) do │
00:04:58 #11345 [Verbose] > │ let v237 : uint64 = v235.l0 │
00:04:58 #11346 [Verbose] > │ let struct (v238 : UH2, v239 : US0) = v167.[int v237] │
00:04:58 #11347 [Verbose] > │ let v240 : UH6 = UH6_0 │
00:04:58 #11348 [Verbose] > │ let v241 : int32 = 0 │
00:04:58 #11349 [Verbose] > │ let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241) │
00:04:58 #11350 [Verbose] > │ let v244 : UH6 = UH6_0 │
00:04:58 #11351 [Verbose] > │ let v245 : UH6 = method29(v242, v244) │
00:04:58 #11352 [Verbose] > │ let v246 : UH2 = UH2_0 │
00:04:58 #11353 [Verbose] > │ let v247 : UH2 = method30(v233, v245, v246) │
00:04:58 #11354 [Verbose] > │ let v248 : (string []) = method31(v247) │
00:04:58 #11355 [Verbose] > │ v234.[int v237] <- struct (v248, v239) │
00:04:58 #11356 [Verbose] > │ let v249 : uint64 = v237 + 1UL │
00:04:58 #11357 [Verbose] > │ v235.l0 <- v249 │
00:04:58 #11358 [Verbose] > │ () │
00:04:58 #11359 [Verbose] > │ System.Console.WriteLine v2 │
00:04:58 #11360 [Verbose] > │ let v250 : uint64 = System.Convert.ToUInt64 v234.Length │
00:04:58 #11361 [Verbose] > │ let v251 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11362 [Verbose] > │ while method4(v250, v251) do │
00:04:58 #11363 [Verbose] > │ let v253 : uint64 = v251.l0 │
00:04:58 #11364 [Verbose] > │ let struct (v254 : (string []), v255 : US0) = v234.[int v253] │
00:04:58 #11365 [Verbose] > │ match v255 with │
00:04:58 #11366 [Verbose] > │ | US0_1 -> (* None *) │
00:04:58 #11367 [Verbose] > │ let v258 : unit option = None │
00:04:58 #11368 [Verbose] > │ let mutable _v258 = v258 │
00:04:58 #11369 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:58 #11370 [Verbose] > │ () │
00:04:58 #11371 [Verbose] > │ #endif │
00:04:58 #11372 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:58 #11373 [Verbose] > │ () │
00:04:58 #11374 [Verbose] > │ #endif │
00:04:58 #11375 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:58 #11376 [Verbose] > │ () │
00:04:58 #11377 [Verbose] > │ #endif │
00:04:58 #11378 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:58 #11379 [Verbose] > │ System.Console.ResetColor () │
00:04:58 #11380 [Verbose] > │ () │
00:04:58 #11381 [Verbose] > │ #endif │
00:04:58 #11382 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:58 #11383 [Verbose] > │ System.Console.ResetColor () │
00:04:58 #11384 [Verbose] > │ () │
00:04:58 #11385 [Verbose] > │ #endif │
00:04:58 #11386 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:58 #11387 [Verbose] > │ System.Console.ResetColor () │
00:04:58 #11388 [Verbose] > │ () │
00:04:58 #11389 [Verbose] > │ #endif │
00:04:58 #11390 [Verbose] > │ |> fun x -> _v258 <- Some x │
00:04:58 #11391 [Verbose] > │ _v258 |> Option.get │
00:04:58 #11392 [Verbose] > │ () │
00:04:58 #11393 [Verbose] > │ | US0_0(v256) -> (* Some *) │
00:04:58 #11394 [Verbose] > │ let v257 : unit option = None │
00:04:58 #11395 [Verbose] > │ let mutable _v257 = v257 │
00:04:58 #11396 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:58 #11397 [Verbose] > │ () │
00:04:58 #11398 [Verbose] > │ #endif │
00:04:58 #11399 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:58 #11400 [Verbose] > │ () │
00:04:58 #11401 [Verbose] > │ #endif │
00:04:58 #11402 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:58 #11403 [Verbose] > │ () │
00:04:58 #11404 [Verbose] > │ #endif │
00:04:58 #11405 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:58 #11406 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:04:58 #11407 [Verbose] > │ () │
00:04:58 #11408 [Verbose] > │ #endif │
00:04:58 #11409 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:58 #11410 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:04:58 #11411 [Verbose] > │ () │
00:04:58 #11412 [Verbose] > │ #endif │
00:04:58 #11413 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:58 #11414 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:04:58 #11415 [Verbose] > │ () │
00:04:58 #11416 [Verbose] > │ #endif │
00:04:58 #11417 [Verbose] > │ |> fun x -> _v257 <- Some x │
00:04:58 #11418 [Verbose] > │ _v257 |> Option.get │
00:04:58 #11419 [Verbose] > │ () │
00:04:58 #11420 [Verbose] > │ let v259 : string = "\t| " │
00:04:58 #11421 [Verbose] > │ let v260 : string = System.String.Join (v259, v254) │
00:04:58 #11422 [Verbose] > │ System.Console.WriteLine v260 │
00:04:58 #11423 [Verbose] > │ let v261 : unit option = None │
00:04:58 #11424 [Verbose] > │ let mutable _v261 = v261 │
00:04:58 #11425 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:04:58 #11426 [Verbose] > │ () │
00:04:58 #11427 [Verbose] > │ #endif │
00:04:58 #11428 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:04:58 #11429 [Verbose] > │ () │
00:04:58 #11430 [Verbose] > │ #endif │
00:04:58 #11431 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:04:58 #11432 [Verbose] > │ () │
00:04:58 #11433 [Verbose] > │ #endif │
00:04:58 #11434 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:58 #11435 [Verbose] > │ System.Console.ResetColor () │
00:04:58 #11436 [Verbose] > │ () │
00:04:58 #11437 [Verbose] > │ #endif │
00:04:58 #11438 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:04:58 #11439 [Verbose] > │ System.Console.ResetColor () │
00:04:58 #11440 [Verbose] > │ () │
00:04:58 #11441 [Verbose] > │ #endif │
00:04:58 #11442 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:04:58 #11443 [Verbose] > │ System.Console.ResetColor () │
00:04:58 #11444 [Verbose] > │ () │
00:04:58 #11445 [Verbose] > │ #endif │
00:04:58 #11446 [Verbose] > │ |> fun x -> _v261 <- Some x │
00:04:58 #11447 [Verbose] > │ _v261 |> Option.get │
00:04:58 #11448 [Verbose] > │ let v262 : uint64 = v253 + 1UL │
00:04:58 #11449 [Verbose] > │ v251.l0 <- v262 │
00:04:58 #11450 [Verbose] > │ () │
00:04:58 #11451 [Verbose] > │ let v263 : ((float []) []) = Array.zeroCreate<(float [])> │
00:04:58 #11452 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:04:58 #11453 [Verbose] > │ let v264 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11454 [Verbose] > │ while method4(v90, v264) do │
00:04:58 #11455 [Verbose] > │ let v266 : uint64 = v264.l0 │
00:04:58 #11456 [Verbose] > │ let struct (v267 : string, v268 : string, v269 : string, v270 : │
00:04:58 #11457 [Verbose] > │ (int64 [])) = v11.[int v266] │
00:04:58 #11458 [Verbose] > │ let v271 : (int64 -> float) = float │
00:04:58 #11459 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v270.Length │
00:04:58 #11460 [Verbose] > │ let v273 : (float []) = Array.zeroCreate<float> │
00:04:58 #11461 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:04:58 #11462 [Verbose] > │ let v274 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11463 [Verbose] > │ while method4(v272, v274) do │
00:04:58 #11464 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:04:58 #11465 [Verbose] > │ let v277 : int64 = v270.[int v276] │
00:04:58 #11466 [Verbose] > │ let v278 : float = v271 v277 │
00:04:58 #11467 [Verbose] > │ v273.[int v276] <- v278 │
00:04:58 #11468 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:04:58 #11469 [Verbose] > │ v274.l0 <- v279 │
00:04:58 #11470 [Verbose] > │ () │
00:04:58 #11471 [Verbose] > │ v263.[int v266] <- v273 │
00:04:58 #11472 [Verbose] > │ let v280 : uint64 = v266 + 1UL │
00:04:58 #11473 [Verbose] > │ v264.l0 <- v280 │
00:04:58 #11474 [Verbose] > │ () │
00:04:58 #11475 [Verbose] > │ let v281 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:04:58 #11476 [Verbose] > │ let v282 : ((float []) []) = v281 v263 │
00:04:58 #11477 [Verbose] > │ let v283 : uint64 = System.Convert.ToUInt64 v282.Length │
00:04:58 #11478 [Verbose] > │ let v284 : (float []) = Array.zeroCreate<float> │
00:04:58 #11479 [Verbose] > │ (System.Convert.ToInt32(v283)) │
00:04:58 #11480 [Verbose] > │ let v285 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11481 [Verbose] > │ while method4(v283, v285) do │
00:04:58 #11482 [Verbose] > │ let v287 : uint64 = v285.l0 │
00:04:58 #11483 [Verbose] > │ let v288 : (float []) = v282.[int v287] │
00:04:58 #11484 [Verbose] > │ let v289 : ((float []) -> float) = Array.average │
00:04:58 #11485 [Verbose] > │ let v290 : float = v289 v288 │
00:04:58 #11486 [Verbose] > │ v284.[int v287] <- v290 │
00:04:58 #11487 [Verbose] > │ let v291 : uint64 = v287 + 1UL │
00:04:58 #11488 [Verbose] > │ v285.l0 <- v291 │
00:04:58 #11489 [Verbose] > │ () │
00:04:58 #11490 [Verbose] > │ let v292 : (float -> int64) = int64 │
00:04:58 #11491 [Verbose] > │ let v293 : uint64 = System.Convert.ToUInt64 v284.Length │
00:04:58 #11492 [Verbose] > │ let v294 : (int64 []) = Array.zeroCreate<int64> │
00:04:58 #11493 [Verbose] > │ (System.Convert.ToInt32(v293)) │
00:04:58 #11494 [Verbose] > │ let v295 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11495 [Verbose] > │ while method4(v293, v295) do │
00:04:58 #11496 [Verbose] > │ let v297 : uint64 = v295.l0 │
00:04:58 #11497 [Verbose] > │ let v298 : float = v284.[int v297] │
00:04:58 #11498 [Verbose] > │ let v299 : int64 = v292 v298 │
00:04:58 #11499 [Verbose] > │ v294.[int v297] <- v299 │
00:04:58 #11500 [Verbose] > │ let v300 : uint64 = v297 + 1UL │
00:04:58 #11501 [Verbose] > │ v295.l0 <- v300 │
00:04:58 #11502 [Verbose] > │ () │
00:04:58 #11503 [Verbose] > │ let v301 : uint64 = System.Convert.ToUInt64 v294.Length │
00:04:58 #11504 [Verbose] > │ let v302 : UH5 = UH5_0 │
00:04:58 #11505 [Verbose] > │ let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3 │
00:04:58 #11506 [Verbose] > │ while method23(v301, v303) do │
00:04:58 #11507 [Verbose] > │ let v305 : uint64 = v303.l0 │
00:04:58 #11508 [Verbose] > │ let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2 │
00:04:58 #11509 [Verbose] > │ let v308 : int64 = v294.[int v305] │
00:04:58 #11510 [Verbose] > │ let v309 : int32 = v307 + 1 │
00:04:58 #11511 [Verbose] > │ let v310 : uint64 = v305 + 1UL │
00:04:58 #11512 [Verbose] > │ let v311 : UH5 = UH5_1(v307, v308, v306) │
00:04:58 #11513 [Verbose] > │ v303.l0 <- v310 │
00:04:58 #11514 [Verbose] > │ v303.l1 <- v311 │
00:04:58 #11515 [Verbose] > │ v303.l2 <- v309 │
00:04:58 #11516 [Verbose] > │ () │
00:04:58 #11517 [Verbose] > │ let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2 │
00:04:58 #11518 [Verbose] > │ let v314 : UH5 = UH5_0 │
00:04:58 #11519 [Verbose] > │ let v315 : UH5 = method24(v312, v314) │
00:04:58 #11520 [Verbose] > │ let v316 : (struct (int32 * int64) []) = method34(v315) │
00:04:58 #11521 [Verbose] > │ System.Console.WriteLine v2 │
00:04:58 #11522 [Verbose] > │ let v317 : string = "Average Ranking " │
00:04:58 #11523 [Verbose] > │ System.Console.WriteLine v317 │
00:04:58 #11524 [Verbose] > │ let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:04:58 #11525 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:04:58 #11526 [Verbose] > │ let v319 : (struct (int32 * int64) -> int64) = closure6() │
00:04:58 #11527 [Verbose] > │ let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:04:58 #11528 [Verbose] > │ = v318 v319 │
00:04:58 #11529 [Verbose] > │ let v321 : (struct (int32 * int64) []) = v320 v316 │
00:04:58 #11530 [Verbose] > │ let v322 : uint64 = System.Convert.ToUInt64 v321.Length │
00:04:58 #11531 [Verbose] > │ let v323 : Mut0 = {l0 = 0UL} : Mut0 │
00:04:58 #11532 [Verbose] > │ while method4(v322, v323) do │
00:04:58 #11533 [Verbose] > │ let v325 : uint64 = v323.l0 │
00:04:58 #11534 [Verbose] > │ let struct (v326 : int32, v327 : int64) = v321.[int v325] │
00:04:58 #11535 [Verbose] > │ let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │
00:04:58 #11536 [Verbose] > │ " │
00:04:58 #11537 [Verbose] > │ System.Console.WriteLine v328 │
00:04:58 #11538 [Verbose] > │ let v329 : uint64 = v325 + 1UL │
00:04:58 #11539 [Verbose] > │ v323.l0 <- v329 │
00:04:58 #11540 [Verbose] > │ () │
00:04:58 #11541 [Verbose] > │ () │
00:04:58 #11542 [Verbose] > │ method0() │
00:04:58 #11543 [Verbose] > │ │
00:04:58 #11544 [Verbose] > │ │
00:04:58 #11545 [Verbose] > │ │
00:04:58 #11546 [Verbose] > │ Test: v0 │
00:04:58 #11547 [Verbose] > │ │
00:04:58 #11548 [Verbose] > │ Solution: struct ("a", "a") │
00:04:58 #11549 [Verbose] > │ Test case 1. A. Time: 140 │
00:04:58 #11550 [Verbose] > │ Test case 2. B. Time: 130 │
00:04:58 #11551 [Verbose] > │ │
00:04:58 #11552 [Verbose] > │ Solution: struct ("b", "b") │
00:04:58 #11553 [Verbose] > │ Test case 1. A. Time: 130 │
00:04:58 #11554 [Verbose] > │ Test case 2. B. Time: 145 │
00:04:58 #11555 [Verbose] > │ │
00:04:58 #11556 [Verbose] > │ Input | Expected | Result | Best │
00:04:58 #11557 [Verbose] > │ --- | --- | --- | --- │
00:04:58 #11558 [Verbose] > │ struct ("a", "a") | "a" | "a" | struct (2L, 130L) │
00:04:58 #11559 [Verbose] > │ struct ("b", "b") | "b" | "b" | struct (1L, 130L) │
00:04:58 #11560 [Verbose] > │ │
00:04:58 #11561 [Verbose] > │ Average Ranking │
00:04:58 #11562 [Verbose] > │ Test case 1. Average Time: 135L │
00:04:58 #11563 [Verbose] > │ Test case 2. Average Time: 137L │
00:04:58 #11564 [Verbose] > │ │
00:04:58 #11565 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:58 #11566 [Verbose] >
00:04:58 #11567 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:58 #11568 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:58 #11569 [Verbose] > │ ## emptyTests │
00:04:58 #11570 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:58 #11571 [Verbose] >
00:04:58 #11572 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:04:58 #11573 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:04:58 #11574 [Verbose] > │ Test: Empty │
00:04:58 #11575 [Verbose] > │ │
00:04:58 #11576 [Verbose] > │ Solution: 0 │
00:04:58 #11577 [Verbose] > │ Test case 1. A. Time: 61L │
00:04:58 #11578 [Verbose] > │ │
00:04:58 #11579 [Verbose] > │ Solution: 2 │
00:04:58 #11580 [Verbose] > │ Test case 1. A. Time: 62L │
00:04:58 #11581 [Verbose] > │ │
00:04:58 #11582 [Verbose] > │ Solution: 5 │
00:04:58 #11583 [Verbose] > │ Test case 1. A. Time: 70L │
00:04:58 #11584 [Verbose] > │ │
00:04:58 #11585 [Verbose] > │ Input | Expected | Result | Best │
00:04:58 #11586 [Verbose] > │ --- | --- | --- | --- │
00:04:58 #11587 [Verbose] > │ 0 | 0 | 0 | (1, 61) │
00:04:58 #11588 [Verbose] > │ 2 | 2 | 2 | (1, 62) │
00:04:58 #11589 [Verbose] > │ 5 | 5 | 5 | (1, 70) │
00:04:58 #11590 [Verbose] > │ │
00:04:58 #11591 [Verbose] > │ Averages │
00:04:58 #11592 [Verbose] > │ Test case 1. Average Time: 64L │
00:04:58 #11593 [Verbose] > │ │
00:04:58 #11594 [Verbose] > │ Ranking │
00:04:58 #11595 [Verbose] > │ Test case 1. Average Time: 64L │
00:04:58 #11596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:04:58 #11597 [Verbose] >
00:04:58 #11598 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:04:58 #11599 [Verbose] > // // test
00:04:58 #11600 [Verbose] >
00:04:58 #11601 [Verbose] > inl get_solutions () =
00:04:58 #11602 [Verbose] > [[
00:04:58 #11603 [Verbose] > "A",
00:04:58 #11604 [Verbose] > fun n =>
00:04:58 #11605 [Verbose] > n + 1f64
00:04:58 #11606 [Verbose] > ]]
00:04:58 #11607 [Verbose] >
00:04:58 #11608 [Verbose] > inl rec empty_1_tests () =
00:04:58 #11609 [Verbose] > inl test_cases = [[
00:04:58 #11610 [Verbose] > 0, 1
00:04:58 #11611 [Verbose] > 2, 3
00:04:58 #11612 [Verbose] > 5, 6
00:04:58 #11613 [Verbose] > ]]
00:04:58 #11614 [Verbose] >
00:04:58 #11615 [Verbose] > inl solutions = get_solutions ()
00:04:58 #11616 [Verbose] >
00:04:58 #11617 [Verbose] > // inl is_fast () = true
00:04:58 #11618 [Verbose] >
00:04:58 #11619 [Verbose] > inl count =
00:04:58 #11620 [Verbose] > if is_fast ()
00:04:58 #11621 [Verbose] > then 1000i32
00:04:58 #11622 [Verbose] > else 2000000i32
00:04:58 #11623 [Verbose] >
00:04:58 #11624 [Verbose] > run_all (nameof empty_1_tests) count solutions test_cases
00:04:58 #11625 [Verbose] > |> sort_result_list
00:04:58 #11626 [Verbose] >
00:04:58 #11627 [Verbose] > empty_1_tests ()
00:04:58 #11628 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-3051-5139-57075052e503\main.spi
00:05:06 #11629 [Verbose] >
00:05:06 #11630 [Verbose] > ╭─[ 8.32s - stdout ]───────────────────────────────────────────────────────────╮
00:05:06 #11631 [Verbose] > │ type UH0 = │
00:05:06 #11632 [Verbose] > │ | UH0_0 │
00:05:06 #11633 [Verbose] > │ | UH0_1 of float * float * UH0 │
00:05:06 #11634 [Verbose] > │ and Mut0 = {mutable l0 : uint64} │
00:05:06 #11635 [Verbose] > │ and UH1 = │
00:05:06 #11636 [Verbose] > │ | UH1_0 │
00:05:06 #11637 [Verbose] > │ | UH1_1 of int32 * string * (float -> float) * UH1 │
00:05:06 #11638 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:05:06 #11639 [Verbose] > │ and UH2 = │
00:05:06 #11640 [Verbose] > │ | UH2_0 │
00:05:06 #11641 [Verbose] > │ | UH2_1 of string * UH2 │
00:05:06 #11642 [Verbose] > │ and [<Struct>] US0 = │
00:05:06 #11643 [Verbose] > │ | US0_0 of f0_0 : System.ConsoleColor │
00:05:06 #11644 [Verbose] > │ | US0_1 │
00:05:06 #11645 [Verbose] > │ and UH3 = │
00:05:06 #11646 [Verbose] > │ | UH3_0 │
00:05:06 #11647 [Verbose] > │ | UH3_1 of int64 * int64 * UH3 │
00:05:06 #11648 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64} │
00:05:06 #11649 [Verbose] > │ and UH4 = │
00:05:06 #11650 [Verbose] > │ | UH4_0 │
00:05:06 #11651 [Verbose] > │ | UH4_1 of UH2 * US0 * UH4 │
00:05:06 #11652 [Verbose] > │ and [<Struct>] US1 = │
00:05:06 #11653 [Verbose] > │ | US1_0 of f0_0 : int64 │
00:05:06 #11654 [Verbose] > │ | US1_1 │
00:05:06 #11655 [Verbose] > │ and UH5 = │
00:05:06 #11656 [Verbose] > │ | UH5_0 │
00:05:06 #11657 [Verbose] > │ | UH5_1 of int32 * int64 * UH5 │
00:05:06 #11658 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32} │
00:05:06 #11659 [Verbose] > │ and UH6 = │
00:05:06 #11660 [Verbose] > │ | UH6_0 │
00:05:06 #11661 [Verbose] > │ | UH6_1 of int32 * string * UH6 │
00:05:06 #11662 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 = │
00:05:06 #11663 [Verbose] > │ match v0 with │
00:05:06 #11664 [Verbose] > │ | UH0_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11665 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:05:06 #11666 [Verbose] > │ method2(v4, v5) │
00:05:06 #11667 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:05:06 #11668 [Verbose] > │ v1 │
00:05:06 #11669 [Verbose] > │ and method3 (v0 : (struct (float * float) []), v1 : UH0, v2 : uint64) : │
00:05:06 #11670 [Verbose] > │ uint64 = │
00:05:06 #11671 [Verbose] > │ match v1 with │
00:05:06 #11672 [Verbose] > │ | UH0_1(v3, v4, v5) -> (* Cons *) │
00:05:06 #11673 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:05:06 #11674 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:05:06 #11675 [Verbose] > │ method3(v0, v5, v6) │
00:05:06 #11676 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:05:06 #11677 [Verbose] > │ v2 │
00:05:06 #11678 [Verbose] > │ and method1 (v0 : UH0) : (struct (float * float) []) = │
00:05:06 #11679 [Verbose] > │ let v1 : uint64 = 0UL │
00:05:06 #11680 [Verbose] > │ let v2 : uint64 = method2(v0, v1) │
00:05:06 #11681 [Verbose] > │ let v3 : (struct (float * float) []) = Array.zeroCreate<struct (float * │
00:05:06 #11682 [Verbose] > │ float)> (System.Convert.ToInt32(v2)) │
00:05:06 #11683 [Verbose] > │ let v4 : uint64 = 0UL │
00:05:06 #11684 [Verbose] > │ let v5 : uint64 = method3(v3, v0, v4) │
00:05:06 #11685 [Verbose] > │ v3 │
00:05:06 #11686 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool = │
00:05:06 #11687 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:05:06 #11688 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:06 #11689 [Verbose] > │ v3 │
00:05:06 #11690 [Verbose] > │ and closure1 () (v0 : float) : float = │
00:05:06 #11691 [Verbose] > │ let v1 : float = v0 + 1.0 │
00:05:06 #11692 [Verbose] > │ v1 │
00:05:06 #11693 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 = │
00:05:06 #11694 [Verbose] > │ match v0 with │
00:05:06 #11695 [Verbose] > │ | UH1_1(v2, v3, v4, v5) -> (* Cons *) │
00:05:06 #11696 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:05:06 #11697 [Verbose] > │ method6(v5, v6) │
00:05:06 #11698 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:06 #11699 [Verbose] > │ v1 │
00:05:06 #11700 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (float -> float)) []), v1 : UH1, │
00:05:06 #11701 [Verbose] > │ v2 : uint64) : uint64 = │
00:05:06 #11702 [Verbose] > │ match v1 with │
00:05:06 #11703 [Verbose] > │ | UH1_1(v3, v4, v5, v6) -> (* Cons *) │
00:05:06 #11704 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:05:06 #11705 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:05:06 #11706 [Verbose] > │ method7(v0, v6, v7) │
00:05:06 #11707 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:06 #11708 [Verbose] > │ v2 │
00:05:06 #11709 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (float -> float)) []) = │
00:05:06 #11710 [Verbose] > │ let v1 : uint64 = 0UL │
00:05:06 #11711 [Verbose] > │ let v2 : uint64 = method6(v0, v1) │
00:05:06 #11712 [Verbose] > │ let v3 : (struct (int32 * string * (float -> float)) []) = │
00:05:06 #11713 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (float -> float))> │
00:05:06 #11714 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:05:06 #11715 [Verbose] > │ let v4 : uint64 = 0UL │
00:05:06 #11716 [Verbose] > │ let v5 : uint64 = method7(v3, v0, v4) │
00:05:06 #11717 [Verbose] > │ v3 │
00:05:06 #11718 [Verbose] > │ and method8 (v0 : Mut1) : bool = │
00:05:06 #11719 [Verbose] > │ let v1 : int32 = v0.l0 │
00:05:06 #11720 [Verbose] > │ let v2 : bool = v1 < 2000001 │
00:05:06 #11721 [Verbose] > │ v2 │
00:05:06 #11722 [Verbose] > │ and closure2 (v0 : float, v1 : (float -> float)) (v2 : int32) : float = │
00:05:06 #11723 [Verbose] > │ v1 v0 │
00:05:06 #11724 [Verbose] > │ and method9 (v0 : float, v1 : (float []), v2 : uint64) : bool = │
00:05:06 #11725 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:05:06 #11726 [Verbose] > │ let v4 : bool = v2 < v3 │
00:05:06 #11727 [Verbose] > │ if v4 then │
00:05:06 #11728 [Verbose] > │ let v5 : float = v1.[int v2] │
00:05:06 #11729 [Verbose] > │ let v6 : bool = v0 = v5 │
00:05:06 #11730 [Verbose] > │ if v6 then │
00:05:06 #11731 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:05:06 #11732 [Verbose] > │ method9(v0, v1, v7) │
00:05:06 #11733 [Verbose] > │ else │
00:05:06 #11734 [Verbose] > │ false │
00:05:06 #11735 [Verbose] > │ else │
00:05:06 #11736 [Verbose] > │ true │
00:05:06 #11737 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool = │
00:05:06 #11738 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:05:06 #11739 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:06 #11740 [Verbose] > │ v3 │
00:05:06 #11741 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 = │
00:05:06 #11742 [Verbose] > │ match v0 with │
00:05:06 #11743 [Verbose] > │ | UH3_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11744 [Verbose] > │ let v5 : UH3 = UH3_1(v2, v3, v1) │
00:05:06 #11745 [Verbose] > │ method11(v4, v5) │
00:05:06 #11746 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:05:06 #11747 [Verbose] > │ v1 │
00:05:06 #11748 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 = │
00:05:06 #11749 [Verbose] > │ match v0 with │
00:05:06 #11750 [Verbose] > │ | UH3_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11751 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:05:06 #11752 [Verbose] > │ method13(v4, v5) │
00:05:06 #11753 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:05:06 #11754 [Verbose] > │ v1 │
00:05:06 #11755 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) : │
00:05:06 #11756 [Verbose] > │ int32 = │
00:05:06 #11757 [Verbose] > │ match v1 with │
00:05:06 #11758 [Verbose] > │ | UH3_1(v3, v4, v5) -> (* Cons *) │
00:05:06 #11759 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:05:06 #11760 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:05:06 #11761 [Verbose] > │ method14(v0, v5, v6) │
00:05:06 #11762 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:05:06 #11763 [Verbose] > │ v2 │
00:05:06 #11764 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) = │
00:05:06 #11765 [Verbose] > │ let v1 : int32 = 0 │
00:05:06 #11766 [Verbose] > │ let v2 : int32 = method13(v0, v1) │
00:05:06 #11767 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:05:06 #11768 [Verbose] > │ int64)> (v2) │
00:05:06 #11769 [Verbose] > │ let v4 : int32 = 0 │
00:05:06 #11770 [Verbose] > │ let v5 : int32 = method14(v3, v0, v4) │
00:05:06 #11771 [Verbose] > │ v3 │
00:05:06 #11772 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool = │
00:05:06 #11773 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:06 #11774 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:06 #11775 [Verbose] > │ v3 │
00:05:06 #11776 [Verbose] > │ and closure3 () struct (v0 : int64, v1 : int64) : int64 = │
00:05:06 #11777 [Verbose] > │ v1 │
00:05:06 #11778 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 = │
00:05:06 #11779 [Verbose] > │ match v0 with │
00:05:06 #11780 [Verbose] > │ | UH4_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11781 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:05:06 #11782 [Verbose] > │ method17(v4, v5) │
00:05:06 #11783 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:05:06 #11784 [Verbose] > │ v1 │
00:05:06 #11785 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64 │
00:05:06 #11786 [Verbose] > │ = │
00:05:06 #11787 [Verbose] > │ match v1 with │
00:05:06 #11788 [Verbose] > │ | UH4_1(v3, v4, v5) -> (* Cons *) │
00:05:06 #11789 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:05:06 #11790 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:05:06 #11791 [Verbose] > │ method18(v0, v5, v6) │
00:05:06 #11792 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:05:06 #11793 [Verbose] > │ v2 │
00:05:06 #11794 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) = │
00:05:06 #11795 [Verbose] > │ let v1 : uint64 = 0UL │
00:05:06 #11796 [Verbose] > │ let v2 : uint64 = method17(v0, v1) │
00:05:06 #11797 [Verbose] > │ let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:05:06 #11798 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:05:06 #11799 [Verbose] > │ let v4 : uint64 = 0UL │
00:05:06 #11800 [Verbose] > │ let v5 : uint64 = method18(v3, v0, v4) │
00:05:06 #11801 [Verbose] > │ v3 │
00:05:06 #11802 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 = │
00:05:06 #11803 [Verbose] > │ match v0 with │
00:05:06 #11804 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:05:06 #11805 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:05:06 #11806 [Verbose] > │ method20(v3, v4) │
00:05:06 #11807 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:05:06 #11808 [Verbose] > │ v1 │
00:05:06 #11809 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:05:06 #11810 [Verbose] > │ match v1 with │
00:05:06 #11811 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:05:06 #11812 [Verbose] > │ v0.[int v2] <- v3 │
00:05:06 #11813 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:05:06 #11814 [Verbose] > │ method21(v0, v4, v5) │
00:05:06 #11815 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:05:06 #11816 [Verbose] > │ v2 │
00:05:06 #11817 [Verbose] > │ and method19 (v0 : UH2) : (string []) = │
00:05:06 #11818 [Verbose] > │ let v1 : uint64 = 0UL │
00:05:06 #11819 [Verbose] > │ let v2 : uint64 = method20(v0, v1) │
00:05:06 #11820 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:05:06 #11821 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:05:06 #11822 [Verbose] > │ let v4 : uint64 = 0UL │
00:05:06 #11823 [Verbose] > │ let v5 : uint64 = method21(v3, v0, v4) │
00:05:06 #11824 [Verbose] > │ v3 │
00:05:06 #11825 [Verbose] > │ and closure4 () (v0 : int64) : US1 = │
00:05:06 #11826 [Verbose] > │ US1_0(v0) │
00:05:06 #11827 [Verbose] > │ and method22 () : (int64 -> US1) = │
00:05:06 #11828 [Verbose] > │ closure4() │
00:05:06 #11829 [Verbose] > │ and method23 (v0 : uint64, v1 : Mut3) : bool = │
00:05:06 #11830 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:05:06 #11831 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:06 #11832 [Verbose] > │ v3 │
00:05:06 #11833 [Verbose] > │ and method24 (v0 : UH5, v1 : UH5) : UH5 = │
00:05:06 #11834 [Verbose] > │ match v0 with │
00:05:06 #11835 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11836 [Verbose] > │ let v5 : UH5 = UH5_1(v2, v3, v1) │
00:05:06 #11837 [Verbose] > │ method24(v4, v5) │
00:05:06 #11838 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:05:06 #11839 [Verbose] > │ v1 │
00:05:06 #11840 [Verbose] > │ and method26 (v0 : UH5, v1 : int32) : int32 = │
00:05:06 #11841 [Verbose] > │ match v0 with │
00:05:06 #11842 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11843 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:05:06 #11844 [Verbose] > │ method26(v4, v5) │
00:05:06 #11845 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:05:06 #11846 [Verbose] > │ v1 │
00:05:06 #11847 [Verbose] > │ and method27 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) : │
00:05:06 #11848 [Verbose] > │ int32 = │
00:05:06 #11849 [Verbose] > │ match v1 with │
00:05:06 #11850 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:05:06 #11851 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:05:06 #11852 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:05:06 #11853 [Verbose] > │ method27(v0, v5, v6) │
00:05:06 #11854 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:05:06 #11855 [Verbose] > │ v2 │
00:05:06 #11856 [Verbose] > │ and method25 (v0 : UH5) : (struct (int32 * int64) []) = │
00:05:06 #11857 [Verbose] > │ let v1 : int32 = 0 │
00:05:06 #11858 [Verbose] > │ let v2 : int32 = method26(v0, v1) │
00:05:06 #11859 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:05:06 #11860 [Verbose] > │ int64)> (v2) │
00:05:06 #11861 [Verbose] > │ let v4 : int32 = 0 │
00:05:06 #11862 [Verbose] > │ let v5 : int32 = method27(v3, v0, v4) │
00:05:06 #11863 [Verbose] > │ v3 │
00:05:06 #11864 [Verbose] > │ and method28 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) = │
00:05:06 #11865 [Verbose] > │ match v0 with │
00:05:06 #11866 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:05:06 #11867 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:06 #11868 [Verbose] > │ let v6 : UH6 = UH6_1(v2, v3, v1) │
00:05:06 #11869 [Verbose] > │ method28(v4, v6, v5) │
00:05:06 #11870 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:05:06 #11871 [Verbose] > │ struct (v1, v2) │
00:05:06 #11872 [Verbose] > │ and method29 (v0 : UH6, v1 : UH6) : UH6 = │
00:05:06 #11873 [Verbose] > │ match v0 with │
00:05:06 #11874 [Verbose] > │ | UH6_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11875 [Verbose] > │ let v5 : UH6 = UH6_1(v2, v3, v1) │
00:05:06 #11876 [Verbose] > │ method29(v4, v5) │
00:05:06 #11877 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:05:06 #11878 [Verbose] > │ v1 │
00:05:06 #11879 [Verbose] > │ and method30 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 = │
00:05:06 #11880 [Verbose] > │ match v1 with │
00:05:06 #11881 [Verbose] > │ | UH6_1(v3, v4, v5) -> (* Cons *) │
00:05:06 #11882 [Verbose] > │ let v6 : UH2 = method30(v0, v5, v2) │
00:05:06 #11883 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:05:06 #11884 [Verbose] > │ let v8 : int32 = int32 v7 │
00:05:06 #11885 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:05:06 #11886 [Verbose] > │ UH2_1(v9, v6) │
00:05:06 #11887 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:05:06 #11888 [Verbose] > │ v2 │
00:05:06 #11889 [Verbose] > │ and method32 (v0 : UH2, v1 : int32) : int32 = │
00:05:06 #11890 [Verbose] > │ match v0 with │
00:05:06 #11891 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:05:06 #11892 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:05:06 #11893 [Verbose] > │ method32(v3, v4) │
00:05:06 #11894 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:05:06 #11895 [Verbose] > │ v1 │
00:05:06 #11896 [Verbose] > │ and method33 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:05:06 #11897 [Verbose] > │ match v1 with │
00:05:06 #11898 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:05:06 #11899 [Verbose] > │ v0.[int v2] <- v3 │
00:05:06 #11900 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:05:06 #11901 [Verbose] > │ method33(v0, v4, v5) │
00:05:06 #11902 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:05:06 #11903 [Verbose] > │ v2 │
00:05:06 #11904 [Verbose] > │ and method31 (v0 : UH2) : (string []) = │
00:05:06 #11905 [Verbose] > │ let v1 : int32 = 0 │
00:05:06 #11906 [Verbose] > │ let v2 : int32 = method32(v0, v1) │
00:05:06 #11907 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:05:06 #11908 [Verbose] > │ let v4 : int32 = 0 │
00:05:06 #11909 [Verbose] > │ let v5 : int32 = method33(v3, v0, v4) │
00:05:06 #11910 [Verbose] > │ v3 │
00:05:06 #11911 [Verbose] > │ and method35 (v0 : UH5, v1 : uint64) : uint64 = │
00:05:06 #11912 [Verbose] > │ match v0 with │
00:05:06 #11913 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:05:06 #11914 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:05:06 #11915 [Verbose] > │ method35(v4, v5) │
00:05:06 #11916 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:05:06 #11917 [Verbose] > │ v1 │
00:05:06 #11918 [Verbose] > │ and method36 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) : │
00:05:06 #11919 [Verbose] > │ uint64 = │
00:05:06 #11920 [Verbose] > │ match v1 with │
00:05:06 #11921 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:05:06 #11922 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:05:06 #11923 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:05:06 #11924 [Verbose] > │ method36(v0, v5, v6) │
00:05:06 #11925 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:05:06 #11926 [Verbose] > │ v2 │
00:05:06 #11927 [Verbose] > │ and method34 (v0 : UH5) : (struct (int32 * int64) []) = │
00:05:06 #11928 [Verbose] > │ let v1 : uint64 = 0UL │
00:05:06 #11929 [Verbose] > │ let v2 : uint64 = method35(v0, v1) │
00:05:06 #11930 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:05:06 #11931 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:05:06 #11932 [Verbose] > │ let v4 : uint64 = 0UL │
00:05:06 #11933 [Verbose] > │ let v5 : uint64 = method36(v3, v0, v4) │
00:05:06 #11934 [Verbose] > │ v3 │
00:05:06 #11935 [Verbose] > │ and closure5 () struct (v0 : int32, v1 : int64) : int64 = │
00:05:06 #11936 [Verbose] > │ v1 │
00:05:06 #11937 [Verbose] > │ and closure0 () () : unit = │
00:05:06 #11938 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:05:06 #11939 [Verbose] > │ let v1 : string = nameof v0 │
00:05:06 #11940 [Verbose] > │ let v2 : string = "" │
00:05:06 #11941 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #11942 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #11943 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:05:06 #11944 [Verbose] > │ System.Console.WriteLine v3 │
00:05:06 #11945 [Verbose] > │ let v4 : float = 0.0 │
00:05:06 #11946 [Verbose] > │ let v5 : float = 1.0 │
00:05:06 #11947 [Verbose] > │ let v6 : float = 2.0 │
00:05:06 #11948 [Verbose] > │ let v7 : float = 3.0 │
00:05:06 #11949 [Verbose] > │ let v8 : float = 5.0 │
00:05:06 #11950 [Verbose] > │ let v9 : float = 6.0 │
00:05:06 #11951 [Verbose] > │ let v10 : UH0 = UH0_0 │
00:05:06 #11952 [Verbose] > │ let v11 : UH0 = UH0_1(v8, v9, v10) │
00:05:06 #11953 [Verbose] > │ let v12 : UH0 = UH0_1(v6, v7, v11) │
00:05:06 #11954 [Verbose] > │ let v13 : UH0 = UH0_1(v4, v5, v12) │
00:05:06 #11955 [Verbose] > │ let v14 : (struct (float * float) []) = method1(v13) │
00:05:06 #11956 [Verbose] > │ let v15 : uint64 = System.Convert.ToUInt64 v14.Length │
00:05:06 #11957 [Verbose] > │ let v16 : (struct (string * string * string * (int64 [])) []) = │
00:05:06 #11958 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:05:06 #11959 [Verbose] > │ (System.Convert.ToInt32(v15)) │
00:05:06 #11960 [Verbose] > │ let v17 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #11961 [Verbose] > │ while method4(v15, v17) do │
00:05:06 #11962 [Verbose] > │ let v19 : uint64 = v17.l0 │
00:05:06 #11963 [Verbose] > │ let struct (v20 : float, v21 : float) = v14.[int v19] │
00:05:06 #11964 [Verbose] > │ let v22 : string = $"%A{v20}" │
00:05:06 #11965 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #11966 [Verbose] > │ let v23 : string = $"Solution: {v22} " │
00:05:06 #11967 [Verbose] > │ System.Console.WriteLine v23 │
00:05:06 #11968 [Verbose] > │ let v24 : int32 = 0 │
00:05:06 #11969 [Verbose] > │ let v25 : string = "A" │
00:05:06 #11970 [Verbose] > │ let v26 : (float -> float) = closure1() │
00:05:06 #11971 [Verbose] > │ let v27 : UH1 = UH1_0 │
00:05:06 #11972 [Verbose] > │ let v28 : UH1 = UH1_1(v24, v25, v26, v27) │
00:05:06 #11973 [Verbose] > │ let v29 : (struct (int32 * string * (float -> float)) []) = │
00:05:06 #11974 [Verbose] > │ method5(v28) │
00:05:06 #11975 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:05:06 #11976 [Verbose] > │ let v31 : (struct (float * int64) []) = Array.zeroCreate<struct │
00:05:06 #11977 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30)) │
00:05:06 #11978 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #11979 [Verbose] > │ while method4(v30, v32) do │
00:05:06 #11980 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:05:06 #11981 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │
00:05:06 #11982 [Verbose] > │ v29.[int v34] │
00:05:06 #11983 [Verbose] > │ let v38 : unit option = None │
00:05:06 #11984 [Verbose] > │ let mutable _v38 = v38 │
00:05:06 #11985 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:06 #11986 [Verbose] > │ () │
00:05:06 #11987 [Verbose] > │ #endif │
00:05:06 #11988 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:06 #11989 [Verbose] > │ () │
00:05:06 #11990 [Verbose] > │ #endif │
00:05:06 #11991 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:06 #11992 [Verbose] > │ () │
00:05:06 #11993 [Verbose] > │ #endif │
00:05:06 #11994 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #11995 [Verbose] > │ System.GC.Collect () │
00:05:06 #11996 [Verbose] > │ () │
00:05:06 #11997 [Verbose] > │ #endif │
00:05:06 #11998 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #11999 [Verbose] > │ System.GC.Collect () │
00:05:06 #12000 [Verbose] > │ () │
00:05:06 #12001 [Verbose] > │ #endif │
00:05:06 #12002 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:06 #12003 [Verbose] > │ System.GC.Collect () │
00:05:06 #12004 [Verbose] > │ () │
00:05:06 #12005 [Verbose] > │ #endif │
00:05:06 #12006 [Verbose] > │ |> fun x -> _v38 <- Some x │
00:05:06 #12007 [Verbose] > │ _v38 |> Option.get │
00:05:06 #12008 [Verbose] > │ let v39 : (unit -> System.Diagnostics.Stopwatch) = │
00:05:06 #12009 [Verbose] > │ System.Diagnostics.Stopwatch │
00:05:06 #12010 [Verbose] > │ let v40 : System.Diagnostics.Stopwatch = v39 () │
00:05:06 #12011 [Verbose] > │ v40.Start () │
00:05:06 #12012 [Verbose] > │ let v41 : int64 = v40.ElapsedMilliseconds │
00:05:06 #12013 [Verbose] > │ let v42 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:05:06 #12014 [Verbose] > │ let v43 : Mut1 = {l0 = 0} : Mut1 │
00:05:06 #12015 [Verbose] > │ while method8(v43) do │
00:05:06 #12016 [Verbose] > │ let v45 : int32 = v43.l0 │
00:05:06 #12017 [Verbose] > │ v42.[int v45] <- v45 │
00:05:06 #12018 [Verbose] > │ let v46 : int32 = v45 + 1 │
00:05:06 #12019 [Verbose] > │ v43.l0 <- v46 │
00:05:06 #12020 [Verbose] > │ () │
00:05:06 #12021 [Verbose] > │ let v47 : ((int32 -> float) -> ((int32 []) -> (float []))) = │
00:05:06 #12022 [Verbose] > │ Array.Parallel.map │
00:05:06 #12023 [Verbose] > │ let v48 : (int32 -> float) = closure2(v20, v37) │
00:05:06 #12024 [Verbose] > │ let v49 : ((int32 []) -> (float [])) = v47 v48 │
00:05:06 #12025 [Verbose] > │ let v50 : (float []) = v49 v42 │
00:05:06 #12026 [Verbose] > │ let v51 : int32 = v50.Length │
00:05:06 #12027 [Verbose] > │ let v52 : int32 = v51 - 1 │
00:05:06 #12028 [Verbose] > │ let v53 : float = v50.[int v52] │
00:05:06 #12029 [Verbose] > │ let v54 : int64 = v40.ElapsedMilliseconds │
00:05:06 #12030 [Verbose] > │ let v55 : int64 = v54 - v41 │
00:05:06 #12031 [Verbose] > │ let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55} " │
00:05:06 #12032 [Verbose] > │ System.Console.WriteLine v56 │
00:05:06 #12033 [Verbose] > │ v31.[int v34] <- struct (v53, v55) │
00:05:06 #12034 [Verbose] > │ let v57 : uint64 = v34 + 1UL │
00:05:06 #12035 [Verbose] > │ v32.l0 <- v57 │
00:05:06 #12036 [Verbose] > │ () │
00:05:06 #12037 [Verbose] > │ let v58 : uint64 = System.Convert.ToUInt64 v31.Length │
00:05:06 #12038 [Verbose] > │ let v59 : (float []) = Array.zeroCreate<float> │
00:05:06 #12039 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:05:06 #12040 [Verbose] > │ let v60 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12041 [Verbose] > │ while method4(v58, v60) do │
00:05:06 #12042 [Verbose] > │ let v62 : uint64 = v60.l0 │
00:05:06 #12043 [Verbose] > │ let struct (v63 : float, v64 : int64) = v31.[int v62] │
00:05:06 #12044 [Verbose] > │ v59.[int v62] <- v63 │
00:05:06 #12045 [Verbose] > │ let v65 : uint64 = v62 + 1UL │
00:05:06 #12046 [Verbose] > │ v60.l0 <- v65 │
00:05:06 #12047 [Verbose] > │ () │
00:05:06 #12048 [Verbose] > │ let v66 : uint64 = System.Convert.ToUInt64 v59.Length │
00:05:06 #12049 [Verbose] > │ let v67 : bool = v66 <= 1UL │
00:05:06 #12050 [Verbose] > │ if v67 then │
00:05:06 #12051 [Verbose] > │ () │
00:05:06 #12052 [Verbose] > │ else │
00:05:06 #12053 [Verbose] > │ let v68 : float = v59.[int 0UL] │
00:05:06 #12054 [Verbose] > │ let v69 : uint64 = 0UL │
00:05:06 #12055 [Verbose] > │ let v70 : bool = method9(v68, v59, v69) │
00:05:06 #12056 [Verbose] > │ if v70 then │
00:05:06 #12057 [Verbose] > │ () │
00:05:06 #12058 [Verbose] > │ else │
00:05:06 #12059 [Verbose] > │ let v71 : string = $"Challenge error: {v59}" │
00:05:06 #12060 [Verbose] > │ failwith<unit> v71 │
00:05:06 #12061 [Verbose] > │ let v72 : string = $"%A{v21}" │
00:05:06 #12062 [Verbose] > │ let v73 : (float []) = Array.zeroCreate<float> │
00:05:06 #12063 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:05:06 #12064 [Verbose] > │ let v74 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12065 [Verbose] > │ while method4(v58, v74) do │
00:05:06 #12066 [Verbose] > │ let v76 : uint64 = v74.l0 │
00:05:06 #12067 [Verbose] > │ let struct (v77 : float, v78 : int64) = v31.[int v76] │
00:05:06 #12068 [Verbose] > │ v73.[int v76] <- v77 │
00:05:06 #12069 [Verbose] > │ let v79 : uint64 = v76 + 1UL │
00:05:06 #12070 [Verbose] > │ v74.l0 <- v79 │
00:05:06 #12071 [Verbose] > │ () │
00:05:06 #12072 [Verbose] > │ let v80 : float = v73.[int 0UL] │
00:05:06 #12073 [Verbose] > │ let v81 : string = $"%A{v80}" │
00:05:06 #12074 [Verbose] > │ let v82 : (int64 []) = Array.zeroCreate<int64> │
00:05:06 #12075 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:05:06 #12076 [Verbose] > │ let v83 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12077 [Verbose] > │ while method4(v58, v83) do │
00:05:06 #12078 [Verbose] > │ let v85 : uint64 = v83.l0 │
00:05:06 #12079 [Verbose] > │ let struct (v86 : float, v87 : int64) = v31.[int v85] │
00:05:06 #12080 [Verbose] > │ v82.[int v85] <- v87 │
00:05:06 #12081 [Verbose] > │ let v88 : uint64 = v85 + 1UL │
00:05:06 #12082 [Verbose] > │ v83.l0 <- v88 │
00:05:06 #12083 [Verbose] > │ () │
00:05:06 #12084 [Verbose] > │ v16.[int v19] <- struct (v72, v22, v81, v82) │
00:05:06 #12085 [Verbose] > │ let v89 : uint64 = v19 + 1UL │
00:05:06 #12086 [Verbose] > │ v17.l0 <- v89 │
00:05:06 #12087 [Verbose] > │ () │
00:05:06 #12088 [Verbose] > │ let v90 : uint64 = System.Convert.ToUInt64 v16.Length │
00:05:06 #12089 [Verbose] > │ let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:05:06 #12090 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:05:06 #12091 [Verbose] > │ let v92 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12092 [Verbose] > │ while method4(v90, v92) do │
00:05:06 #12093 [Verbose] > │ let v94 : uint64 = v92.l0 │
00:05:06 #12094 [Verbose] > │ let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │
00:05:06 #12095 [Verbose] > │ ])) = v16.[int v94] │
00:05:06 #12096 [Verbose] > │ let v99 : uint64 = System.Convert.ToUInt64 v98.Length │
00:05:06 #12097 [Verbose] > │ let v100 : UH3 = UH3_0 │
00:05:06 #12098 [Verbose] > │ let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2 │
00:05:06 #12099 [Verbose] > │ while method10(v99, v101) do │
00:05:06 #12100 [Verbose] > │ let v103 : uint64 = v101.l0 │
00:05:06 #12101 [Verbose] > │ let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2 │
00:05:06 #12102 [Verbose] > │ let v106 : int64 = v98.[int v103] │
00:05:06 #12103 [Verbose] > │ let v107 : int64 = v105 + 1L │
00:05:06 #12104 [Verbose] > │ let v108 : uint64 = v103 + 1UL │
00:05:06 #12105 [Verbose] > │ let v109 : UH3 = UH3_1(v105, v106, v104) │
00:05:06 #12106 [Verbose] > │ v101.l0 <- v108 │
00:05:06 #12107 [Verbose] > │ v101.l1 <- v109 │
00:05:06 #12108 [Verbose] > │ v101.l2 <- v107 │
00:05:06 #12109 [Verbose] > │ () │
00:05:06 #12110 [Verbose] > │ let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2 │
00:05:06 #12111 [Verbose] > │ let v112 : UH3 = UH3_0 │
00:05:06 #12112 [Verbose] > │ let v113 : UH3 = method11(v110, v112) │
00:05:06 #12113 [Verbose] > │ let v114 : (struct (int64 * int64) []) = method12(v113) │
00:05:06 #12114 [Verbose] > │ let v115 : int32 = v114.Length │
00:05:06 #12115 [Verbose] > │ let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:05:06 #12116 [Verbose] > │ (int64 * int64)> (v115) │
00:05:06 #12117 [Verbose] > │ let v117 : Mut1 = {l0 = 0} : Mut1 │
00:05:06 #12118 [Verbose] > │ while method15(v115, v117) do │
00:05:06 #12119 [Verbose] > │ let v119 : int32 = v117.l0 │
00:05:06 #12120 [Verbose] > │ let struct (v120 : int64, v121 : int64) = v114.[int v119] │
00:05:06 #12121 [Verbose] > │ let v122 : int64 = v120 + 1L │
00:05:06 #12122 [Verbose] > │ v116.[int v119] <- struct (v122, v121) │
00:05:06 #12123 [Verbose] > │ let v123 : int32 = v119 + 1 │
00:05:06 #12124 [Verbose] > │ v117.l0 <- v123 │
00:05:06 #12125 [Verbose] > │ () │
00:05:06 #12126 [Verbose] > │ let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:05:06 #12127 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:05:06 #12128 [Verbose] > │ let v125 : (struct (int64 * int64) -> int64) = closure3() │
00:05:06 #12129 [Verbose] > │ let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:05:06 #12130 [Verbose] > │ ])) = v124 v125 │
00:05:06 #12131 [Verbose] > │ let v127 : (struct (int64 * int64) []) = v126 v116 │
00:05:06 #12132 [Verbose] > │ let struct (v128 : int64, v129 : int64) = v127.[int 0] │
00:05:06 #12133 [Verbose] > │ let v130 : string = $"%A{struct (v128, v129)}" │
00:05:06 #12134 [Verbose] > │ let v131 : bool = v95 = v97 │
00:05:06 #12135 [Verbose] > │ let v136 : US0 = │
00:05:06 #12136 [Verbose] > │ if v131 then │
00:05:06 #12137 [Verbose] > │ let v132 : System.ConsoleColor = │
00:05:06 #12138 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:05:06 #12139 [Verbose] > │ US0_0(v132) │
00:05:06 #12140 [Verbose] > │ else │
00:05:06 #12141 [Verbose] > │ let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:05:06 #12142 [Verbose] > │ US0_0(v134) │
00:05:06 #12143 [Verbose] > │ let v137 : UH2 = UH2_0 │
00:05:06 #12144 [Verbose] > │ let v138 : UH2 = UH2_1(v130, v137) │
00:05:06 #12145 [Verbose] > │ let v139 : UH2 = UH2_1(v97, v138) │
00:05:06 #12146 [Verbose] > │ let v140 : UH2 = UH2_1(v95, v139) │
00:05:06 #12147 [Verbose] > │ let v141 : UH2 = UH2_1(v96, v140) │
00:05:06 #12148 [Verbose] > │ v91.[int v94] <- struct (v141, v136) │
00:05:06 #12149 [Verbose] > │ let v142 : uint64 = v94 + 1UL │
00:05:06 #12150 [Verbose] > │ v92.l0 <- v142 │
00:05:06 #12151 [Verbose] > │ () │
00:05:06 #12152 [Verbose] > │ let v143 : string = "Input" │
00:05:06 #12153 [Verbose] > │ let v144 : string = "Expected" │
00:05:06 #12154 [Verbose] > │ let v145 : string = "Result" │
00:05:06 #12155 [Verbose] > │ let v146 : string = "Best" │
00:05:06 #12156 [Verbose] > │ let v147 : UH2 = UH2_0 │
00:05:06 #12157 [Verbose] > │ let v148 : UH2 = UH2_1(v146, v147) │
00:05:06 #12158 [Verbose] > │ let v149 : UH2 = UH2_1(v145, v148) │
00:05:06 #12159 [Verbose] > │ let v150 : UH2 = UH2_1(v144, v149) │
00:05:06 #12160 [Verbose] > │ let v151 : UH2 = UH2_1(v143, v150) │
00:05:06 #12161 [Verbose] > │ let v152 : US0 = US0_1 │
00:05:06 #12162 [Verbose] > │ let v153 : string = "---" │
00:05:06 #12163 [Verbose] > │ let v154 : UH2 = UH2_0 │
00:05:06 #12164 [Verbose] > │ let v155 : UH2 = UH2_1(v153, v154) │
00:05:06 #12165 [Verbose] > │ let v156 : UH2 = UH2_1(v153, v155) │
00:05:06 #12166 [Verbose] > │ let v157 : UH2 = UH2_1(v153, v156) │
00:05:06 #12167 [Verbose] > │ let v158 : UH2 = UH2_1(v153, v157) │
00:05:06 #12168 [Verbose] > │ let v159 : US0 = US0_1 │
00:05:06 #12169 [Verbose] > │ let v160 : UH4 = UH4_0 │
00:05:06 #12170 [Verbose] > │ let v161 : UH4 = UH4_1(v158, v159, v160) │
00:05:06 #12171 [Verbose] > │ let v162 : UH4 = UH4_1(v151, v152, v161) │
00:05:06 #12172 [Verbose] > │ let v163 : (struct (UH2 * US0) []) = method16(v162) │
00:05:06 #12173 [Verbose] > │ let v164 : uint64 = System.Convert.ToUInt64 v163.Length │
00:05:06 #12174 [Verbose] > │ let v165 : uint64 = System.Convert.ToUInt64 v91.Length │
00:05:06 #12175 [Verbose] > │ let v166 : uint64 = v164 + v165 │
00:05:06 #12176 [Verbose] > │ let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:05:06 #12177 [Verbose] > │ US0)> (System.Convert.ToInt32(v166)) │
00:05:06 #12178 [Verbose] > │ let v168 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12179 [Verbose] > │ while method4(v166, v168) do │
00:05:06 #12180 [Verbose] > │ let v170 : uint64 = v168.l0 │
00:05:06 #12181 [Verbose] > │ let v171 : bool = v170 < v164 │
00:05:06 #12182 [Verbose] > │ let struct (v177 : UH2, v178 : US0) = │
00:05:06 #12183 [Verbose] > │ if v171 then │
00:05:06 #12184 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = v163.[int v170] │
00:05:06 #12185 [Verbose] > │ struct (v172, v173) │
00:05:06 #12186 [Verbose] > │ else │
00:05:06 #12187 [Verbose] > │ let v174 : uint64 = v170 - v164 │
00:05:06 #12188 [Verbose] > │ let struct (v175 : UH2, v176 : US0) = v91.[int v174] │
00:05:06 #12189 [Verbose] > │ struct (v175, v176) │
00:05:06 #12190 [Verbose] > │ v167.[int v170] <- struct (v177, v178) │
00:05:06 #12191 [Verbose] > │ let v179 : uint64 = v170 + 1UL │
00:05:06 #12192 [Verbose] > │ v168.l0 <- v179 │
00:05:06 #12193 [Verbose] > │ () │
00:05:06 #12194 [Verbose] > │ let v180 : uint64 = System.Convert.ToUInt64 v167.Length │
00:05:06 #12195 [Verbose] > │ let v181 : ((string []) []) = Array.zeroCreate<(string [])> │
00:05:06 #12196 [Verbose] > │ (System.Convert.ToInt32(v180)) │
00:05:06 #12197 [Verbose] > │ let v182 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12198 [Verbose] > │ while method4(v180, v182) do │
00:05:06 #12199 [Verbose] > │ let v184 : uint64 = v182.l0 │
00:05:06 #12200 [Verbose] > │ let struct (v185 : UH2, v186 : US0) = v167.[int v184] │
00:05:06 #12201 [Verbose] > │ let v187 : (string []) = method19(v185) │
00:05:06 #12202 [Verbose] > │ v181.[int v184] <- v187 │
00:05:06 #12203 [Verbose] > │ let v188 : uint64 = v184 + 1UL │
00:05:06 #12204 [Verbose] > │ v182.l0 <- v188 │
00:05:06 #12205 [Verbose] > │ () │
00:05:06 #12206 [Verbose] > │ let v189 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:05:06 #12207 [Verbose] > │ let v190 : ((string []) []) = v189 v181 │
00:05:06 #12208 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:05:06 #12209 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:05:06 #12210 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:05:06 #12211 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12212 [Verbose] > │ while method4(v191, v193) do │
00:05:06 #12213 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:05:06 #12214 [Verbose] > │ let v196 : (string []) = v190.[int v195] │
00:05:06 #12215 [Verbose] > │ let v197 : uint64 = System.Convert.ToUInt64 v196.Length │
00:05:06 #12216 [Verbose] > │ let v198 : (int64 []) = Array.zeroCreate<int64> │
00:05:06 #12217 [Verbose] > │ (System.Convert.ToInt32(v197)) │
00:05:06 #12218 [Verbose] > │ let v199 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12219 [Verbose] > │ while method4(v197, v199) do │
00:05:06 #12220 [Verbose] > │ let v201 : uint64 = v199.l0 │
00:05:06 #12221 [Verbose] > │ let v202 : string = v196.[int v201] │
00:05:06 #12222 [Verbose] > │ let v203 : int64 = System.Convert.ToInt64 v202.Length │
00:05:06 #12223 [Verbose] > │ v198.[int v201] <- v203 │
00:05:06 #12224 [Verbose] > │ let v204 : uint64 = v201 + 1UL │
00:05:06 #12225 [Verbose] > │ v199.l0 <- v204 │
00:05:06 #12226 [Verbose] > │ () │
00:05:06 #12227 [Verbose] > │ let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:05:06 #12228 [Verbose] > │ let v206 : (int64 []) = v205 v198 │
00:05:06 #12229 [Verbose] > │ let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:05:06 #12230 [Verbose] > │ let v208 : ((int64 []) -> int64 option) = v207 0 │
00:05:06 #12231 [Verbose] > │ let v209 : int64 option = v208 v206 │
00:05:06 #12232 [Verbose] > │ let v210 : (int64 -> US1) = method22() │
00:05:06 #12233 [Verbose] > │ let v211 : US1 = US1_1 │
00:05:06 #12234 [Verbose] > │ let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │
00:05:06 #12235 [Verbose] > │ let v215 : int64 = │
00:05:06 #12236 [Verbose] > │ match v212 with │
00:05:06 #12237 [Verbose] > │ | US1_1 -> (* None *) │
00:05:06 #12238 [Verbose] > │ 0L │
00:05:06 #12239 [Verbose] > │ | US1_0(v213) -> (* Some *) │
00:05:06 #12240 [Verbose] > │ v213 │
00:05:06 #12241 [Verbose] > │ v192.[int v195] <- v215 │
00:05:06 #12242 [Verbose] > │ let v216 : uint64 = v195 + 1UL │
00:05:06 #12243 [Verbose] > │ v193.l0 <- v216 │
00:05:06 #12244 [Verbose] > │ () │
00:05:06 #12245 [Verbose] > │ let v217 : uint64 = System.Convert.ToUInt64 v192.Length │
00:05:06 #12246 [Verbose] > │ let v218 : UH5 = UH5_0 │
00:05:06 #12247 [Verbose] > │ let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3 │
00:05:06 #12248 [Verbose] > │ while method23(v217, v219) do │
00:05:06 #12249 [Verbose] > │ let v221 : uint64 = v219.l0 │
00:05:06 #12250 [Verbose] > │ let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2 │
00:05:06 #12251 [Verbose] > │ let v224 : int64 = v192.[int v221] │
00:05:06 #12252 [Verbose] > │ let v225 : int32 = v223 + 1 │
00:05:06 #12253 [Verbose] > │ let v226 : uint64 = v221 + 1UL │
00:05:06 #12254 [Verbose] > │ let v227 : UH5 = UH5_1(v223, v224, v222) │
00:05:06 #12255 [Verbose] > │ v219.l0 <- v226 │
00:05:06 #12256 [Verbose] > │ v219.l1 <- v227 │
00:05:06 #12257 [Verbose] > │ v219.l2 <- v225 │
00:05:06 #12258 [Verbose] > │ () │
00:05:06 #12259 [Verbose] > │ let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2 │
00:05:06 #12260 [Verbose] > │ let v230 : UH5 = UH5_0 │
00:05:06 #12261 [Verbose] > │ let v231 : UH5 = method24(v228, v230) │
00:05:06 #12262 [Verbose] > │ let v232 : (struct (int32 * int64) []) = method25(v231) │
00:05:06 #12263 [Verbose] > │ let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │
00:05:06 #12264 [Verbose] > │ a, b) |> Map.ofArray │
00:05:06 #12265 [Verbose] > │ let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:05:06 #12266 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180)) │
00:05:06 #12267 [Verbose] > │ let v235 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12268 [Verbose] > │ while method4(v180, v235) do │
00:05:06 #12269 [Verbose] > │ let v237 : uint64 = v235.l0 │
00:05:06 #12270 [Verbose] > │ let struct (v238 : UH2, v239 : US0) = v167.[int v237] │
00:05:06 #12271 [Verbose] > │ let v240 : UH6 = UH6_0 │
00:05:06 #12272 [Verbose] > │ let v241 : int32 = 0 │
00:05:06 #12273 [Verbose] > │ let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241) │
00:05:06 #12274 [Verbose] > │ let v244 : UH6 = UH6_0 │
00:05:06 #12275 [Verbose] > │ let v245 : UH6 = method29(v242, v244) │
00:05:06 #12276 [Verbose] > │ let v246 : UH2 = UH2_0 │
00:05:06 #12277 [Verbose] > │ let v247 : UH2 = method30(v233, v245, v246) │
00:05:06 #12278 [Verbose] > │ let v248 : (string []) = method31(v247) │
00:05:06 #12279 [Verbose] > │ v234.[int v237] <- struct (v248, v239) │
00:05:06 #12280 [Verbose] > │ let v249 : uint64 = v237 + 1UL │
00:05:06 #12281 [Verbose] > │ v235.l0 <- v249 │
00:05:06 #12282 [Verbose] > │ () │
00:05:06 #12283 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #12284 [Verbose] > │ let v250 : uint64 = System.Convert.ToUInt64 v234.Length │
00:05:06 #12285 [Verbose] > │ let v251 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12286 [Verbose] > │ while method4(v250, v251) do │
00:05:06 #12287 [Verbose] > │ let v253 : uint64 = v251.l0 │
00:05:06 #12288 [Verbose] > │ let struct (v254 : (string []), v255 : US0) = v234.[int v253] │
00:05:06 #12289 [Verbose] > │ match v255 with │
00:05:06 #12290 [Verbose] > │ | US0_1 -> (* None *) │
00:05:06 #12291 [Verbose] > │ let v258 : unit option = None │
00:05:06 #12292 [Verbose] > │ let mutable _v258 = v258 │
00:05:06 #12293 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:06 #12294 [Verbose] > │ () │
00:05:06 #12295 [Verbose] > │ #endif │
00:05:06 #12296 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:06 #12297 [Verbose] > │ () │
00:05:06 #12298 [Verbose] > │ #endif │
00:05:06 #12299 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:06 #12300 [Verbose] > │ () │
00:05:06 #12301 [Verbose] > │ #endif │
00:05:06 #12302 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #12303 [Verbose] > │ System.Console.ResetColor () │
00:05:06 #12304 [Verbose] > │ () │
00:05:06 #12305 [Verbose] > │ #endif │
00:05:06 #12306 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #12307 [Verbose] > │ System.Console.ResetColor () │
00:05:06 #12308 [Verbose] > │ () │
00:05:06 #12309 [Verbose] > │ #endif │
00:05:06 #12310 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:06 #12311 [Verbose] > │ System.Console.ResetColor () │
00:05:06 #12312 [Verbose] > │ () │
00:05:06 #12313 [Verbose] > │ #endif │
00:05:06 #12314 [Verbose] > │ |> fun x -> _v258 <- Some x │
00:05:06 #12315 [Verbose] > │ _v258 |> Option.get │
00:05:06 #12316 [Verbose] > │ () │
00:05:06 #12317 [Verbose] > │ | US0_0(v256) -> (* Some *) │
00:05:06 #12318 [Verbose] > │ let v257 : unit option = None │
00:05:06 #12319 [Verbose] > │ let mutable _v257 = v257 │
00:05:06 #12320 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:06 #12321 [Verbose] > │ () │
00:05:06 #12322 [Verbose] > │ #endif │
00:05:06 #12323 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:06 #12324 [Verbose] > │ () │
00:05:06 #12325 [Verbose] > │ #endif │
00:05:06 #12326 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:06 #12327 [Verbose] > │ () │
00:05:06 #12328 [Verbose] > │ #endif │
00:05:06 #12329 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #12330 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:05:06 #12331 [Verbose] > │ () │
00:05:06 #12332 [Verbose] > │ #endif │
00:05:06 #12333 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #12334 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:05:06 #12335 [Verbose] > │ () │
00:05:06 #12336 [Verbose] > │ #endif │
00:05:06 #12337 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:06 #12338 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:05:06 #12339 [Verbose] > │ () │
00:05:06 #12340 [Verbose] > │ #endif │
00:05:06 #12341 [Verbose] > │ |> fun x -> _v257 <- Some x │
00:05:06 #12342 [Verbose] > │ _v257 |> Option.get │
00:05:06 #12343 [Verbose] > │ () │
00:05:06 #12344 [Verbose] > │ let v259 : string = "\t| " │
00:05:06 #12345 [Verbose] > │ let v260 : string = System.String.Join (v259, v254) │
00:05:06 #12346 [Verbose] > │ System.Console.WriteLine v260 │
00:05:06 #12347 [Verbose] > │ let v261 : unit option = None │
00:05:06 #12348 [Verbose] > │ let mutable _v261 = v261 │
00:05:06 #12349 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:06 #12350 [Verbose] > │ () │
00:05:06 #12351 [Verbose] > │ #endif │
00:05:06 #12352 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:06 #12353 [Verbose] > │ () │
00:05:06 #12354 [Verbose] > │ #endif │
00:05:06 #12355 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:06 #12356 [Verbose] > │ () │
00:05:06 #12357 [Verbose] > │ #endif │
00:05:06 #12358 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #12359 [Verbose] > │ System.Console.ResetColor () │
00:05:06 #12360 [Verbose] > │ () │
00:05:06 #12361 [Verbose] > │ #endif │
00:05:06 #12362 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:06 #12363 [Verbose] > │ System.Console.ResetColor () │
00:05:06 #12364 [Verbose] > │ () │
00:05:06 #12365 [Verbose] > │ #endif │
00:05:06 #12366 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:06 #12367 [Verbose] > │ System.Console.ResetColor () │
00:05:06 #12368 [Verbose] > │ () │
00:05:06 #12369 [Verbose] > │ #endif │
00:05:06 #12370 [Verbose] > │ |> fun x -> _v261 <- Some x │
00:05:06 #12371 [Verbose] > │ _v261 |> Option.get │
00:05:06 #12372 [Verbose] > │ let v262 : uint64 = v253 + 1UL │
00:05:06 #12373 [Verbose] > │ v251.l0 <- v262 │
00:05:06 #12374 [Verbose] > │ () │
00:05:06 #12375 [Verbose] > │ let v263 : ((float []) []) = Array.zeroCreate<(float [])> │
00:05:06 #12376 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:05:06 #12377 [Verbose] > │ let v264 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12378 [Verbose] > │ while method4(v90, v264) do │
00:05:06 #12379 [Verbose] > │ let v266 : uint64 = v264.l0 │
00:05:06 #12380 [Verbose] > │ let struct (v267 : string, v268 : string, v269 : string, v270 : │
00:05:06 #12381 [Verbose] > │ (int64 [])) = v16.[int v266] │
00:05:06 #12382 [Verbose] > │ let v271 : (int64 -> float) = float │
00:05:06 #12383 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v270.Length │
00:05:06 #12384 [Verbose] > │ let v273 : (float []) = Array.zeroCreate<float> │
00:05:06 #12385 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:05:06 #12386 [Verbose] > │ let v274 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12387 [Verbose] > │ while method4(v272, v274) do │
00:05:06 #12388 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:05:06 #12389 [Verbose] > │ let v277 : int64 = v270.[int v276] │
00:05:06 #12390 [Verbose] > │ let v278 : float = v271 v277 │
00:05:06 #12391 [Verbose] > │ v273.[int v276] <- v278 │
00:05:06 #12392 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:05:06 #12393 [Verbose] > │ v274.l0 <- v279 │
00:05:06 #12394 [Verbose] > │ () │
00:05:06 #12395 [Verbose] > │ v263.[int v266] <- v273 │
00:05:06 #12396 [Verbose] > │ let v280 : uint64 = v266 + 1UL │
00:05:06 #12397 [Verbose] > │ v264.l0 <- v280 │
00:05:06 #12398 [Verbose] > │ () │
00:05:06 #12399 [Verbose] > │ let v281 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:05:06 #12400 [Verbose] > │ let v282 : ((float []) []) = v281 v263 │
00:05:06 #12401 [Verbose] > │ let v283 : uint64 = System.Convert.ToUInt64 v282.Length │
00:05:06 #12402 [Verbose] > │ let v284 : (float []) = Array.zeroCreate<float> │
00:05:06 #12403 [Verbose] > │ (System.Convert.ToInt32(v283)) │
00:05:06 #12404 [Verbose] > │ let v285 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12405 [Verbose] > │ while method4(v283, v285) do │
00:05:06 #12406 [Verbose] > │ let v287 : uint64 = v285.l0 │
00:05:06 #12407 [Verbose] > │ let v288 : (float []) = v282.[int v287] │
00:05:06 #12408 [Verbose] > │ let v289 : ((float []) -> float) = Array.average │
00:05:06 #12409 [Verbose] > │ let v290 : float = v289 v288 │
00:05:06 #12410 [Verbose] > │ v284.[int v287] <- v290 │
00:05:06 #12411 [Verbose] > │ let v291 : uint64 = v287 + 1UL │
00:05:06 #12412 [Verbose] > │ v285.l0 <- v291 │
00:05:06 #12413 [Verbose] > │ () │
00:05:06 #12414 [Verbose] > │ let v292 : (float -> int64) = int64 │
00:05:06 #12415 [Verbose] > │ let v293 : uint64 = System.Convert.ToUInt64 v284.Length │
00:05:06 #12416 [Verbose] > │ let v294 : (int64 []) = Array.zeroCreate<int64> │
00:05:06 #12417 [Verbose] > │ (System.Convert.ToInt32(v293)) │
00:05:06 #12418 [Verbose] > │ let v295 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12419 [Verbose] > │ while method4(v293, v295) do │
00:05:06 #12420 [Verbose] > │ let v297 : uint64 = v295.l0 │
00:05:06 #12421 [Verbose] > │ let v298 : float = v284.[int v297] │
00:05:06 #12422 [Verbose] > │ let v299 : int64 = v292 v298 │
00:05:06 #12423 [Verbose] > │ v294.[int v297] <- v299 │
00:05:06 #12424 [Verbose] > │ let v300 : uint64 = v297 + 1UL │
00:05:06 #12425 [Verbose] > │ v295.l0 <- v300 │
00:05:06 #12426 [Verbose] > │ () │
00:05:06 #12427 [Verbose] > │ let v301 : uint64 = System.Convert.ToUInt64 v294.Length │
00:05:06 #12428 [Verbose] > │ let v302 : UH5 = UH5_0 │
00:05:06 #12429 [Verbose] > │ let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3 │
00:05:06 #12430 [Verbose] > │ while method23(v301, v303) do │
00:05:06 #12431 [Verbose] > │ let v305 : uint64 = v303.l0 │
00:05:06 #12432 [Verbose] > │ let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2 │
00:05:06 #12433 [Verbose] > │ let v308 : int64 = v294.[int v305] │
00:05:06 #12434 [Verbose] > │ let v309 : int32 = v307 + 1 │
00:05:06 #12435 [Verbose] > │ let v310 : uint64 = v305 + 1UL │
00:05:06 #12436 [Verbose] > │ let v311 : UH5 = UH5_1(v307, v308, v306) │
00:05:06 #12437 [Verbose] > │ v303.l0 <- v310 │
00:05:06 #12438 [Verbose] > │ v303.l1 <- v311 │
00:05:06 #12439 [Verbose] > │ v303.l2 <- v309 │
00:05:06 #12440 [Verbose] > │ () │
00:05:06 #12441 [Verbose] > │ let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2 │
00:05:06 #12442 [Verbose] > │ let v314 : UH5 = UH5_0 │
00:05:06 #12443 [Verbose] > │ let v315 : UH5 = method24(v312, v314) │
00:05:06 #12444 [Verbose] > │ let v316 : (struct (int32 * int64) []) = method34(v315) │
00:05:06 #12445 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #12446 [Verbose] > │ let v317 : string = "Average Ranking " │
00:05:06 #12447 [Verbose] > │ System.Console.WriteLine v317 │
00:05:06 #12448 [Verbose] > │ let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:05:06 #12449 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:05:06 #12450 [Verbose] > │ let v319 : (struct (int32 * int64) -> int64) = closure5() │
00:05:06 #12451 [Verbose] > │ let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:05:06 #12452 [Verbose] > │ = v318 v319 │
00:05:06 #12453 [Verbose] > │ let v321 : (struct (int32 * int64) []) = v320 v316 │
00:05:06 #12454 [Verbose] > │ let v322 : uint64 = System.Convert.ToUInt64 v321.Length │
00:05:06 #12455 [Verbose] > │ let v323 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12456 [Verbose] > │ while method4(v322, v323) do │
00:05:06 #12457 [Verbose] > │ let v325 : uint64 = v323.l0 │
00:05:06 #12458 [Verbose] > │ let struct (v326 : int32, v327 : int64) = v321.[int v325] │
00:05:06 #12459 [Verbose] > │ let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │
00:05:06 #12460 [Verbose] > │ " │
00:05:06 #12461 [Verbose] > │ System.Console.WriteLine v328 │
00:05:06 #12462 [Verbose] > │ let v329 : uint64 = v325 + 1UL │
00:05:06 #12463 [Verbose] > │ v323.l0 <- v329 │
00:05:06 #12464 [Verbose] > │ () │
00:05:06 #12465 [Verbose] > │ () │
00:05:06 #12466 [Verbose] > │ and method0 () : unit = │
00:05:06 #12467 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:05:06 #12468 [Verbose] > │ let v1 : string = nameof v0 │
00:05:06 #12469 [Verbose] > │ let v2 : string = "" │
00:05:06 #12470 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #12471 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #12472 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:05:06 #12473 [Verbose] > │ System.Console.WriteLine v3 │
00:05:06 #12474 [Verbose] > │ let v4 : float = 0.0 │
00:05:06 #12475 [Verbose] > │ let v5 : float = 1.0 │
00:05:06 #12476 [Verbose] > │ let v6 : float = 2.0 │
00:05:06 #12477 [Verbose] > │ let v7 : float = 3.0 │
00:05:06 #12478 [Verbose] > │ let v8 : float = 5.0 │
00:05:06 #12479 [Verbose] > │ let v9 : float = 6.0 │
00:05:06 #12480 [Verbose] > │ let v10 : UH0 = UH0_0 │
00:05:06 #12481 [Verbose] > │ let v11 : UH0 = UH0_1(v8, v9, v10) │
00:05:06 #12482 [Verbose] > │ let v12 : UH0 = UH0_1(v6, v7, v11) │
00:05:06 #12483 [Verbose] > │ let v13 : UH0 = UH0_1(v4, v5, v12) │
00:05:06 #12484 [Verbose] > │ let v14 : (struct (float * float) []) = method1(v13) │
00:05:06 #12485 [Verbose] > │ let v15 : uint64 = System.Convert.ToUInt64 v14.Length │
00:05:06 #12486 [Verbose] > │ let v16 : (struct (string * string * string * (int64 [])) []) = │
00:05:06 #12487 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:05:06 #12488 [Verbose] > │ (System.Convert.ToInt32(v15)) │
00:05:06 #12489 [Verbose] > │ let v17 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:06 #12490 [Verbose] > │ while method4(v15, v17) do │
00:05:06 #12491 [Verbose] > │ let v19 : uint64 = v17.l0 │
00:05:06 #12492 [Verbose] > │ let struct (v20 : float, v21 : float) = v14.[int v19] │
00:05:06 #12493 [Verbose] > │ let v22 : string = $"%A{v20}" │
00:05:06 #12494 [Verbose] > │ System.Console.WriteLine v2 │
00:05:06 #12495 [Verbose] > │ let v23 : string = $"Solution: {v22} " │
00:05:06 #12496 [Verbose] > │ System.Console.WriteLine v23 │
00:05:06 #12497 [Verbose] > │ let v24 : int32 = 0 │
00:05:06 #12498 [Verbose] > │ let v25 : string = "A" │
00:05:06 #12499 [Verbose] > │ let v26 : (float -> float) = closure1() │
00:05:06 #12500 [Verbose] > │ let v27 : UH1 = UH1_0 │
00:05:07 #12501 [Verbose] > │ let v28 : UH1 = UH1_1(v24, v25, v26, v27) │
00:05:07 #12502 [Verbose] > │ let v29 : (struct (int32 * string * (float -> float)) []) = │
00:05:07 #12503 [Verbose] > │ method5(v28) │
00:05:07 #12504 [Verbose] > │ let v30 : uint64 = System.Convert.ToUInt64 v29.Length │
00:05:07 #12505 [Verbose] > │ let v31 : (struct (float * int64) []) = Array.zeroCreate<struct │
00:05:07 #12506 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30)) │
00:05:07 #12507 [Verbose] > │ let v32 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12508 [Verbose] > │ while method4(v30, v32) do │
00:05:07 #12509 [Verbose] > │ let v34 : uint64 = v32.l0 │
00:05:07 #12510 [Verbose] > │ let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │
00:05:07 #12511 [Verbose] > │ v29.[int v34] │
00:05:07 #12512 [Verbose] > │ let v38 : unit option = None │
00:05:07 #12513 [Verbose] > │ let mutable _v38 = v38 │
00:05:07 #12514 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:07 #12515 [Verbose] > │ () │
00:05:07 #12516 [Verbose] > │ #endif │
00:05:07 #12517 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:07 #12518 [Verbose] > │ () │
00:05:07 #12519 [Verbose] > │ #endif │
00:05:07 #12520 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:07 #12521 [Verbose] > │ () │
00:05:07 #12522 [Verbose] > │ #endif │
00:05:07 #12523 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12524 [Verbose] > │ System.GC.Collect () │
00:05:07 #12525 [Verbose] > │ () │
00:05:07 #12526 [Verbose] > │ #endif │
00:05:07 #12527 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12528 [Verbose] > │ System.GC.Collect () │
00:05:07 #12529 [Verbose] > │ () │
00:05:07 #12530 [Verbose] > │ #endif │
00:05:07 #12531 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:07 #12532 [Verbose] > │ System.GC.Collect () │
00:05:07 #12533 [Verbose] > │ () │
00:05:07 #12534 [Verbose] > │ #endif │
00:05:07 #12535 [Verbose] > │ |> fun x -> _v38 <- Some x │
00:05:07 #12536 [Verbose] > │ _v38 |> Option.get │
00:05:07 #12537 [Verbose] > │ let v39 : (unit -> System.Diagnostics.Stopwatch) = │
00:05:07 #12538 [Verbose] > │ System.Diagnostics.Stopwatch │
00:05:07 #12539 [Verbose] > │ let v40 : System.Diagnostics.Stopwatch = v39 () │
00:05:07 #12540 [Verbose] > │ v40.Start () │
00:05:07 #12541 [Verbose] > │ let v41 : int64 = v40.ElapsedMilliseconds │
00:05:07 #12542 [Verbose] > │ let v42 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:05:07 #12543 [Verbose] > │ let v43 : Mut1 = {l0 = 0} : Mut1 │
00:05:07 #12544 [Verbose] > │ while method8(v43) do │
00:05:07 #12545 [Verbose] > │ let v45 : int32 = v43.l0 │
00:05:07 #12546 [Verbose] > │ v42.[int v45] <- v45 │
00:05:07 #12547 [Verbose] > │ let v46 : int32 = v45 + 1 │
00:05:07 #12548 [Verbose] > │ v43.l0 <- v46 │
00:05:07 #12549 [Verbose] > │ () │
00:05:07 #12550 [Verbose] > │ let v47 : ((int32 -> float) -> ((int32 []) -> (float []))) = │
00:05:07 #12551 [Verbose] > │ Array.Parallel.map │
00:05:07 #12552 [Verbose] > │ let v48 : (int32 -> float) = closure2(v20, v37) │
00:05:07 #12553 [Verbose] > │ let v49 : ((int32 []) -> (float [])) = v47 v48 │
00:05:07 #12554 [Verbose] > │ let v50 : (float []) = v49 v42 │
00:05:07 #12555 [Verbose] > │ let v51 : int32 = v50.Length │
00:05:07 #12556 [Verbose] > │ let v52 : int32 = v51 - 1 │
00:05:07 #12557 [Verbose] > │ let v53 : float = v50.[int v52] │
00:05:07 #12558 [Verbose] > │ let v54 : int64 = v40.ElapsedMilliseconds │
00:05:07 #12559 [Verbose] > │ let v55 : int64 = v54 - v41 │
00:05:07 #12560 [Verbose] > │ let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55} " │
00:05:07 #12561 [Verbose] > │ System.Console.WriteLine v56 │
00:05:07 #12562 [Verbose] > │ v31.[int v34] <- struct (v53, v55) │
00:05:07 #12563 [Verbose] > │ let v57 : uint64 = v34 + 1UL │
00:05:07 #12564 [Verbose] > │ v32.l0 <- v57 │
00:05:07 #12565 [Verbose] > │ () │
00:05:07 #12566 [Verbose] > │ let v58 : uint64 = System.Convert.ToUInt64 v31.Length │
00:05:07 #12567 [Verbose] > │ let v59 : (float []) = Array.zeroCreate<float> │
00:05:07 #12568 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:05:07 #12569 [Verbose] > │ let v60 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12570 [Verbose] > │ while method4(v58, v60) do │
00:05:07 #12571 [Verbose] > │ let v62 : uint64 = v60.l0 │
00:05:07 #12572 [Verbose] > │ let struct (v63 : float, v64 : int64) = v31.[int v62] │
00:05:07 #12573 [Verbose] > │ v59.[int v62] <- v63 │
00:05:07 #12574 [Verbose] > │ let v65 : uint64 = v62 + 1UL │
00:05:07 #12575 [Verbose] > │ v60.l0 <- v65 │
00:05:07 #12576 [Verbose] > │ () │
00:05:07 #12577 [Verbose] > │ let v66 : uint64 = System.Convert.ToUInt64 v59.Length │
00:05:07 #12578 [Verbose] > │ let v67 : bool = v66 <= 1UL │
00:05:07 #12579 [Verbose] > │ if v67 then │
00:05:07 #12580 [Verbose] > │ () │
00:05:07 #12581 [Verbose] > │ else │
00:05:07 #12582 [Verbose] > │ let v68 : float = v59.[int 0UL] │
00:05:07 #12583 [Verbose] > │ let v69 : uint64 = 0UL │
00:05:07 #12584 [Verbose] > │ let v70 : bool = method9(v68, v59, v69) │
00:05:07 #12585 [Verbose] > │ if v70 then │
00:05:07 #12586 [Verbose] > │ () │
00:05:07 #12587 [Verbose] > │ else │
00:05:07 #12588 [Verbose] > │ let v71 : string = $"Challenge error: {v59}" │
00:05:07 #12589 [Verbose] > │ failwith<unit> v71 │
00:05:07 #12590 [Verbose] > │ let v72 : string = $"%A{v21}" │
00:05:07 #12591 [Verbose] > │ let v73 : (float []) = Array.zeroCreate<float> │
00:05:07 #12592 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:05:07 #12593 [Verbose] > │ let v74 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12594 [Verbose] > │ while method4(v58, v74) do │
00:05:07 #12595 [Verbose] > │ let v76 : uint64 = v74.l0 │
00:05:07 #12596 [Verbose] > │ let struct (v77 : float, v78 : int64) = v31.[int v76] │
00:05:07 #12597 [Verbose] > │ v73.[int v76] <- v77 │
00:05:07 #12598 [Verbose] > │ let v79 : uint64 = v76 + 1UL │
00:05:07 #12599 [Verbose] > │ v74.l0 <- v79 │
00:05:07 #12600 [Verbose] > │ () │
00:05:07 #12601 [Verbose] > │ let v80 : float = v73.[int 0UL] │
00:05:07 #12602 [Verbose] > │ let v81 : string = $"%A{v80}" │
00:05:07 #12603 [Verbose] > │ let v82 : (int64 []) = Array.zeroCreate<int64> │
00:05:07 #12604 [Verbose] > │ (System.Convert.ToInt32(v58)) │
00:05:07 #12605 [Verbose] > │ let v83 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12606 [Verbose] > │ while method4(v58, v83) do │
00:05:07 #12607 [Verbose] > │ let v85 : uint64 = v83.l0 │
00:05:07 #12608 [Verbose] > │ let struct (v86 : float, v87 : int64) = v31.[int v85] │
00:05:07 #12609 [Verbose] > │ v82.[int v85] <- v87 │
00:05:07 #12610 [Verbose] > │ let v88 : uint64 = v85 + 1UL │
00:05:07 #12611 [Verbose] > │ v83.l0 <- v88 │
00:05:07 #12612 [Verbose] > │ () │
00:05:07 #12613 [Verbose] > │ v16.[int v19] <- struct (v72, v22, v81, v82) │
00:05:07 #12614 [Verbose] > │ let v89 : uint64 = v19 + 1UL │
00:05:07 #12615 [Verbose] > │ v17.l0 <- v89 │
00:05:07 #12616 [Verbose] > │ () │
00:05:07 #12617 [Verbose] > │ let v90 : uint64 = System.Convert.ToUInt64 v16.Length │
00:05:07 #12618 [Verbose] > │ let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:05:07 #12619 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:05:07 #12620 [Verbose] > │ let v92 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12621 [Verbose] > │ while method4(v90, v92) do │
00:05:07 #12622 [Verbose] > │ let v94 : uint64 = v92.l0 │
00:05:07 #12623 [Verbose] > │ let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │
00:05:07 #12624 [Verbose] > │ ])) = v16.[int v94] │
00:05:07 #12625 [Verbose] > │ let v99 : uint64 = System.Convert.ToUInt64 v98.Length │
00:05:07 #12626 [Verbose] > │ let v100 : UH3 = UH3_0 │
00:05:07 #12627 [Verbose] > │ let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2 │
00:05:07 #12628 [Verbose] > │ while method10(v99, v101) do │
00:05:07 #12629 [Verbose] > │ let v103 : uint64 = v101.l0 │
00:05:07 #12630 [Verbose] > │ let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2 │
00:05:07 #12631 [Verbose] > │ let v106 : int64 = v98.[int v103] │
00:05:07 #12632 [Verbose] > │ let v107 : int64 = v105 + 1L │
00:05:07 #12633 [Verbose] > │ let v108 : uint64 = v103 + 1UL │
00:05:07 #12634 [Verbose] > │ let v109 : UH3 = UH3_1(v105, v106, v104) │
00:05:07 #12635 [Verbose] > │ v101.l0 <- v108 │
00:05:07 #12636 [Verbose] > │ v101.l1 <- v109 │
00:05:07 #12637 [Verbose] > │ v101.l2 <- v107 │
00:05:07 #12638 [Verbose] > │ () │
00:05:07 #12639 [Verbose] > │ let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2 │
00:05:07 #12640 [Verbose] > │ let v112 : UH3 = UH3_0 │
00:05:07 #12641 [Verbose] > │ let v113 : UH3 = method11(v110, v112) │
00:05:07 #12642 [Verbose] > │ let v114 : (struct (int64 * int64) []) = method12(v113) │
00:05:07 #12643 [Verbose] > │ let v115 : int32 = v114.Length │
00:05:07 #12644 [Verbose] > │ let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:05:07 #12645 [Verbose] > │ (int64 * int64)> (v115) │
00:05:07 #12646 [Verbose] > │ let v117 : Mut1 = {l0 = 0} : Mut1 │
00:05:07 #12647 [Verbose] > │ while method15(v115, v117) do │
00:05:07 #12648 [Verbose] > │ let v119 : int32 = v117.l0 │
00:05:07 #12649 [Verbose] > │ let struct (v120 : int64, v121 : int64) = v114.[int v119] │
00:05:07 #12650 [Verbose] > │ let v122 : int64 = v120 + 1L │
00:05:07 #12651 [Verbose] > │ v116.[int v119] <- struct (v122, v121) │
00:05:07 #12652 [Verbose] > │ let v123 : int32 = v119 + 1 │
00:05:07 #12653 [Verbose] > │ v117.l0 <- v123 │
00:05:07 #12654 [Verbose] > │ () │
00:05:07 #12655 [Verbose] > │ let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:05:07 #12656 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:05:07 #12657 [Verbose] > │ let v125 : (struct (int64 * int64) -> int64) = closure3() │
00:05:07 #12658 [Verbose] > │ let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:05:07 #12659 [Verbose] > │ ])) = v124 v125 │
00:05:07 #12660 [Verbose] > │ let v127 : (struct (int64 * int64) []) = v126 v116 │
00:05:07 #12661 [Verbose] > │ let struct (v128 : int64, v129 : int64) = v127.[int 0] │
00:05:07 #12662 [Verbose] > │ let v130 : string = $"%A{struct (v128, v129)}" │
00:05:07 #12663 [Verbose] > │ let v131 : bool = v95 = v97 │
00:05:07 #12664 [Verbose] > │ let v136 : US0 = │
00:05:07 #12665 [Verbose] > │ if v131 then │
00:05:07 #12666 [Verbose] > │ let v132 : System.ConsoleColor = │
00:05:07 #12667 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:05:07 #12668 [Verbose] > │ US0_0(v132) │
00:05:07 #12669 [Verbose] > │ else │
00:05:07 #12670 [Verbose] > │ let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:05:07 #12671 [Verbose] > │ US0_0(v134) │
00:05:07 #12672 [Verbose] > │ let v137 : UH2 = UH2_0 │
00:05:07 #12673 [Verbose] > │ let v138 : UH2 = UH2_1(v130, v137) │
00:05:07 #12674 [Verbose] > │ let v139 : UH2 = UH2_1(v97, v138) │
00:05:07 #12675 [Verbose] > │ let v140 : UH2 = UH2_1(v95, v139) │
00:05:07 #12676 [Verbose] > │ let v141 : UH2 = UH2_1(v96, v140) │
00:05:07 #12677 [Verbose] > │ v91.[int v94] <- struct (v141, v136) │
00:05:07 #12678 [Verbose] > │ let v142 : uint64 = v94 + 1UL │
00:05:07 #12679 [Verbose] > │ v92.l0 <- v142 │
00:05:07 #12680 [Verbose] > │ () │
00:05:07 #12681 [Verbose] > │ let v143 : string = "Input" │
00:05:07 #12682 [Verbose] > │ let v144 : string = "Expected" │
00:05:07 #12683 [Verbose] > │ let v145 : string = "Result" │
00:05:07 #12684 [Verbose] > │ let v146 : string = "Best" │
00:05:07 #12685 [Verbose] > │ let v147 : UH2 = UH2_0 │
00:05:07 #12686 [Verbose] > │ let v148 : UH2 = UH2_1(v146, v147) │
00:05:07 #12687 [Verbose] > │ let v149 : UH2 = UH2_1(v145, v148) │
00:05:07 #12688 [Verbose] > │ let v150 : UH2 = UH2_1(v144, v149) │
00:05:07 #12689 [Verbose] > │ let v151 : UH2 = UH2_1(v143, v150) │
00:05:07 #12690 [Verbose] > │ let v152 : US0 = US0_1 │
00:05:07 #12691 [Verbose] > │ let v153 : string = "---" │
00:05:07 #12692 [Verbose] > │ let v154 : UH2 = UH2_0 │
00:05:07 #12693 [Verbose] > │ let v155 : UH2 = UH2_1(v153, v154) │
00:05:07 #12694 [Verbose] > │ let v156 : UH2 = UH2_1(v153, v155) │
00:05:07 #12695 [Verbose] > │ let v157 : UH2 = UH2_1(v153, v156) │
00:05:07 #12696 [Verbose] > │ let v158 : UH2 = UH2_1(v153, v157) │
00:05:07 #12697 [Verbose] > │ let v159 : US0 = US0_1 │
00:05:07 #12698 [Verbose] > │ let v160 : UH4 = UH4_0 │
00:05:07 #12699 [Verbose] > │ let v161 : UH4 = UH4_1(v158, v159, v160) │
00:05:07 #12700 [Verbose] > │ let v162 : UH4 = UH4_1(v151, v152, v161) │
00:05:07 #12701 [Verbose] > │ let v163 : (struct (UH2 * US0) []) = method16(v162) │
00:05:07 #12702 [Verbose] > │ let v164 : uint64 = System.Convert.ToUInt64 v163.Length │
00:05:07 #12703 [Verbose] > │ let v165 : uint64 = System.Convert.ToUInt64 v91.Length │
00:05:07 #12704 [Verbose] > │ let v166 : uint64 = v164 + v165 │
00:05:07 #12705 [Verbose] > │ let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:05:07 #12706 [Verbose] > │ US0)> (System.Convert.ToInt32(v166)) │
00:05:07 #12707 [Verbose] > │ let v168 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12708 [Verbose] > │ while method4(v166, v168) do │
00:05:07 #12709 [Verbose] > │ let v170 : uint64 = v168.l0 │
00:05:07 #12710 [Verbose] > │ let v171 : bool = v170 < v164 │
00:05:07 #12711 [Verbose] > │ let struct (v177 : UH2, v178 : US0) = │
00:05:07 #12712 [Verbose] > │ if v171 then │
00:05:07 #12713 [Verbose] > │ let struct (v172 : UH2, v173 : US0) = v163.[int v170] │
00:05:07 #12714 [Verbose] > │ struct (v172, v173) │
00:05:07 #12715 [Verbose] > │ else │
00:05:07 #12716 [Verbose] > │ let v174 : uint64 = v170 - v164 │
00:05:07 #12717 [Verbose] > │ let struct (v175 : UH2, v176 : US0) = v91.[int v174] │
00:05:07 #12718 [Verbose] > │ struct (v175, v176) │
00:05:07 #12719 [Verbose] > │ v167.[int v170] <- struct (v177, v178) │
00:05:07 #12720 [Verbose] > │ let v179 : uint64 = v170 + 1UL │
00:05:07 #12721 [Verbose] > │ v168.l0 <- v179 │
00:05:07 #12722 [Verbose] > │ () │
00:05:07 #12723 [Verbose] > │ let v180 : uint64 = System.Convert.ToUInt64 v167.Length │
00:05:07 #12724 [Verbose] > │ let v181 : ((string []) []) = Array.zeroCreate<(string [])> │
00:05:07 #12725 [Verbose] > │ (System.Convert.ToInt32(v180)) │
00:05:07 #12726 [Verbose] > │ let v182 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12727 [Verbose] > │ while method4(v180, v182) do │
00:05:07 #12728 [Verbose] > │ let v184 : uint64 = v182.l0 │
00:05:07 #12729 [Verbose] > │ let struct (v185 : UH2, v186 : US0) = v167.[int v184] │
00:05:07 #12730 [Verbose] > │ let v187 : (string []) = method19(v185) │
00:05:07 #12731 [Verbose] > │ v181.[int v184] <- v187 │
00:05:07 #12732 [Verbose] > │ let v188 : uint64 = v184 + 1UL │
00:05:07 #12733 [Verbose] > │ v182.l0 <- v188 │
00:05:07 #12734 [Verbose] > │ () │
00:05:07 #12735 [Verbose] > │ let v189 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:05:07 #12736 [Verbose] > │ let v190 : ((string []) []) = v189 v181 │
00:05:07 #12737 [Verbose] > │ let v191 : uint64 = System.Convert.ToUInt64 v190.Length │
00:05:07 #12738 [Verbose] > │ let v192 : (int64 []) = Array.zeroCreate<int64> │
00:05:07 #12739 [Verbose] > │ (System.Convert.ToInt32(v191)) │
00:05:07 #12740 [Verbose] > │ let v193 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12741 [Verbose] > │ while method4(v191, v193) do │
00:05:07 #12742 [Verbose] > │ let v195 : uint64 = v193.l0 │
00:05:07 #12743 [Verbose] > │ let v196 : (string []) = v190.[int v195] │
00:05:07 #12744 [Verbose] > │ let v197 : uint64 = System.Convert.ToUInt64 v196.Length │
00:05:07 #12745 [Verbose] > │ let v198 : (int64 []) = Array.zeroCreate<int64> │
00:05:07 #12746 [Verbose] > │ (System.Convert.ToInt32(v197)) │
00:05:07 #12747 [Verbose] > │ let v199 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12748 [Verbose] > │ while method4(v197, v199) do │
00:05:07 #12749 [Verbose] > │ let v201 : uint64 = v199.l0 │
00:05:07 #12750 [Verbose] > │ let v202 : string = v196.[int v201] │
00:05:07 #12751 [Verbose] > │ let v203 : int64 = System.Convert.ToInt64 v202.Length │
00:05:07 #12752 [Verbose] > │ v198.[int v201] <- v203 │
00:05:07 #12753 [Verbose] > │ let v204 : uint64 = v201 + 1UL │
00:05:07 #12754 [Verbose] > │ v199.l0 <- v204 │
00:05:07 #12755 [Verbose] > │ () │
00:05:07 #12756 [Verbose] > │ let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:05:07 #12757 [Verbose] > │ let v206 : (int64 []) = v205 v198 │
00:05:07 #12758 [Verbose] > │ let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:05:07 #12759 [Verbose] > │ let v208 : ((int64 []) -> int64 option) = v207 0 │
00:05:07 #12760 [Verbose] > │ let v209 : int64 option = v208 v206 │
00:05:07 #12761 [Verbose] > │ let v210 : (int64 -> US1) = method22() │
00:05:07 #12762 [Verbose] > │ let v211 : US1 = US1_1 │
00:05:07 #12763 [Verbose] > │ let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │
00:05:07 #12764 [Verbose] > │ let v215 : int64 = │
00:05:07 #12765 [Verbose] > │ match v212 with │
00:05:07 #12766 [Verbose] > │ | US1_1 -> (* None *) │
00:05:07 #12767 [Verbose] > │ 0L │
00:05:07 #12768 [Verbose] > │ | US1_0(v213) -> (* Some *) │
00:05:07 #12769 [Verbose] > │ v213 │
00:05:07 #12770 [Verbose] > │ v192.[int v195] <- v215 │
00:05:07 #12771 [Verbose] > │ let v216 : uint64 = v195 + 1UL │
00:05:07 #12772 [Verbose] > │ v193.l0 <- v216 │
00:05:07 #12773 [Verbose] > │ () │
00:05:07 #12774 [Verbose] > │ let v217 : uint64 = System.Convert.ToUInt64 v192.Length │
00:05:07 #12775 [Verbose] > │ let v218 : UH5 = UH5_0 │
00:05:07 #12776 [Verbose] > │ let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3 │
00:05:07 #12777 [Verbose] > │ while method23(v217, v219) do │
00:05:07 #12778 [Verbose] > │ let v221 : uint64 = v219.l0 │
00:05:07 #12779 [Verbose] > │ let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2 │
00:05:07 #12780 [Verbose] > │ let v224 : int64 = v192.[int v221] │
00:05:07 #12781 [Verbose] > │ let v225 : int32 = v223 + 1 │
00:05:07 #12782 [Verbose] > │ let v226 : uint64 = v221 + 1UL │
00:05:07 #12783 [Verbose] > │ let v227 : UH5 = UH5_1(v223, v224, v222) │
00:05:07 #12784 [Verbose] > │ v219.l0 <- v226 │
00:05:07 #12785 [Verbose] > │ v219.l1 <- v227 │
00:05:07 #12786 [Verbose] > │ v219.l2 <- v225 │
00:05:07 #12787 [Verbose] > │ () │
00:05:07 #12788 [Verbose] > │ let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2 │
00:05:07 #12789 [Verbose] > │ let v230 : UH5 = UH5_0 │
00:05:07 #12790 [Verbose] > │ let v231 : UH5 = method24(v228, v230) │
00:05:07 #12791 [Verbose] > │ let v232 : (struct (int32 * int64) []) = method25(v231) │
00:05:07 #12792 [Verbose] > │ let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │
00:05:07 #12793 [Verbose] > │ a, b) |> Map.ofArray │
00:05:07 #12794 [Verbose] > │ let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:05:07 #12795 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180)) │
00:05:07 #12796 [Verbose] > │ let v235 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12797 [Verbose] > │ while method4(v180, v235) do │
00:05:07 #12798 [Verbose] > │ let v237 : uint64 = v235.l0 │
00:05:07 #12799 [Verbose] > │ let struct (v238 : UH2, v239 : US0) = v167.[int v237] │
00:05:07 #12800 [Verbose] > │ let v240 : UH6 = UH6_0 │
00:05:07 #12801 [Verbose] > │ let v241 : int32 = 0 │
00:05:07 #12802 [Verbose] > │ let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241) │
00:05:07 #12803 [Verbose] > │ let v244 : UH6 = UH6_0 │
00:05:07 #12804 [Verbose] > │ let v245 : UH6 = method29(v242, v244) │
00:05:07 #12805 [Verbose] > │ let v246 : UH2 = UH2_0 │
00:05:07 #12806 [Verbose] > │ let v247 : UH2 = method30(v233, v245, v246) │
00:05:07 #12807 [Verbose] > │ let v248 : (string []) = method31(v247) │
00:05:07 #12808 [Verbose] > │ v234.[int v237] <- struct (v248, v239) │
00:05:07 #12809 [Verbose] > │ let v249 : uint64 = v237 + 1UL │
00:05:07 #12810 [Verbose] > │ v235.l0 <- v249 │
00:05:07 #12811 [Verbose] > │ () │
00:05:07 #12812 [Verbose] > │ System.Console.WriteLine v2 │
00:05:07 #12813 [Verbose] > │ let v250 : uint64 = System.Convert.ToUInt64 v234.Length │
00:05:07 #12814 [Verbose] > │ let v251 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12815 [Verbose] > │ while method4(v250, v251) do │
00:05:07 #12816 [Verbose] > │ let v253 : uint64 = v251.l0 │
00:05:07 #12817 [Verbose] > │ let struct (v254 : (string []), v255 : US0) = v234.[int v253] │
00:05:07 #12818 [Verbose] > │ match v255 with │
00:05:07 #12819 [Verbose] > │ | US0_1 -> (* None *) │
00:05:07 #12820 [Verbose] > │ let v258 : unit option = None │
00:05:07 #12821 [Verbose] > │ let mutable _v258 = v258 │
00:05:07 #12822 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:07 #12823 [Verbose] > │ () │
00:05:07 #12824 [Verbose] > │ #endif │
00:05:07 #12825 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:07 #12826 [Verbose] > │ () │
00:05:07 #12827 [Verbose] > │ #endif │
00:05:07 #12828 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:07 #12829 [Verbose] > │ () │
00:05:07 #12830 [Verbose] > │ #endif │
00:05:07 #12831 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12832 [Verbose] > │ System.Console.ResetColor () │
00:05:07 #12833 [Verbose] > │ () │
00:05:07 #12834 [Verbose] > │ #endif │
00:05:07 #12835 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12836 [Verbose] > │ System.Console.ResetColor () │
00:05:07 #12837 [Verbose] > │ () │
00:05:07 #12838 [Verbose] > │ #endif │
00:05:07 #12839 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:07 #12840 [Verbose] > │ System.Console.ResetColor () │
00:05:07 #12841 [Verbose] > │ () │
00:05:07 #12842 [Verbose] > │ #endif │
00:05:07 #12843 [Verbose] > │ |> fun x -> _v258 <- Some x │
00:05:07 #12844 [Verbose] > │ _v258 |> Option.get │
00:05:07 #12845 [Verbose] > │ () │
00:05:07 #12846 [Verbose] > │ | US0_0(v256) -> (* Some *) │
00:05:07 #12847 [Verbose] > │ let v257 : unit option = None │
00:05:07 #12848 [Verbose] > │ let mutable _v257 = v257 │
00:05:07 #12849 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:07 #12850 [Verbose] > │ () │
00:05:07 #12851 [Verbose] > │ #endif │
00:05:07 #12852 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:07 #12853 [Verbose] > │ () │
00:05:07 #12854 [Verbose] > │ #endif │
00:05:07 #12855 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:07 #12856 [Verbose] > │ () │
00:05:07 #12857 [Verbose] > │ #endif │
00:05:07 #12858 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12859 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:05:07 #12860 [Verbose] > │ () │
00:05:07 #12861 [Verbose] > │ #endif │
00:05:07 #12862 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12863 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:05:07 #12864 [Verbose] > │ () │
00:05:07 #12865 [Verbose] > │ #endif │
00:05:07 #12866 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:07 #12867 [Verbose] > │ System.Console.ForegroundColor <- v256 │
00:05:07 #12868 [Verbose] > │ () │
00:05:07 #12869 [Verbose] > │ #endif │
00:05:07 #12870 [Verbose] > │ |> fun x -> _v257 <- Some x │
00:05:07 #12871 [Verbose] > │ _v257 |> Option.get │
00:05:07 #12872 [Verbose] > │ () │
00:05:07 #12873 [Verbose] > │ let v259 : string = "\t| " │
00:05:07 #12874 [Verbose] > │ let v260 : string = System.String.Join (v259, v254) │
00:05:07 #12875 [Verbose] > │ System.Console.WriteLine v260 │
00:05:07 #12876 [Verbose] > │ let v261 : unit option = None │
00:05:07 #12877 [Verbose] > │ let mutable _v261 = v261 │
00:05:07 #12878 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:05:07 #12879 [Verbose] > │ () │
00:05:07 #12880 [Verbose] > │ #endif │
00:05:07 #12881 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:05:07 #12882 [Verbose] > │ () │
00:05:07 #12883 [Verbose] > │ #endif │
00:05:07 #12884 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:05:07 #12885 [Verbose] > │ () │
00:05:07 #12886 [Verbose] > │ #endif │
00:05:07 #12887 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12888 [Verbose] > │ System.Console.ResetColor () │
00:05:07 #12889 [Verbose] > │ () │
00:05:07 #12890 [Verbose] > │ #endif │
00:05:07 #12891 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:05:07 #12892 [Verbose] > │ System.Console.ResetColor () │
00:05:07 #12893 [Verbose] > │ () │
00:05:07 #12894 [Verbose] > │ #endif │
00:05:07 #12895 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:05:07 #12896 [Verbose] > │ System.Console.ResetColor () │
00:05:07 #12897 [Verbose] > │ () │
00:05:07 #12898 [Verbose] > │ #endif │
00:05:07 #12899 [Verbose] > │ |> fun x -> _v261 <- Some x │
00:05:07 #12900 [Verbose] > │ _v261 |> Option.get │
00:05:07 #12901 [Verbose] > │ let v262 : uint64 = v253 + 1UL │
00:05:07 #12902 [Verbose] > │ v251.l0 <- v262 │
00:05:07 #12903 [Verbose] > │ () │
00:05:07 #12904 [Verbose] > │ let v263 : ((float []) []) = Array.zeroCreate<(float [])> │
00:05:07 #12905 [Verbose] > │ (System.Convert.ToInt32(v90)) │
00:05:07 #12906 [Verbose] > │ let v264 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12907 [Verbose] > │ while method4(v90, v264) do │
00:05:07 #12908 [Verbose] > │ let v266 : uint64 = v264.l0 │
00:05:07 #12909 [Verbose] > │ let struct (v267 : string, v268 : string, v269 : string, v270 : │
00:05:07 #12910 [Verbose] > │ (int64 [])) = v16.[int v266] │
00:05:07 #12911 [Verbose] > │ let v271 : (int64 -> float) = float │
00:05:07 #12912 [Verbose] > │ let v272 : uint64 = System.Convert.ToUInt64 v270.Length │
00:05:07 #12913 [Verbose] > │ let v273 : (float []) = Array.zeroCreate<float> │
00:05:07 #12914 [Verbose] > │ (System.Convert.ToInt32(v272)) │
00:05:07 #12915 [Verbose] > │ let v274 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12916 [Verbose] > │ while method4(v272, v274) do │
00:05:07 #12917 [Verbose] > │ let v276 : uint64 = v274.l0 │
00:05:07 #12918 [Verbose] > │ let v277 : int64 = v270.[int v276] │
00:05:07 #12919 [Verbose] > │ let v278 : float = v271 v277 │
00:05:07 #12920 [Verbose] > │ v273.[int v276] <- v278 │
00:05:07 #12921 [Verbose] > │ let v279 : uint64 = v276 + 1UL │
00:05:07 #12922 [Verbose] > │ v274.l0 <- v279 │
00:05:07 #12923 [Verbose] > │ () │
00:05:07 #12924 [Verbose] > │ v263.[int v266] <- v273 │
00:05:07 #12925 [Verbose] > │ let v280 : uint64 = v266 + 1UL │
00:05:07 #12926 [Verbose] > │ v264.l0 <- v280 │
00:05:07 #12927 [Verbose] > │ () │
00:05:07 #12928 [Verbose] > │ let v281 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:05:07 #12929 [Verbose] > │ let v282 : ((float []) []) = v281 v263 │
00:05:07 #12930 [Verbose] > │ let v283 : uint64 = System.Convert.ToUInt64 v282.Length │
00:05:07 #12931 [Verbose] > │ let v284 : (float []) = Array.zeroCreate<float> │
00:05:07 #12932 [Verbose] > │ (System.Convert.ToInt32(v283)) │
00:05:07 #12933 [Verbose] > │ let v285 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12934 [Verbose] > │ while method4(v283, v285) do │
00:05:07 #12935 [Verbose] > │ let v287 : uint64 = v285.l0 │
00:05:07 #12936 [Verbose] > │ let v288 : (float []) = v282.[int v287] │
00:05:07 #12937 [Verbose] > │ let v289 : ((float []) -> float) = Array.average │
00:05:07 #12938 [Verbose] > │ let v290 : float = v289 v288 │
00:05:07 #12939 [Verbose] > │ v284.[int v287] <- v290 │
00:05:07 #12940 [Verbose] > │ let v291 : uint64 = v287 + 1UL │
00:05:07 #12941 [Verbose] > │ v285.l0 <- v291 │
00:05:07 #12942 [Verbose] > │ () │
00:05:07 #12943 [Verbose] > │ let v292 : (float -> int64) = int64 │
00:05:07 #12944 [Verbose] > │ let v293 : uint64 = System.Convert.ToUInt64 v284.Length │
00:05:07 #12945 [Verbose] > │ let v294 : (int64 []) = Array.zeroCreate<int64> │
00:05:07 #12946 [Verbose] > │ (System.Convert.ToInt32(v293)) │
00:05:07 #12947 [Verbose] > │ let v295 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12948 [Verbose] > │ while method4(v293, v295) do │
00:05:07 #12949 [Verbose] > │ let v297 : uint64 = v295.l0 │
00:05:07 #12950 [Verbose] > │ let v298 : float = v284.[int v297] │
00:05:07 #12951 [Verbose] > │ let v299 : int64 = v292 v298 │
00:05:07 #12952 [Verbose] > │ v294.[int v297] <- v299 │
00:05:07 #12953 [Verbose] > │ let v300 : uint64 = v297 + 1UL │
00:05:07 #12954 [Verbose] > │ v295.l0 <- v300 │
00:05:07 #12955 [Verbose] > │ () │
00:05:07 #12956 [Verbose] > │ let v301 : uint64 = System.Convert.ToUInt64 v294.Length │
00:05:07 #12957 [Verbose] > │ let v302 : UH5 = UH5_0 │
00:05:07 #12958 [Verbose] > │ let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3 │
00:05:07 #12959 [Verbose] > │ while method23(v301, v303) do │
00:05:07 #12960 [Verbose] > │ let v305 : uint64 = v303.l0 │
00:05:07 #12961 [Verbose] > │ let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2 │
00:05:07 #12962 [Verbose] > │ let v308 : int64 = v294.[int v305] │
00:05:07 #12963 [Verbose] > │ let v309 : int32 = v307 + 1 │
00:05:07 #12964 [Verbose] > │ let v310 : uint64 = v305 + 1UL │
00:05:07 #12965 [Verbose] > │ let v311 : UH5 = UH5_1(v307, v308, v306) │
00:05:07 #12966 [Verbose] > │ v303.l0 <- v310 │
00:05:07 #12967 [Verbose] > │ v303.l1 <- v311 │
00:05:07 #12968 [Verbose] > │ v303.l2 <- v309 │
00:05:07 #12969 [Verbose] > │ () │
00:05:07 #12970 [Verbose] > │ let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2 │
00:05:07 #12971 [Verbose] > │ let v314 : UH5 = UH5_0 │
00:05:07 #12972 [Verbose] > │ let v315 : UH5 = method24(v312, v314) │
00:05:07 #12973 [Verbose] > │ let v316 : (struct (int32 * int64) []) = method34(v315) │
00:05:07 #12974 [Verbose] > │ System.Console.WriteLine v2 │
00:05:07 #12975 [Verbose] > │ let v317 : string = "Average Ranking " │
00:05:07 #12976 [Verbose] > │ System.Console.WriteLine v317 │
00:05:07 #12977 [Verbose] > │ let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:05:07 #12978 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:05:07 #12979 [Verbose] > │ let v319 : (struct (int32 * int64) -> int64) = closure5() │
00:05:07 #12980 [Verbose] > │ let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:05:07 #12981 [Verbose] > │ = v318 v319 │
00:05:07 #12982 [Verbose] > │ let v321 : (struct (int32 * int64) []) = v320 v316 │
00:05:07 #12983 [Verbose] > │ let v322 : uint64 = System.Convert.ToUInt64 v321.Length │
00:05:07 #12984 [Verbose] > │ let v323 : Mut0 = {l0 = 0UL} : Mut0 │
00:05:07 #12985 [Verbose] > │ while method4(v322, v323) do │
00:05:07 #12986 [Verbose] > │ let v325 : uint64 = v323.l0 │
00:05:07 #12987 [Verbose] > │ let struct (v326 : int32, v327 : int64) = v321.[int v325] │
00:05:07 #12988 [Verbose] > │ let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │
00:05:07 #12989 [Verbose] > │ " │
00:05:07 #12990 [Verbose] > │ System.Console.WriteLine v328 │
00:05:07 #12991 [Verbose] > │ let v329 : uint64 = v325 + 1UL │
00:05:07 #12992 [Verbose] > │ v323.l0 <- v329 │
00:05:07 #12993 [Verbose] > │ () │
00:05:07 #12994 [Verbose] > │ () │
00:05:07 #12995 [Verbose] > │ method0() │
00:05:07 #12996 [Verbose] > │ │
00:05:07 #12997 [Verbose] > │ │
00:05:07 #12998 [Verbose] > │ │
00:05:07 #12999 [Verbose] > │ Test: v0 │
00:05:07 #13000 [Verbose] > │ │
00:05:07 #13001 [Verbose] > │ Solution: 0.0 │
00:05:07 #13002 [Verbose] > │ Test case 1. A. Time: 30 │
00:05:07 #13003 [Verbose] > │ │
00:05:07 #13004 [Verbose] > │ Solution: 2.0 │
00:05:07 #13005 [Verbose] > │ Test case 1. A. Time: 15 │
00:05:07 #13006 [Verbose] > │ │
00:05:07 #13007 [Verbose] > │ Solution: 5.0 │
00:05:07 #13008 [Verbose] > │ Test case 1. A. Time: 15 │
00:05:07 #13009 [Verbose] > │ │
00:05:07 #13010 [Verbose] > │ Input | Expected | Result | Best │
00:05:07 #13011 [Verbose] > │ --- | --- | --- | --- │
00:05:07 #13012 [Verbose] > │ 0.0 | 1.0 | 1.0 | struct (1L, 30L) │
00:05:07 #13013 [Verbose] > │ 2.0 | 3.0 | 3.0 | struct (1L, 15L) │
00:05:07 #13014 [Verbose] > │ 5.0 | 6.0 | 6.0 | struct (1L, 15L) │
00:05:07 #13015 [Verbose] > │ │
00:05:07 #13016 [Verbose] > │ Average Ranking │
00:05:07 #13017 [Verbose] > │ Test case 1. Average Time: 20L │
00:05:07 #13018 [Verbose] > │ │
00:05:07 #13019 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:09 #13020 [Verbose] > [NbConvertApp] Converting notebook benchmark.dib.ipynb to html
00:05:09 #13021 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:05:09 #13022 [Verbose] > validate(nb)
00:05:10 #13023 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:05:10 #13024 [Verbose] > return _pygments_highlight(
00:05:10 #13025 [Verbose] > [NbConvertApp] Writing 418549 bytes to benchmark.dib.html
00:05:11 #13026 [Debug] executeAsync / exitCode: 0 / output.Length: 242641
00:05:11 #13027 [Debug] main / executeCommand / exitCode: 0
00:05:11 #13028 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 stream.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:05:14 #13029 [Verbose] >
00:05:14 #13030 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:14 #13031 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:14 #13032 [Verbose] > │ # stream │
00:05:14 #13033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:14 #13034 [Verbose] >
00:05:14 #13035 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:14 #13036 [Verbose] > // // test
00:05:14 #13037 [Verbose] >
00:05:14 #13038 [Verbose] > open testing
00:05:18 #13039 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-4975-7553-7c207379ba51\main.spi
00:05:19 #13040 [Verbose] >
00:05:19 #13041 [Verbose] > ╭─[ 4.74s - stdout ]───────────────────────────────────────────────────────────╮
00:05:19 #13042 [Verbose] > │ () │
00:05:19 #13043 [Verbose] > │ │
00:05:19 #13044 [Verbose] > │ │
00:05:19 #13045 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #13046 [Verbose] >
00:05:19 #13047 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:19 #13048 [Verbose] > union rec stream t =
00:05:19 #13049 [Verbose] > | StreamCons : t * (() -> stream t)
00:05:19 #13050 [Verbose] > | StreamNil
00:05:19 #13051 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5175-7504-766d507d79b6\main.spi
00:05:19 #13052 [Verbose] >
00:05:19 #13053 [Verbose] > ╭─[ 244.92ms - stdout ]────────────────────────────────────────────────────────╮
00:05:19 #13054 [Verbose] > │ () │
00:05:19 #13055 [Verbose] > │ │
00:05:19 #13056 [Verbose] > │ │
00:05:19 #13057 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #13058 [Verbose] >
00:05:19 #13059 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:19 #13060 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:19 #13061 [Verbose] > │ ## fold │
00:05:19 #13062 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #13063 [Verbose] >
00:05:19 #13064 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:19 #13065 [Verbose] > inl fold fn init s =
00:05:19 #13066 [Verbose] > inl rec body acc = function
00:05:19 #13067 [Verbose] > | StreamCons (st, fn') => loop (fn acc st) (fn' ())
00:05:19 #13068 [Verbose] > | StreamNil => acc
00:05:19 #13069 [Verbose] > and inl loop acc = join_body body acc
00:05:19 #13070 [Verbose] > loop init s
00:05:19 #13071 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5200-0022-0029ed6b226e\main.spi
00:05:19 #13072 [Verbose] >
00:05:19 #13073 [Verbose] > ╭─[ 208.49ms - stdout ]────────────────────────────────────────────────────────╮
00:05:19 #13074 [Verbose] > │ () │
00:05:19 #13075 [Verbose] > │ │
00:05:19 #13076 [Verbose] > │ │
00:05:19 #13077 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #13078 [Verbose] >
00:05:19 #13079 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:19 #13080 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:19 #13081 [Verbose] > │ ## fold_back │
00:05:19 #13082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:19 #13083 [Verbose] >
00:05:19 #13084 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:19 #13085 [Verbose] > inl fold_back fn s init =
00:05:19 #13086 [Verbose] > inl rec body acc = function
00:05:19 #13087 [Verbose] > | StreamCons (st, fn') => fn st (loop acc (fn' ()))
00:05:19 #13088 [Verbose] > | StreamNil => acc
00:05:19 #13089 [Verbose] > and inl loop acc = join_body body acc
00:05:19 #13090 [Verbose] > loop init s
00:05:20 #13091 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5221-2123-22a67783d3f8\main.spi
00:05:20 #13092 [Verbose] >
00:05:20 #13093 [Verbose] > ╭─[ 195.44ms - stdout ]────────────────────────────────────────────────────────╮
00:05:20 #13094 [Verbose] > │ () │
00:05:20 #13095 [Verbose] > │ │
00:05:20 #13096 [Verbose] > │ │
00:05:20 #13097 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #13098 [Verbose] >
00:05:20 #13099 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:20 #13100 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:20 #13101 [Verbose] > │ ## to_list │
00:05:20 #13102 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #13103 [Verbose] >
00:05:20 #13104 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 #13105 [Verbose] > inl to_list s =
00:05:20 #13106 [Verbose] > (s, [[]])
00:05:20 #13107 [Verbose] > ||> fold_back fun x acc =>
00:05:20 #13108 [Verbose] > x :: acc
00:05:20 #13109 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5241-4133-4ed252380e04\main.spi
00:05:20 #13110 [Verbose] >
00:05:20 #13111 [Verbose] > ╭─[ 197.64ms - stdout ]────────────────────────────────────────────────────────╮
00:05:20 #13112 [Verbose] > │ () │
00:05:20 #13113 [Verbose] > │ │
00:05:20 #13114 [Verbose] > │ │
00:05:20 #13115 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #13116 [Verbose] >
00:05:20 #13117 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:20 #13118 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:20 #13119 [Verbose] > │ ## rev │
00:05:20 #13120 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #13121 [Verbose] >
00:05:20 #13122 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 #13123 [Verbose] > inl rev s =
00:05:20 #13124 [Verbose] > (StreamNil, s)
00:05:20 #13125 [Verbose] > ||> fold fun s x =>
00:05:20 #13126 [Verbose] > StreamCons (x, fun () => s)
00:05:20 #13127 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5261-6194-6f2b8be41a87\main.spi
00:05:20 #13128 [Verbose] >
00:05:20 #13129 [Verbose] > ╭─[ 215.93ms - stdout ]────────────────────────────────────────────────────────╮
00:05:20 #13130 [Verbose] > │ () │
00:05:20 #13131 [Verbose] > │ │
00:05:20 #13132 [Verbose] > │ │
00:05:20 #13133 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #13134 [Verbose] >
00:05:20 #13135 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:20 #13136 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:20 #13137 [Verbose] > │ ## from_list │
00:05:20 #13138 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #13139 [Verbose] >
00:05:20 #13140 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 #13141 [Verbose] > inl from_list list =
00:05:20 #13142 [Verbose] > (list, StreamNil)
00:05:20 #13143 [Verbose] > ||> listm.foldBack fun x acc =>
00:05:20 #13144 [Verbose] > StreamCons (x, fun () => acc)
00:05:20 #13145 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5284-8416-8c521de1945a\main.spi
00:05:20 #13146 [Verbose] >
00:05:20 #13147 [Verbose] > ╭─[ 212.98ms - stdout ]────────────────────────────────────────────────────────╮
00:05:20 #13148 [Verbose] > │ () │
00:05:20 #13149 [Verbose] > │ │
00:05:20 #13150 [Verbose] > │ │
00:05:20 #13151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:20 #13152 [Verbose] >
00:05:20 #13153 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:20 #13154 [Verbose] > // // test
00:05:20 #13155 [Verbose] >
00:05:20 #13156 [Verbose] > listm.init 3i32 id
00:05:20 #13157 [Verbose] > |> from_list
00:05:20 #13158 [Verbose] > |> rev
00:05:20 #13159 [Verbose] > |> to_list
00:05:20 #13160 [Verbose] > |> _assert_eq [[ 2; 1; 0 ]]
00:05:20 #13161 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5305-0563-03686e1ed045\main.spi
00:05:22 #13162 [Verbose] >
00:05:22 #13163 [Verbose] > ╭─[ 1.57s - stdout ]───────────────────────────────────────────────────────────╮
00:05:22 #13164 [Verbose] > │ type UH0 = │
00:05:22 #13165 [Verbose] > │ | UH0_0 │
00:05:22 #13166 [Verbose] > │ | UH0_1 of int32 * UH0 │
00:05:22 #13167 [Verbose] > │ let rec method0 () : unit = │
00:05:22 #13168 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:05:22 #13169 [Verbose] > │ let v1 : UH0 = UH0_1(0, v0) │
00:05:22 #13170 [Verbose] > │ let v2 : UH0 = UH0_1(1, v1) │
00:05:22 #13171 [Verbose] > │ let v3 : UH0 = UH0_1(2, v2) │
00:05:22 #13172 [Verbose] > │ let v4 : string = $"%A{v3}" │
00:05:22 #13173 [Verbose] > │ System.Console.WriteLine v4 │
00:05:22 #13174 [Verbose] > │ let v23 : UH0 = UH0_0 │
00:05:22 #13175 [Verbose] > │ let v24 : UH0 = UH0_1(0, v23) │
00:05:22 #13176 [Verbose] > │ let v25 : UH0 = UH0_1(1, v24) │
00:05:22 #13177 [Verbose] > │ let v26 : UH0 = UH0_1(2, v25) │
00:05:22 #13178 [Verbose] > │ let v27 : UH0 = UH0_0 │
00:05:22 #13179 [Verbose] > │ let v28 : UH0 = UH0_1(0, v27) │
00:05:22 #13180 [Verbose] > │ let v29 : UH0 = UH0_1(1, v28) │
00:05:22 #13181 [Verbose] > │ let v30 : UH0 = UH0_1(2, v29) │
00:05:22 #13182 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}" │
00:05:22 #13183 [Verbose] > │ () │
00:05:22 #13184 [Verbose] > │ method0() │
00:05:22 #13185 [Verbose] > │ │
00:05:22 #13186 [Verbose] > │ UH0_1 (2, UH0_1 (1, UH0_1 (0, UH0_0))) │
00:05:22 #13187 [Verbose] > │ │
00:05:22 #13188 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #13189 [Verbose] >
00:05:22 #13190 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:22 #13191 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:22 #13192 [Verbose] > │ ## try_item │
00:05:22 #13193 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #13194 [Verbose] >
00:05:22 #13195 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:22 #13196 [Verbose] > inl try_item i s =
00:05:22 #13197 [Verbose] > inl rec body i = function
00:05:22 #13198 [Verbose] > | StreamCons (x, _) when i <= 0 => Some x
00:05:22 #13199 [Verbose] > | StreamCons (_, fn) => loop (i - 1) (fn ())
00:05:22 #13200 [Verbose] > | StreamNil => None
00:05:22 #13201 [Verbose] > and inl loop acc s' =
00:05:22 #13202 [Verbose] > match var_is acc, var_is s' with
00:05:22 #13203 [Verbose] > | false, false => body acc s'
00:05:22 #13204 [Verbose] > | _ =>
00:05:22 #13205 [Verbose] > inl acc = dyn acc
00:05:22 #13206 [Verbose] > inl s' = dyn s'
00:05:22 #13207 [Verbose] > join body acc s'
00:05:22 #13208 [Verbose] > loop i s
00:05:22 #13209 [Verbose] >
00:05:22 #13210 [Verbose] > inl item i =
00:05:22 #13211 [Verbose] > try_item i >> optionm.value
00:05:22 #13212 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5464-6416-692eb0f70ee2\main.spi
00:05:22 #13213 [Verbose] >
00:05:22 #13214 [Verbose] > ╭─[ 222.83ms - stdout ]────────────────────────────────────────────────────────╮
00:05:22 #13215 [Verbose] > │ () │
00:05:22 #13216 [Verbose] > │ │
00:05:22 #13217 [Verbose] > │ │
00:05:22 #13218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #13219 [Verbose] >
00:05:22 #13220 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:22 #13221 [Verbose] > // // test
00:05:22 #13222 [Verbose] >
00:05:22 #13223 [Verbose] > listm.init 10i32 id
00:05:22 #13224 [Verbose] > |> from_list
00:05:22 #13225 [Verbose] > |> item 9i32
00:05:22 #13226 [Verbose] > |> _assert_eq 9
00:05:22 #13227 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5486-8670-81cfeeffe5a6\main.spi
00:05:22 #13228 [Verbose] >
00:05:22 #13229 [Verbose] > ╭─[ 234.45ms - stdout ]────────────────────────────────────────────────────────╮
00:05:22 #13230 [Verbose] > │ let rec method0 () : unit = │
00:05:22 #13231 [Verbose] > │ let v0 : string = $"%A{9}" │
00:05:22 #13232 [Verbose] > │ System.Console.WriteLine v0 │
00:05:22 #13233 [Verbose] > │ let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}" │
00:05:22 #13234 [Verbose] > │ () │
00:05:22 #13235 [Verbose] > │ method0() │
00:05:22 #13236 [Verbose] > │ │
00:05:22 #13237 [Verbose] > │ 9 │
00:05:22 #13238 [Verbose] > │ │
00:05:22 #13239 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #13240 [Verbose] >
00:05:22 #13241 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:22 #13242 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:22 #13243 [Verbose] > │ ## new_infinite_stream │
00:05:22 #13244 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:22 #13245 [Verbose] >
00:05:22 #13246 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:22 #13247 [Verbose] > inl new_infinite_stream fn =
00:05:22 #13248 [Verbose] > inl rec loop n =
00:05:22 #13249 [Verbose] > StreamCons (fn n, fun () => loop (n + 1))
00:05:22 #13250 [Verbose] > loop 0
00:05:22 #13251 [Verbose] >
00:05:22 #13252 [Verbose] > inl new_infinite_stream_ fn =
00:05:22 #13253 [Verbose] > let rec loop n =
00:05:22 #13254 [Verbose] > StreamCons (fn n, fun () => loop (n + 1))
00:05:22 #13255 [Verbose] > loop 0
00:05:22 #13256 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5511-1100-11a0a844bab2\main.spi
00:05:23 #13257 [Verbose] >
00:05:23 #13258 [Verbose] > ╭─[ 284.48ms - stdout ]────────────────────────────────────────────────────────╮
00:05:23 #13259 [Verbose] > │ () │
00:05:23 #13260 [Verbose] > │ │
00:05:23 #13261 [Verbose] > │ │
00:05:23 #13262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #13263 [Verbose] >
00:05:23 #13264 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:23 #13265 [Verbose] > // // test
00:05:23 #13266 [Verbose] >
00:05:23 #13267 [Verbose] > new_infinite_stream print_and_return
00:05:23 #13268 [Verbose] > |> item 4i32
00:05:23 #13269 [Verbose] > |> _assert_eq 4i32
00:05:23 #13270 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5539-3964-3a889e1dd746\main.spi
00:05:23 #13271 [Verbose] >
00:05:23 #13272 [Verbose] > ╭─[ 299.66ms - stdout ]────────────────────────────────────────────────────────╮
00:05:23 #13273 [Verbose] > │ let rec method0 () : unit = │
00:05:23 #13274 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:23 #13275 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:23 #13276 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:23 #13277 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:23 #13278 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:23 #13279 [Verbose] > │ let v0 : string = $"%A{4}" │
00:05:23 #13280 [Verbose] > │ System.Console.WriteLine v0 │
00:05:23 #13281 [Verbose] > │ let v1 : string = $"__expect / actual: %A{4} / expected: %A{4}" │
00:05:23 #13282 [Verbose] > │ () │
00:05:23 #13283 [Verbose] > │ method0() │
00:05:23 #13284 [Verbose] > │ │
00:05:23 #13285 [Verbose] > │ print_and_return / x: 0 │
00:05:23 #13286 [Verbose] > │ print_and_return / x: 1 │
00:05:23 #13287 [Verbose] > │ print_and_return / x: 2 │
00:05:23 #13288 [Verbose] > │ print_and_return / x: 3 │
00:05:23 #13289 [Verbose] > │ print_and_return / x: 4 │
00:05:23 #13290 [Verbose] > │ 4 │
00:05:23 #13291 [Verbose] > │ │
00:05:23 #13292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #13293 [Verbose] >
00:05:23 #13294 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:23 #13295 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:23 #13296 [Verbose] > │ ## new_finite_stream │
00:05:23 #13297 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #13298 [Verbose] >
00:05:23 #13299 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:23 #13300 [Verbose] > inl new_finite_stream fn max =
00:05:23 #13301 [Verbose] > inl rec loop n =
00:05:23 #13302 [Verbose] > if n >= max
00:05:23 #13303 [Verbose] > then StreamNil
00:05:23 #13304 [Verbose] > else StreamCons (fn n, fun () => loop (n + 1))
00:05:23 #13305 [Verbose] > loop 0
00:05:23 #13306 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5571-7159-779226375fd7\main.spi
00:05:23 #13307 [Verbose] >
00:05:23 #13308 [Verbose] > ╭─[ 242.37ms - stdout ]────────────────────────────────────────────────────────╮
00:05:23 #13309 [Verbose] > │ () │
00:05:23 #13310 [Verbose] > │ │
00:05:23 #13311 [Verbose] > │ │
00:05:23 #13312 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #13313 [Verbose] >
00:05:23 #13314 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:23 #13315 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:23 #13316 [Verbose] > │ ## memoize │
00:05:23 #13317 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:23 #13318 [Verbose] >
00:05:23 #13319 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:23 #13320 [Verbose] > union memoized_stream t =
00:05:23 #13321 [Verbose] > | NotComputed : () -> stream t
00:05:23 #13322 [Verbose] > | Computed : stream t
00:05:23 #13323 [Verbose] >
00:05:23 #13324 [Verbose] > inl memoize s =
00:05:23 #13325 [Verbose] > inl rec body s =
00:05:23 #13326 [Verbose] > inl state = mut (NotComputed s)
00:05:23 #13327 [Verbose] > fun () =>
00:05:23 #13328 [Verbose] > match *state with
00:05:23 #13329 [Verbose] > | Computed x => x
00:05:23 #13330 [Verbose] > | NotComputed fn =>
00:05:23 #13331 [Verbose] > inl new_state =
00:05:23 #13332 [Verbose] > match fn () with
00:05:23 #13333 [Verbose] > | StreamNil => StreamNil
00:05:23 #13334 [Verbose] > | StreamCons (x, fn) => StreamCons (x, loop fn)
00:05:23 #13335 [Verbose] > state <- Computed new_state
00:05:23 #13336 [Verbose] > new_state
00:05:23 #13337 [Verbose] > and inl loop s' = join_body_unit body s s'
00:05:23 #13338 [Verbose] > loop (fun () => s)
00:05:23 #13339 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5596-9630-9b23a38140f8\main.spi
00:05:24 #13340 [Verbose] >
00:05:24 #13341 [Verbose] > ╭─[ 496.03ms - stdout ]────────────────────────────────────────────────────────╮
00:05:24 #13342 [Verbose] > │ () │
00:05:24 #13343 [Verbose] > │ │
00:05:24 #13344 [Verbose] > │ │
00:05:24 #13345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:24 #13346 [Verbose] >
00:05:24 #13347 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:24 #13348 [Verbose] > // // test
00:05:24 #13349 [Verbose] >
00:05:24 #13350 [Verbose] > inl memo_stream = new_finite_stream print_and_return 10 |> memoize
00:05:24 #13351 [Verbose] >
00:05:24 #13352 [Verbose] > memo_stream ()
00:05:24 #13353 [Verbose] > |> item 3i32
00:05:24 #13354 [Verbose] > |> _assert_eq 3i32
00:05:24 #13355 [Verbose] >
00:05:24 #13356 [Verbose] > memo_stream ()
00:05:24 #13357 [Verbose] > |> item 5i32
00:05:24 #13358 [Verbose] > |> _assert_eq 5i32
00:05:24 #13359 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5646-4617-4adc43fea5fb\main.spi
00:05:24 #13360 [Verbose] >
00:05:24 #13361 [Verbose] > ╭─[ 730.47ms - stdout ]────────────────────────────────────────────────────────╮
00:05:24 #13362 [Verbose] > │ type UH0 = │
00:05:24 #13363 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:05:24 #13364 [Verbose] > │ | UH0_1 │
00:05:24 #13365 [Verbose] > │ and [<Struct>] US0 = │
00:05:24 #13366 [Verbose] > │ | US0_0 of f0_0 : (unit -> UH0) │
00:05:24 #13367 [Verbose] > │ | US0_1 of f1_0 : UH0 │
00:05:24 #13368 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:05:24 #13369 [Verbose] > │ and [<Struct>] US1 = │
00:05:24 #13370 [Verbose] > │ | US1_0 of f0_0 : int32 │
00:05:24 #13371 [Verbose] > │ | US1_1 │
00:05:24 #13372 [Verbose] > │ let rec closure10 () () : UH0 = │
00:05:24 #13373 [Verbose] > │ UH0_1 │
00:05:24 #13374 [Verbose] > │ and closure9 () () : UH0 = │
00:05:24 #13375 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:05:24 #13376 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:05:24 #13377 [Verbose] > │ UH0_0(9, v0) │
00:05:24 #13378 [Verbose] > │ and closure8 () () : UH0 = │
00:05:24 #13379 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:05:24 #13380 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:05:24 #13381 [Verbose] > │ UH0_0(8, v0) │
00:05:24 #13382 [Verbose] > │ and closure7 () () : UH0 = │
00:05:24 #13383 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:05:24 #13384 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:05:24 #13385 [Verbose] > │ UH0_0(7, v0) │
00:05:24 #13386 [Verbose] > │ and closure6 () () : UH0 = │
00:05:24 #13387 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:05:24 #13388 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:05:24 #13389 [Verbose] > │ UH0_0(6, v0) │
00:05:24 #13390 [Verbose] > │ and closure5 () () : UH0 = │
00:05:24 #13391 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:24 #13392 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:05:24 #13393 [Verbose] > │ UH0_0(5, v0) │
00:05:24 #13394 [Verbose] > │ and closure4 () () : UH0 = │
00:05:24 #13395 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:24 #13396 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:05:24 #13397 [Verbose] > │ UH0_0(4, v0) │
00:05:24 #13398 [Verbose] > │ and closure3 () () : UH0 = │
00:05:24 #13399 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:24 #13400 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:05:24 #13401 [Verbose] > │ UH0_0(3, v0) │
00:05:24 #13402 [Verbose] > │ and closure2 () () : UH0 = │
00:05:24 #13403 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:24 #13404 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:05:24 #13405 [Verbose] > │ UH0_0(2, v0) │
00:05:24 #13406 [Verbose] > │ and closure1 () () : UH0 = │
00:05:24 #13407 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:24 #13408 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:05:24 #13409 [Verbose] > │ UH0_0(1, v0) │
00:05:24 #13410 [Verbose] > │ and closure0 () () : UH0 = │
00:05:24 #13411 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:05:24 #13412 [Verbose] > │ UH0_0(0, v0) │
00:05:24 #13413 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 = │
00:05:24 #13414 [Verbose] > │ let v1 : US0 = v0.l0 │
00:05:24 #13415 [Verbose] > │ match v1 with │
00:05:24 #13416 [Verbose] > │ | US0_1(v2) -> (* Computed *) │
00:05:24 #13417 [Verbose] > │ v2 │
00:05:24 #13418 [Verbose] > │ | US0_0(v3) -> (* NotComputed *) │
00:05:24 #13419 [Verbose] > │ let v4 : UH0 = v3 () │
00:05:24 #13420 [Verbose] > │ let v13 : UH0 = │
00:05:24 #13421 [Verbose] > │ match v4 with │
00:05:24 #13422 [Verbose] > │ | UH0_0(v6, v7) -> (* StreamCons *) │
00:05:24 #13423 [Verbose] > │ let v8 : US0 = US0_0(v7) │
00:05:24 #13424 [Verbose] > │ let v9 : Mut0 = {l0 = v8} : Mut0 │
00:05:24 #13425 [Verbose] > │ let v10 : (unit -> UH0) = closure11(v9) │
00:05:24 #13426 [Verbose] > │ UH0_0(v6, v10) │
00:05:24 #13427 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:24 #13428 [Verbose] > │ UH0_1 │
00:05:24 #13429 [Verbose] > │ let v14 : US0 = US0_1(v13) │
00:05:24 #13430 [Verbose] > │ v0.l0 <- v14 │
00:05:24 #13431 [Verbose] > │ v13 │
00:05:24 #13432 [Verbose] > │ and method1 (v0 : int32, v1 : UH0) : US1 = │
00:05:24 #13433 [Verbose] > │ match v1 with │
00:05:24 #13434 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:05:24 #13435 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:05:24 #13436 [Verbose] > │ if v4 then │
00:05:24 #13437 [Verbose] > │ US1_0(v2) │
00:05:24 #13438 [Verbose] > │ else │
00:05:24 #13439 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:05:24 #13440 [Verbose] > │ let v7 : UH0 = v3 () │
00:05:24 #13441 [Verbose] > │ method1(v6, v7) │
00:05:24 #13442 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:24 #13443 [Verbose] > │ US1_1 │
00:05:24 #13444 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:05:24 #13445 [Verbose] > │ v0 │
00:05:24 #13446 [Verbose] > │ and method0 () : unit = │
00:05:24 #13447 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:24 #13448 [Verbose] > │ let v0 : (unit -> UH0) = closure0() │
00:05:24 #13449 [Verbose] > │ let v1 : US0 = US0_0(v0) │
00:05:24 #13450 [Verbose] > │ let v2 : Mut0 = {l0 = v1} : Mut0 │
00:05:24 #13451 [Verbose] > │ let v3 : US0 = v2.l0 │
00:05:24 #13452 [Verbose] > │ let v18 : UH0 = │
00:05:24 #13453 [Verbose] > │ match v3 with │
00:05:24 #13454 [Verbose] > │ | US0_1(v4) -> (* Computed *) │
00:05:24 #13455 [Verbose] > │ v4 │
00:05:24 #13456 [Verbose] > │ | US0_0(v5) -> (* NotComputed *) │
00:05:24 #13457 [Verbose] > │ let v6 : UH0 = v5 () │
00:05:24 #13458 [Verbose] > │ let v15 : UH0 = │
00:05:24 #13459 [Verbose] > │ match v6 with │
00:05:24 #13460 [Verbose] > │ | UH0_0(v8, v9) -> (* StreamCons *) │
00:05:24 #13461 [Verbose] > │ let v10 : US0 = US0_0(v9) │
00:05:24 #13462 [Verbose] > │ let v11 : Mut0 = {l0 = v10} : Mut0 │
00:05:24 #13463 [Verbose] > │ let v12 : (unit -> UH0) = closure11(v11) │
00:05:24 #13464 [Verbose] > │ UH0_0(v8, v12) │
00:05:24 #13465 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:24 #13466 [Verbose] > │ UH0_1 │
00:05:24 #13467 [Verbose] > │ let v16 : US0 = US0_1(v15) │
00:05:24 #13468 [Verbose] > │ v2.l0 <- v16 │
00:05:24 #13469 [Verbose] > │ v15 │
00:05:24 #13470 [Verbose] > │ let v19 : int32 = 3 │
00:05:24 #13471 [Verbose] > │ let v20 : US1 = method1(v19, v18) │
00:05:24 #13472 [Verbose] > │ let v24 : int32 = │
00:05:24 #13473 [Verbose] > │ match v20 with │
00:05:25 #13474 [Verbose] > │ | US1_1 -> (* None *) │
00:05:25 #13475 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:05:25 #13476 [Verbose] > │ | US1_0(v21) -> (* Some *) │
00:05:25 #13477 [Verbose] > │ v21 │
00:05:25 #13478 [Verbose] > │ let v25 : string = $"%A{v24}" │
00:05:25 #13479 [Verbose] > │ System.Console.WriteLine v25 │
00:05:25 #13480 [Verbose] > │ let v26 : bool = v24 = 3 │
00:05:25 #13481 [Verbose] > │ let v28 : bool = │
00:05:25 #13482 [Verbose] > │ if v26 then │
00:05:25 #13483 [Verbose] > │ true │
00:05:25 #13484 [Verbose] > │ else │
00:05:25 #13485 [Verbose] > │ method2(v26) │
00:05:25 #13486 [Verbose] > │ let v29 : string = $"__expect / actual: %A{v24} / expected: %A{3}" │
00:05:25 #13487 [Verbose] > │ let v30 : bool = v28 = false │
00:05:25 #13488 [Verbose] > │ if v30 then │
00:05:25 #13489 [Verbose] > │ failwith<unit> v29 │
00:05:25 #13490 [Verbose] > │ let v31 : US0 = v2.l0 │
00:05:25 #13491 [Verbose] > │ let v46 : UH0 = │
00:05:25 #13492 [Verbose] > │ match v31 with │
00:05:25 #13493 [Verbose] > │ | US0_1(v32) -> (* Computed *) │
00:05:25 #13494 [Verbose] > │ v32 │
00:05:25 #13495 [Verbose] > │ | US0_0(v33) -> (* NotComputed *) │
00:05:25 #13496 [Verbose] > │ let v34 : UH0 = v33 () │
00:05:25 #13497 [Verbose] > │ let v43 : UH0 = │
00:05:25 #13498 [Verbose] > │ match v34 with │
00:05:25 #13499 [Verbose] > │ | UH0_0(v36, v37) -> (* StreamCons *) │
00:05:25 #13500 [Verbose] > │ let v38 : US0 = US0_0(v37) │
00:05:25 #13501 [Verbose] > │ let v39 : Mut0 = {l0 = v38} : Mut0 │
00:05:25 #13502 [Verbose] > │ let v40 : (unit -> UH0) = closure11(v39) │
00:05:25 #13503 [Verbose] > │ UH0_0(v36, v40) │
00:05:25 #13504 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:25 #13505 [Verbose] > │ UH0_1 │
00:05:25 #13506 [Verbose] > │ let v44 : US0 = US0_1(v43) │
00:05:25 #13507 [Verbose] > │ v2.l0 <- v44 │
00:05:25 #13508 [Verbose] > │ v43 │
00:05:25 #13509 [Verbose] > │ let v47 : int32 = 5 │
00:05:25 #13510 [Verbose] > │ let v48 : US1 = method1(v47, v46) │
00:05:25 #13511 [Verbose] > │ let v52 : int32 = │
00:05:25 #13512 [Verbose] > │ match v48 with │
00:05:25 #13513 [Verbose] > │ | US1_1 -> (* None *) │
00:05:25 #13514 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:05:25 #13515 [Verbose] > │ | US1_0(v49) -> (* Some *) │
00:05:25 #13516 [Verbose] > │ v49 │
00:05:25 #13517 [Verbose] > │ let v53 : string = $"%A{v52}" │
00:05:25 #13518 [Verbose] > │ System.Console.WriteLine v53 │
00:05:25 #13519 [Verbose] > │ let v54 : bool = v52 = 5 │
00:05:25 #13520 [Verbose] > │ let v56 : bool = │
00:05:25 #13521 [Verbose] > │ if v54 then │
00:05:25 #13522 [Verbose] > │ true │
00:05:25 #13523 [Verbose] > │ else │
00:05:25 #13524 [Verbose] > │ method2(v54) │
00:05:25 #13525 [Verbose] > │ let v57 : string = $"__expect / actual: %A{v52} / expected: %A{5}" │
00:05:25 #13526 [Verbose] > │ let v58 : bool = v56 = false │
00:05:25 #13527 [Verbose] > │ if v58 then │
00:05:25 #13528 [Verbose] > │ failwith<unit> v57 │
00:05:25 #13529 [Verbose] > │ method0() │
00:05:25 #13530 [Verbose] > │ │
00:05:25 #13531 [Verbose] > │ print_and_return / x: 0 │
00:05:25 #13532 [Verbose] > │ print_and_return / x: 1 │
00:05:25 #13533 [Verbose] > │ print_and_return / x: 2 │
00:05:25 #13534 [Verbose] > │ print_and_return / x: 3 │
00:05:25 #13535 [Verbose] > │ 3 │
00:05:25 #13536 [Verbose] > │ print_and_return / x: 4 │
00:05:25 #13537 [Verbose] > │ print_and_return / x: 5 │
00:05:25 #13538 [Verbose] > │ 5 │
00:05:25 #13539 [Verbose] > │ │
00:05:25 #13540 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #13541 [Verbose] >
00:05:25 #13542 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:25 #13543 [Verbose] > // // test
00:05:25 #13544 [Verbose] >
00:05:25 #13545 [Verbose] > inl memo_stream = new_infinite_stream_ print_and_return |> memoize
00:05:25 #13546 [Verbose] >
00:05:25 #13547 [Verbose] > memo_stream ()
00:05:25 #13548 [Verbose] > |> item 3i32
00:05:25 #13549 [Verbose] > |> _assert_eq 3i32
00:05:25 #13550 [Verbose] >
00:05:25 #13551 [Verbose] > memo_stream ()
00:05:25 #13552 [Verbose] > |> item 5i32
00:05:25 #13553 [Verbose] > |> _assert_eq 5i32
00:05:25 #13554 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5734-3434-3713c2a71714\main.spi
00:05:25 #13555 [Verbose] >
00:05:25 #13556 [Verbose] > ╭─[ 517.25ms - stdout ]────────────────────────────────────────────────────────╮
00:05:25 #13557 [Verbose] > │ type UH0 = │
00:05:25 #13558 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:05:25 #13559 [Verbose] > │ | UH0_1 │
00:05:25 #13560 [Verbose] > │ and [<Struct>] US0 = │
00:05:25 #13561 [Verbose] > │ | US0_0 of f0_0 : (unit -> UH0) │
00:05:25 #13562 [Verbose] > │ | US0_1 of f1_0 : UH0 │
00:05:25 #13563 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:05:25 #13564 [Verbose] > │ and [<Struct>] US1 = │
00:05:25 #13565 [Verbose] > │ | US1_0 of f0_0 : int32 │
00:05:25 #13566 [Verbose] > │ | US1_1 │
00:05:25 #13567 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 = │
00:05:25 #13568 [Verbose] > │ let v1 : int32 = v0 + 1 │
00:05:25 #13569 [Verbose] > │ method1(v1) │
00:05:25 #13570 [Verbose] > │ and method1 (v0 : int32) : UH0 = │
00:05:25 #13571 [Verbose] > │ printfn $"print_and_return / x: {v0}" │
00:05:25 #13572 [Verbose] > │ let v1 : (unit -> UH0) = closure0(v0) │
00:05:25 #13573 [Verbose] > │ UH0_0(v0, v1) │
00:05:25 #13574 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 = │
00:05:25 #13575 [Verbose] > │ v0 │
00:05:25 #13576 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 = │
00:05:25 #13577 [Verbose] > │ let v2 : US0 = v1.l0 │
00:05:25 #13578 [Verbose] > │ match v2 with │
00:05:25 #13579 [Verbose] > │ | US0_1(v3) -> (* Computed *) │
00:05:25 #13580 [Verbose] > │ v3 │
00:05:25 #13581 [Verbose] > │ | US0_0(v4) -> (* NotComputed *) │
00:05:25 #13582 [Verbose] > │ let v5 : UH0 = v4 () │
00:05:25 #13583 [Verbose] > │ let v12 : UH0 = │
00:05:25 #13584 [Verbose] > │ match v5 with │
00:05:25 #13585 [Verbose] > │ | UH0_0(v7, v8) -> (* StreamCons *) │
00:05:25 #13586 [Verbose] > │ let v9 : (unit -> UH0) = method2(v0, v8) │
00:05:25 #13587 [Verbose] > │ UH0_0(v7, v9) │
00:05:25 #13588 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:25 #13589 [Verbose] > │ UH0_1 │
00:05:25 #13590 [Verbose] > │ let v13 : US0 = US0_1(v12) │
00:05:25 #13591 [Verbose] > │ v1.l0 <- v13 │
00:05:25 #13592 [Verbose] > │ v12 │
00:05:25 #13593 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) = │
00:05:25 #13594 [Verbose] > │ let v2 : US0 = US0_0(v1) │
00:05:25 #13595 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:05:25 #13596 [Verbose] > │ closure2(v0, v3) │
00:05:25 #13597 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US1 = │
00:05:25 #13598 [Verbose] > │ match v1 with │
00:05:25 #13599 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:05:25 #13600 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:05:25 #13601 [Verbose] > │ if v4 then │
00:05:25 #13602 [Verbose] > │ US1_0(v2) │
00:05:25 #13603 [Verbose] > │ else │
00:05:25 #13604 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:05:25 #13605 [Verbose] > │ let v7 : UH0 = v3 () │
00:05:25 #13606 [Verbose] > │ method3(v6, v7) │
00:05:25 #13607 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:25 #13608 [Verbose] > │ US1_1 │
00:05:25 #13609 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:05:25 #13610 [Verbose] > │ v0 │
00:05:25 #13611 [Verbose] > │ and method0 () : unit = │
00:05:25 #13612 [Verbose] > │ let v0 : int32 = 0 │
00:05:25 #13613 [Verbose] > │ let v1 : UH0 = method1(v0) │
00:05:25 #13614 [Verbose] > │ let v2 : (unit -> UH0) = closure1(v1) │
00:05:25 #13615 [Verbose] > │ let v3 : (unit -> UH0) = method2(v1, v2) │
00:05:25 #13616 [Verbose] > │ let v4 : UH0 = v3 () │
00:05:25 #13617 [Verbose] > │ let v5 : int32 = 3 │
00:05:25 #13618 [Verbose] > │ let v6 : US1 = method3(v5, v4) │
00:05:25 #13619 [Verbose] > │ let v10 : int32 = │
00:05:25 #13620 [Verbose] > │ match v6 with │
00:05:25 #13621 [Verbose] > │ | US1_1 -> (* None *) │
00:05:25 #13622 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:05:25 #13623 [Verbose] > │ | US1_0(v7) -> (* Some *) │
00:05:25 #13624 [Verbose] > │ v7 │
00:05:25 #13625 [Verbose] > │ let v11 : string = $"%A{v10}" │
00:05:25 #13626 [Verbose] > │ System.Console.WriteLine v11 │
00:05:25 #13627 [Verbose] > │ let v12 : bool = v10 = 3 │
00:05:25 #13628 [Verbose] > │ let v14 : bool = │
00:05:25 #13629 [Verbose] > │ if v12 then │
00:05:25 #13630 [Verbose] > │ true │
00:05:25 #13631 [Verbose] > │ else │
00:05:25 #13632 [Verbose] > │ method4(v12) │
00:05:25 #13633 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v10} / expected: %A{3}" │
00:05:25 #13634 [Verbose] > │ let v16 : bool = v14 = false │
00:05:25 #13635 [Verbose] > │ if v16 then │
00:05:25 #13636 [Verbose] > │ failwith<unit> v15 │
00:05:25 #13637 [Verbose] > │ let v17 : UH0 = v3 () │
00:05:25 #13638 [Verbose] > │ let v18 : int32 = 5 │
00:05:25 #13639 [Verbose] > │ let v19 : US1 = method3(v18, v17) │
00:05:25 #13640 [Verbose] > │ let v23 : int32 = │
00:05:25 #13641 [Verbose] > │ match v19 with │
00:05:25 #13642 [Verbose] > │ | US1_1 -> (* None *) │
00:05:25 #13643 [Verbose] > │ failwith<int32> "Option does not have a value." │
00:05:25 #13644 [Verbose] > │ | US1_0(v20) -> (* Some *) │
00:05:25 #13645 [Verbose] > │ v20 │
00:05:25 #13646 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:05:25 #13647 [Verbose] > │ System.Console.WriteLine v24 │
00:05:25 #13648 [Verbose] > │ let v25 : bool = v23 = 5 │
00:05:25 #13649 [Verbose] > │ let v27 : bool = │
00:05:25 #13650 [Verbose] > │ if v25 then │
00:05:25 #13651 [Verbose] > │ true │
00:05:25 #13652 [Verbose] > │ else │
00:05:25 #13653 [Verbose] > │ method4(v25) │
00:05:25 #13654 [Verbose] > │ let v28 : string = $"__expect / actual: %A{v23} / expected: %A{5}" │
00:05:25 #13655 [Verbose] > │ let v29 : bool = v27 = false │
00:05:25 #13656 [Verbose] > │ if v29 then │
00:05:25 #13657 [Verbose] > │ failwith<unit> v28 │
00:05:25 #13658 [Verbose] > │ method0() │
00:05:25 #13659 [Verbose] > │ │
00:05:25 #13660 [Verbose] > │ print_and_return / x: 0 │
00:05:25 #13661 [Verbose] > │ print_and_return / x: 1 │
00:05:25 #13662 [Verbose] > │ print_and_return / x: 2 │
00:05:25 #13663 [Verbose] > │ print_and_return / x: 3 │
00:05:25 #13664 [Verbose] > │ 3 │
00:05:25 #13665 [Verbose] > │ print_and_return / x: 4 │
00:05:25 #13666 [Verbose] > │ print_and_return / x: 5 │
00:05:25 #13667 [Verbose] > │ 5 │
00:05:25 #13668 [Verbose] > │ │
00:05:25 #13669 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #13670 [Verbose] >
00:05:25 #13671 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:25 #13672 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:25 #13673 [Verbose] > │ ## unfold │
00:05:25 #13674 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #13675 [Verbose] >
00:05:25 #13676 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:25 #13677 [Verbose] > inl unfold f x0 =
00:05:25 #13678 [Verbose] > inl rec body x =
00:05:25 #13679 [Verbose] > match f x with
00:05:25 #13680 [Verbose] > | Some (x', y) => StreamCons (x', fun () => loop y)
00:05:25 #13681 [Verbose] > | None => StreamNil
00:05:25 #13682 [Verbose] > and inl loop x = join_body_unit body x0 x
00:05:25 #13683 [Verbose] > loop x0
00:05:25 #13684 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5792-9250-996b16c73d50\main.spi
00:05:25 #13685 [Verbose] >
00:05:25 #13686 [Verbose] > ╭─[ 234.72ms - stdout ]────────────────────────────────────────────────────────╮
00:05:25 #13687 [Verbose] > │ () │
00:05:25 #13688 [Verbose] > │ │
00:05:25 #13689 [Verbose] > │ │
00:05:25 #13690 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #13691 [Verbose] >
00:05:25 #13692 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:25 #13693 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:25 #13694 [Verbose] > │ ## iterate │
00:05:25 #13695 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:25 #13696 [Verbose] >
00:05:25 #13697 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:25 #13698 [Verbose] > inl iterate f =
00:05:25 #13699 [Verbose] > unfold (fun x => Some (x, f x))
00:05:26 #13700 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5816-1637-1f9b96c89f37\main.spi
00:05:26 #13701 [Verbose] >
00:05:26 #13702 [Verbose] > ╭─[ 245.64ms - stdout ]────────────────────────────────────────────────────────╮
00:05:26 #13703 [Verbose] > │ () │
00:05:26 #13704 [Verbose] > │ │
00:05:26 #13705 [Verbose] > │ │
00:05:26 #13706 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #13707 [Verbose] >
00:05:26 #13708 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:26 #13709 [Verbose] > // // test
00:05:26 #13710 [Verbose] >
00:05:26 #13711 [Verbose] > iterate ((*) 2) 1i32
00:05:26 #13712 [Verbose] > |> item 10i32
00:05:26 #13713 [Verbose] > |> _assert_eq 1024
00:05:26 #13714 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5841-4127-4898b71c7cdf\main.spi
00:05:26 #13715 [Verbose] >
00:05:26 #13716 [Verbose] > ╭─[ 279.71ms - stdout ]────────────────────────────────────────────────────────╮
00:05:26 #13717 [Verbose] > │ let rec method0 () : unit = │
00:05:26 #13718 [Verbose] > │ let v0 : string = $"%A{1024}" │
00:05:26 #13719 [Verbose] > │ System.Console.WriteLine v0 │
00:05:26 #13720 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}" │
00:05:26 #13721 [Verbose] > │ () │
00:05:26 #13722 [Verbose] > │ method0() │
00:05:26 #13723 [Verbose] > │ │
00:05:26 #13724 [Verbose] > │ 1024 │
00:05:26 #13725 [Verbose] > │ │
00:05:26 #13726 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #13727 [Verbose] >
00:05:26 #13728 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:26 #13729 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:26 #13730 [Verbose] > │ ## take_while │
00:05:26 #13731 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #13732 [Verbose] >
00:05:26 #13733 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:26 #13734 [Verbose] > inl take_while cond s =
00:05:26 #13735 [Verbose] > inl rec body i = function
00:05:26 #13736 [Verbose] > | StreamCons (st, fn) when cond st i => StreamCons (st, fun () => loop
00:05:26 #13737 [Verbose] > (i + 1) (fn ()))
00:05:26 #13738 [Verbose] > | _ => StreamNil
00:05:26 #13739 [Verbose] > and inl loop i = join_body body i
00:05:26 #13740 [Verbose] > loop 0 s
00:05:26 #13741 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5870-7016-7c2db6266ed2\main.spi
00:05:26 #13742 [Verbose] >
00:05:26 #13743 [Verbose] > ╭─[ 238.44ms - stdout ]────────────────────────────────────────────────────────╮
00:05:26 #13744 [Verbose] > │ () │
00:05:26 #13745 [Verbose] > │ │
00:05:26 #13746 [Verbose] > │ │
00:05:26 #13747 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #13748 [Verbose] >
00:05:26 #13749 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:26 #13750 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:26 #13751 [Verbose] > │ ## sum │
00:05:26 #13752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #13753 [Verbose] >
00:05:26 #13754 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:26 #13755 [Verbose] > inl sum seq =
00:05:26 #13756 [Verbose] > seq |> fold (+) 0
00:05:26 #13757 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5894-9480-948cd82549d8\main.spi
00:05:26 #13758 [Verbose] >
00:05:26 #13759 [Verbose] > ╭─[ 228.14ms - stdout ]────────────────────────────────────────────────────────╮
00:05:26 #13760 [Verbose] > │ () │
00:05:26 #13761 [Verbose] > │ │
00:05:26 #13762 [Verbose] > │ │
00:05:26 #13763 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:26 #13764 [Verbose] >
00:05:26 #13765 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:26 #13766 [Verbose] > // // test
00:05:26 #13767 [Verbose] >
00:05:26 #13768 [Verbose] > listm.init 10i32 id
00:05:26 #13769 [Verbose] > |> from_list
00:05:26 #13770 [Verbose] > |> sum
00:05:26 #13771 [Verbose] > |> _assert_eq 45
00:05:27 #13772 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5917-1795-1ef411a7d7bc\main.spi
00:05:27 #13773 [Verbose] >
00:05:27 #13774 [Verbose] > ╭─[ 239.51ms - stdout ]────────────────────────────────────────────────────────╮
00:05:27 #13775 [Verbose] > │ let rec method0 () : unit = │
00:05:27 #13776 [Verbose] > │ let v0 : string = $"%A{45}" │
00:05:27 #13777 [Verbose] > │ System.Console.WriteLine v0 │
00:05:27 #13778 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:05:27 #13779 [Verbose] > │ () │
00:05:27 #13780 [Verbose] > │ method0() │
00:05:27 #13781 [Verbose] > │ │
00:05:27 #13782 [Verbose] > │ 45 │
00:05:27 #13783 [Verbose] > │ │
00:05:27 #13784 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #13785 [Verbose] >
00:05:27 #13786 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:27 #13787 [Verbose] > // // test
00:05:27 #13788 [Verbose] >
00:05:27 #13789 [Verbose] > new_finite_stream print_and_return 10i32
00:05:27 #13790 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:05:27 #13791 [Verbose] > |> sum
00:05:27 #13792 [Verbose] > |> _assert_eq 10
00:05:27 #13793 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5942-4234-497027959f04\main.spi
00:05:27 #13794 [Verbose] >
00:05:27 #13795 [Verbose] > ╭─[ 241.82ms - stdout ]────────────────────────────────────────────────────────╮
00:05:27 #13796 [Verbose] > │ let rec method0 () : unit = │
00:05:27 #13797 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:27 #13798 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:27 #13799 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:27 #13800 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:27 #13801 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:27 #13802 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:27 #13803 [Verbose] > │ let v0 : string = $"%A{10}" │
00:05:27 #13804 [Verbose] > │ System.Console.WriteLine v0 │
00:05:27 #13805 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:05:27 #13806 [Verbose] > │ () │
00:05:27 #13807 [Verbose] > │ method0() │
00:05:27 #13808 [Verbose] > │ │
00:05:27 #13809 [Verbose] > │ print_and_return / x: 0 │
00:05:27 #13810 [Verbose] > │ print_and_return / x: 1 │
00:05:27 #13811 [Verbose] > │ print_and_return / x: 2 │
00:05:27 #13812 [Verbose] > │ print_and_return / x: 3 │
00:05:27 #13813 [Verbose] > │ print_and_return / x: 4 │
00:05:27 #13814 [Verbose] > │ print_and_return / x: 5 │
00:05:27 #13815 [Verbose] > │ 10 │
00:05:27 #13816 [Verbose] > │ │
00:05:27 #13817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #13818 [Verbose] >
00:05:27 #13819 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:27 #13820 [Verbose] > // // test
00:05:27 #13821 [Verbose] >
00:05:27 #13822 [Verbose] > new_infinite_stream print_and_return
00:05:27 #13823 [Verbose] > |> take_while (fun n (_ : i32) => n < 5i32)
00:05:27 #13824 [Verbose] > |> sum
00:05:27 #13825 [Verbose] > |> _assert_eq 10
00:05:27 #13826 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5967-6760-65161d74a181\main.spi
00:05:27 #13827 [Verbose] >
00:05:27 #13828 [Verbose] > ╭─[ 421.80ms - stdout ]────────────────────────────────────────────────────────╮
00:05:27 #13829 [Verbose] > │ let rec method0 () : unit = │
00:05:27 #13830 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:27 #13831 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:27 #13832 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:27 #13833 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:27 #13834 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:27 #13835 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:27 #13836 [Verbose] > │ let v0 : string = $"%A{10}" │
00:05:27 #13837 [Verbose] > │ System.Console.WriteLine v0 │
00:05:27 #13838 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:05:27 #13839 [Verbose] > │ () │
00:05:27 #13840 [Verbose] > │ method0() │
00:05:27 #13841 [Verbose] > │ │
00:05:27 #13842 [Verbose] > │ print_and_return / x: 0 │
00:05:27 #13843 [Verbose] > │ print_and_return / x: 1 │
00:05:27 #13844 [Verbose] > │ print_and_return / x: 2 │
00:05:27 #13845 [Verbose] > │ print_and_return / x: 3 │
00:05:27 #13846 [Verbose] > │ print_and_return / x: 4 │
00:05:27 #13847 [Verbose] > │ print_and_return / x: 5 │
00:05:27 #13848 [Verbose] > │ 10 │
00:05:27 #13849 [Verbose] > │ │
00:05:27 #13850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:27 #13851 [Verbose] >
00:05:27 #13852 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:27 #13853 [Verbose] > // // test
00:05:27 #13854 [Verbose] >
00:05:27 #13855 [Verbose] > iterate ((*) 6) 1i32
00:05:27 #13856 [Verbose] > |> take_while (fun _ i => i <= 7i32)
00:05:27 #13857 [Verbose] > |> to_list
00:05:27 #13858 [Verbose] > |> _assert_eq [[ 1i32; 6; 36; 216; 1296; 7776; 46656; 279936 ]]
00:05:27 #13859 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0011-1180-116d3569ef1b\main.spi
00:05:28 #13860 [Verbose] >
00:05:28 #13861 [Verbose] > ╭─[ 311.62ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #13862 [Verbose] > │ type UH0 = │
00:05:28 #13863 [Verbose] > │ | UH0_0 │
00:05:28 #13864 [Verbose] > │ | UH0_1 of int32 * UH0 │
00:05:28 #13865 [Verbose] > │ let rec method0 () : unit = │
00:05:28 #13866 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:05:28 #13867 [Verbose] > │ let v1 : UH0 = UH0_1(279936, v0) │
00:05:28 #13868 [Verbose] > │ let v2 : UH0 = UH0_1(46656, v1) │
00:05:28 #13869 [Verbose] > │ let v3 : UH0 = UH0_1(7776, v2) │
00:05:28 #13870 [Verbose] > │ let v4 : UH0 = UH0_1(1296, v3) │
00:05:28 #13871 [Verbose] > │ let v5 : UH0 = UH0_1(216, v4) │
00:05:28 #13872 [Verbose] > │ let v6 : UH0 = UH0_1(36, v5) │
00:05:28 #13873 [Verbose] > │ let v7 : UH0 = UH0_1(6, v6) │
00:05:28 #13874 [Verbose] > │ let v8 : UH0 = UH0_1(1, v7) │
00:05:28 #13875 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:05:28 #13876 [Verbose] > │ System.Console.WriteLine v9 │
00:05:28 #13877 [Verbose] > │ let v73 : UH0 = UH0_0 │
00:05:28 #13878 [Verbose] > │ let v74 : UH0 = UH0_1(279936, v73) │
00:05:28 #13879 [Verbose] > │ let v75 : UH0 = UH0_1(46656, v74) │
00:05:28 #13880 [Verbose] > │ let v76 : UH0 = UH0_1(7776, v75) │
00:05:28 #13881 [Verbose] > │ let v77 : UH0 = UH0_1(1296, v76) │
00:05:28 #13882 [Verbose] > │ let v78 : UH0 = UH0_1(216, v77) │
00:05:28 #13883 [Verbose] > │ let v79 : UH0 = UH0_1(36, v78) │
00:05:28 #13884 [Verbose] > │ let v80 : UH0 = UH0_1(6, v79) │
00:05:28 #13885 [Verbose] > │ let v81 : UH0 = UH0_1(1, v80) │
00:05:28 #13886 [Verbose] > │ let v82 : UH0 = UH0_0 │
00:05:28 #13887 [Verbose] > │ let v83 : UH0 = UH0_1(279936, v82) │
00:05:28 #13888 [Verbose] > │ let v84 : UH0 = UH0_1(46656, v83) │
00:05:28 #13889 [Verbose] > │ let v85 : UH0 = UH0_1(7776, v84) │
00:05:28 #13890 [Verbose] > │ let v86 : UH0 = UH0_1(1296, v85) │
00:05:28 #13891 [Verbose] > │ let v87 : UH0 = UH0_1(216, v86) │
00:05:28 #13892 [Verbose] > │ let v88 : UH0 = UH0_1(36, v87) │
00:05:28 #13893 [Verbose] > │ let v89 : UH0 = UH0_1(6, v88) │
00:05:28 #13894 [Verbose] > │ let v90 : UH0 = UH0_1(1, v89) │
00:05:28 #13895 [Verbose] > │ let v91 : string = $"__expect / actual: %A{v81} / expected: %A{v90}" │
00:05:28 #13896 [Verbose] > │ () │
00:05:28 #13897 [Verbose] > │ method0() │
00:05:28 #13898 [Verbose] > │ │
00:05:28 #13899 [Verbose] > │ UH0_1 │
00:05:28 #13900 [Verbose] > │ (1, │
00:05:28 #13901 [Verbose] > │ UH0_1 │
00:05:28 #13902 [Verbose] > │ (6, │
00:05:28 #13903 [Verbose] > │ UH0_1 │
00:05:28 #13904 [Verbose] > │ (36, │
00:05:28 #13905 [Verbose] > │ UH0_1 │
00:05:28 #13906 [Verbose] > │ (216, │
00:05:28 #13907 [Verbose] > │ UH0_1 (1296, UH0_1 (7776, UH0_1 (46656, UH0_1 (279936, │
00:05:28 #13908 [Verbose] > │ UH0_0)))))))) │
00:05:28 #13909 [Verbose] > │ │
00:05:28 #13910 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #13911 [Verbose] >
00:05:28 #13912 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:28 #13913 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:28 #13914 [Verbose] > │ ## indexed │
00:05:28 #13915 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #13916 [Verbose] >
00:05:28 #13917 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #13918 [Verbose] > inl indexed s =
00:05:28 #13919 [Verbose] > ((StreamNil, 0), s)
00:05:28 #13920 [Verbose] > ||> fold fun (acc, i) x =>
00:05:28 #13921 [Verbose] > StreamCons ((i, x), fun () => acc), i + 1
00:05:28 #13922 [Verbose] > |> fst
00:05:28 #13923 [Verbose] > |> rev
00:05:28 #13924 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0045-4533-4a13caf503e5\main.spi
00:05:28 #13925 [Verbose] >
00:05:28 #13926 [Verbose] > ╭─[ 222.47ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #13927 [Verbose] > │ () │
00:05:28 #13928 [Verbose] > │ │
00:05:28 #13929 [Verbose] > │ │
00:05:28 #13930 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #13931 [Verbose] >
00:05:28 #13932 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #13933 [Verbose] > // // test
00:05:28 #13934 [Verbose] >
00:05:28 #13935 [Verbose] > listm.init 10i32 ((*) 2)
00:05:28 #13936 [Verbose] > |> from_list
00:05:28 #13937 [Verbose] > |> indexed
00:05:28 #13938 [Verbose] > |> item 5i32
00:05:28 #13939 [Verbose] > |> _assert_eq (5i32, 10i32)
00:05:28 #13940 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0067-6786-659ceff6caad\main.spi
00:05:28 #13941 [Verbose] >
00:05:28 #13942 [Verbose] > ╭─[ 235.68ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #13943 [Verbose] > │ let rec method0 () : unit = │
00:05:28 #13944 [Verbose] > │ let v0 : string = $"%A{struct (5, 10)}" │
00:05:28 #13945 [Verbose] > │ System.Console.WriteLine v0 │
00:05:28 #13946 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected: │
00:05:28 #13947 [Verbose] > │ %A{struct (5, 10)}" │
00:05:28 #13948 [Verbose] > │ () │
00:05:28 #13949 [Verbose] > │ method0() │
00:05:28 #13950 [Verbose] > │ │
00:05:28 #13951 [Verbose] > │ struct (5, 10) │
00:05:28 #13952 [Verbose] > │ │
00:05:28 #13953 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #13954 [Verbose] >
00:05:28 #13955 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:28 #13956 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:28 #13957 [Verbose] > │ ## map │
00:05:28 #13958 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #13959 [Verbose] >
00:05:28 #13960 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #13961 [Verbose] > inl map fn s =
00:05:28 #13962 [Verbose] > (s, StreamNil)
00:05:28 #13963 [Verbose] > ||> fold_back fun x acc =>
00:05:28 #13964 [Verbose] > StreamCons (fn x, fun () => acc)
00:05:28 #13965 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0092-9225-9e1f750819e4\main.spi
00:05:28 #13966 [Verbose] >
00:05:28 #13967 [Verbose] > ╭─[ 206.27ms - stdout ]────────────────────────────────────────────────────────╮
00:05:28 #13968 [Verbose] > │ () │
00:05:28 #13969 [Verbose] > │ │
00:05:28 #13970 [Verbose] > │ │
00:05:28 #13971 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:28 #13972 [Verbose] >
00:05:28 #13973 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:28 #13974 [Verbose] > // // test
00:05:28 #13975 [Verbose] >
00:05:28 #13976 [Verbose] > listm.init 10i32 id
00:05:28 #13977 [Verbose] > |> from_list
00:05:28 #13978 [Verbose] > |> map ((*) 2)
00:05:28 #13979 [Verbose] > |> item 5i32
00:05:28 #13980 [Verbose] > |> _assert_eq 10i32
00:05:28 #13981 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0113-1316-16c9eda01838\main.spi
00:05:29 #13982 [Verbose] >
00:05:29 #13983 [Verbose] > ╭─[ 234.75ms - stdout ]────────────────────────────────────────────────────────╮
00:05:29 #13984 [Verbose] > │ let rec method0 () : unit = │
00:05:29 #13985 [Verbose] > │ let v0 : string = $"%A{10}" │
00:05:29 #13986 [Verbose] > │ System.Console.WriteLine v0 │
00:05:29 #13987 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:05:29 #13988 [Verbose] > │ () │
00:05:29 #13989 [Verbose] > │ method0() │
00:05:29 #13990 [Verbose] > │ │
00:05:29 #13991 [Verbose] > │ 10 │
00:05:29 #13992 [Verbose] > │ │
00:05:29 #13993 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #13994 [Verbose] >
00:05:29 #13995 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:29 #13996 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:29 #13997 [Verbose] > │ ## zip_with │
00:05:29 #13998 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #13999 [Verbose] >
00:05:29 #14000 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:29 #14001 [Verbose] > inl zip_with fn s1 s2 =
00:05:29 #14002 [Verbose] > inl rec loop s1 s2 =
00:05:29 #14003 [Verbose] > match s1, s2 with
00:05:29 #14004 [Verbose] > | StreamCons (st1, fn1), StreamCons (st2, fn2) =>
00:05:29 #14005 [Verbose] > StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))
00:05:29 #14006 [Verbose] > | StreamNil, _ | _, StreamNil => StreamNil
00:05:29 #14007 [Verbose] > loop s1 s2
00:05:29 #14008 [Verbose] >
00:05:29 #14009 [Verbose] > inl zip_with_ fn s1 s2 =
00:05:29 #14010 [Verbose] > let rec loop s1 s2 =
00:05:29 #14011 [Verbose] > match s1, s2 with
00:05:29 #14012 [Verbose] > | StreamCons (st1, fn1), StreamCons (st2, fn2) =>
00:05:29 #14013 [Verbose] > StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))
00:05:29 #14014 [Verbose] > | StreamNil, _ | _, StreamNil => StreamNil
00:05:29 #14015 [Verbose] > loop s1 s2
00:05:29 #14016 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0137-3762-32ef70be8211\main.spi
00:05:29 #14017 [Verbose] >
00:05:29 #14018 [Verbose] > ╭─[ 222.00ms - stdout ]────────────────────────────────────────────────────────╮
00:05:29 #14019 [Verbose] > │ () │
00:05:29 #14020 [Verbose] > │ │
00:05:29 #14021 [Verbose] > │ │
00:05:29 #14022 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #14023 [Verbose] >
00:05:29 #14024 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:29 #14025 [Verbose] > // // test
00:05:29 #14026 [Verbose] >
00:05:29 #14027 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:05:29 #14028 [Verbose] > ||> zip_with (+)
00:05:29 #14029 [Verbose] > |> item 2i32
00:05:29 #14030 [Verbose] > |> _assert_eq 6
00:05:29 #14031 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0160-6001-6a6c0d0a3bd8\main.spi
00:05:29 #14032 [Verbose] >
00:05:29 #14033 [Verbose] > ╭─[ 228.80ms - stdout ]────────────────────────────────────────────────────────╮
00:05:29 #14034 [Verbose] > │ let rec method0 () : unit = │
00:05:29 #14035 [Verbose] > │ let v0 : string = $"%A{6}" │
00:05:29 #14036 [Verbose] > │ System.Console.WriteLine v0 │
00:05:29 #14037 [Verbose] > │ let v1 : string = $"__expect / actual: %A{6} / expected: %A{6}" │
00:05:29 #14038 [Verbose] > │ () │
00:05:29 #14039 [Verbose] > │ method0() │
00:05:29 #14040 [Verbose] > │ │
00:05:29 #14041 [Verbose] > │ 6 │
00:05:29 #14042 [Verbose] > │ │
00:05:29 #14043 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #14044 [Verbose] >
00:05:29 #14045 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:29 #14046 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:29 #14047 [Verbose] > │ ## zip │
00:05:29 #14048 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #14049 [Verbose] >
00:05:29 #14050 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:29 #14051 [Verbose] > inl zip s1 s2 =
00:05:29 #14052 [Verbose] > zip_with pair s1 s2
00:05:29 #14053 [Verbose] >
00:05:29 #14054 [Verbose] > inl zip_ s1 s2 =
00:05:29 #14055 [Verbose] > zip_with_ pair s1 s2
00:05:29 #14056 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0183-8378-89a91a58d053\main.spi
00:05:29 #14057 [Verbose] >
00:05:29 #14058 [Verbose] > ╭─[ 321.95ms - stdout ]────────────────────────────────────────────────────────╮
00:05:29 #14059 [Verbose] > │ () │
00:05:29 #14060 [Verbose] > │ │
00:05:29 #14061 [Verbose] > │ │
00:05:29 #14062 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:29 #14063 [Verbose] >
00:05:29 #14064 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:29 #14065 [Verbose] > // // test
00:05:29 #14066 [Verbose] >
00:05:29 #14067 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:05:29 #14068 [Verbose] > ||> zip
00:05:29 #14069 [Verbose] > |> item 5i32
00:05:29 #14070 [Verbose] > |> _assert_eq (5, 10)
00:05:30 #14071 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0216-1615-18c6ac4932bb\main.spi
00:05:30 #14072 [Verbose] >
00:05:30 #14073 [Verbose] > ╭─[ 250.73ms - stdout ]────────────────────────────────────────────────────────╮
00:05:30 #14074 [Verbose] > │ let rec method0 () : unit = │
00:05:30 #14075 [Verbose] > │ let v0 : string = $"%A{struct (5, 10)}" │
00:05:30 #14076 [Verbose] > │ System.Console.WriteLine v0 │
00:05:30 #14077 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected: │
00:05:30 #14078 [Verbose] > │ %A{struct (5, 10)}" │
00:05:30 #14079 [Verbose] > │ () │
00:05:30 #14080 [Verbose] > │ method0() │
00:05:30 #14081 [Verbose] > │ │
00:05:30 #14082 [Verbose] > │ struct (5, 10) │
00:05:30 #14083 [Verbose] > │ │
00:05:30 #14084 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #14085 [Verbose] >
00:05:30 #14086 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:30 #14087 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:30 #14088 [Verbose] > │ ## unzip │
00:05:30 #14089 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #14090 [Verbose] >
00:05:30 #14091 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:30 #14092 [Verbose] > inl unzip s =
00:05:30 #14093 [Verbose] > inl rec body s =
00:05:30 #14094 [Verbose] > match s with
00:05:30 #14095 [Verbose] > | StreamCons ((x, y), fn) =>
00:05:30 #14096 [Verbose] > inl xs, ys = loop (fn ())
00:05:30 #14097 [Verbose] > StreamCons (x, fun () => xs), StreamCons (y, fun () => ys)
00:05:30 #14098 [Verbose] > | StreamNil => pair StreamNil StreamNil
00:05:30 #14099 [Verbose] > and inl loop x =
00:05:30 #14100 [Verbose] > if var_is x |> not
00:05:30 #14101 [Verbose] > then body x
00:05:30 #14102 [Verbose] > else
00:05:30 #14103 [Verbose] > inl x = dyn x
00:05:30 #14104 [Verbose] > join body x
00:05:30 #14105 [Verbose] > loop s
00:05:30 #14106 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0242-4239-43d4c6e58d10\main.spi
00:05:30 #14107 [Verbose] >
00:05:30 #14108 [Verbose] > ╭─[ 219.71ms - stdout ]────────────────────────────────────────────────────────╮
00:05:30 #14109 [Verbose] > │ () │
00:05:30 #14110 [Verbose] > │ │
00:05:30 #14111 [Verbose] > │ │
00:05:30 #14112 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:30 #14113 [Verbose] >
00:05:30 #14114 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:30 #14115 [Verbose] > // // test
00:05:30 #14116 [Verbose] >
00:05:30 #14117 [Verbose] > listm.init 10i32 id
00:05:30 #14118 [Verbose] > |> listm.map (fun x => x, x)
00:05:30 #14119 [Verbose] > |> from_list
00:05:30 #14120 [Verbose] > |> unzip
00:05:30 #14121 [Verbose] > |> fun x, y =>
00:05:30 #14122 [Verbose] > x |> sum
00:05:30 #14123 [Verbose] > |> _assert_eq 45
00:05:30 #14124 [Verbose] >
00:05:30 #14125 [Verbose] > y |> sum
00:05:30 #14126 [Verbose] > |> _assert_eq 45
00:05:30 #14127 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0264-6453-6421bb2f9409\main.spi
00:05:30 #14128 [Verbose] >
00:05:30 #14129 [Verbose] > ╭─[ 241.61ms - stdout ]────────────────────────────────────────────────────────╮
00:05:30 #14130 [Verbose] > │ let rec method0 () : unit = │
00:05:30 #14131 [Verbose] > │ let v0 : string = $"%A{45}" │
00:05:30 #14132 [Verbose] > │ System.Console.WriteLine v0 │
00:05:30 #14133 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:05:30 #14134 [Verbose] > │ let v2 : string = $"%A{45}" │
00:05:30 #14135 [Verbose] > │ System.Console.WriteLine v2 │
00:05:30 #14136 [Verbose] > │ let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:05:30 #14137 [Verbose] > │ () │
00:05:30 #14138 [Verbose] > │ method0() │
00:05:30 #14139 [Verbose] > │ │
00:05:30 #14140 [Verbose] > │ 45 │
00:05:30 #14141 [Verbose] > │ 45 │
00:05:30 #14142 [Verbose] > │ │
00:05:30 #14143 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:33 #14144 [Verbose] > [NbConvertApp] Converting notebook stream.dib.ipynb to html
00:05:33 #14145 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:05:33 #14146 [Verbose] > validate(nb)
00:05:33 #14147 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:05:33 #14148 [Verbose] > return _pygments_highlight(
00:05:34 #14149 [Verbose] > [NbConvertApp] Writing 360587 bytes to stream.dib.html
00:05:35 #14150 [Debug] executeAsync / exitCode: 0 / output.Length: 66677
00:05:35 #14151 [Debug] main / executeCommand / exitCode: 0
00:05:35 #14152 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 seq.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:05:39 #14153 [Verbose] >
00:05:39 #14154 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:39 #14155 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:39 #14156 [Verbose] > │ # seq │
00:05:39 #14157 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:39 #14158 [Verbose] >
00:05:39 #14159 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:39 #14160 [Verbose] > // // test
00:05:39 #14161 [Verbose] >
00:05:39 #14162 [Verbose] > open testing
00:05:42 #14163 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1435-3560-3af2aa1d374d\main.spi
00:05:43 #14164 [Verbose] >
00:05:43 #14165 [Verbose] > ╭─[ 4.75s - stdout ]───────────────────────────────────────────────────────────╮
00:05:43 #14166 [Verbose] > │ () │
00:05:43 #14167 [Verbose] > │ │
00:05:43 #14168 [Verbose] > │ │
00:05:43 #14169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:43 #14170 [Verbose] >
00:05:43 #14171 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:43 #14172 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:43 #14173 [Verbose] > │ ## seq' │
00:05:43 #14174 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:43 #14175 [Verbose] >
00:05:43 #14176 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:43 #14177 [Verbose] > type seq' t = $"`t seq"
00:05:43 #14178 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1612-1287-1a299884f210\main.spi
00:05:44 #14179 [Verbose] >
00:05:44 #14180 [Verbose] > ╭─[ 212.67ms - stdout ]────────────────────────────────────────────────────────╮
00:05:44 #14181 [Verbose] > │ () │
00:05:44 #14182 [Verbose] > │ │
00:05:44 #14183 [Verbose] > │ │
00:05:44 #14184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:44 #14185 [Verbose] >
00:05:44 #14186 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:44 #14187 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:44 #14188 [Verbose] > │ ## of_array' │
00:05:44 #14189 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:44 #14190 [Verbose] >
00:05:44 #14191 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:44 #14192 [Verbose] > inl of_array' forall dim t. (items : a dim t) : seq' t =
00:05:44 #14193 [Verbose] > $'seq { for i = 0 to !items.Length - 1 do yield !items.[[i]] }'
00:05:44 #14194 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1634-3471-350d2bcfbce9\main.spi
00:05:44 #14195 [Verbose] >
00:05:44 #14196 [Verbose] > ╭─[ 207.41ms - stdout ]────────────────────────────────────────────────────────╮
00:05:44 #14197 [Verbose] > │ () │
00:05:44 #14198 [Verbose] > │ │
00:05:44 #14199 [Verbose] > │ │
00:05:44 #14200 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:44 #14201 [Verbose] >
00:05:44 #14202 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:44 #14203 [Verbose] > // // test
00:05:44 #14204 [Verbose] >
00:05:44 #14205 [Verbose] > (a ;[[ "a"; "b" ]] : _ i32 _)
00:05:44 #14206 [Verbose] > |> of_array'
00:05:44 #14207 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1655-5552-5942d249462d\main.spi
00:05:45 #14208 [Verbose] >
00:05:45 #14209 [Verbose] > ╭─[ 1.22s - return value ]─────────────────────────────────────────────────────╮
00:05:45 #14210 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span │
00:05:45 #14211 [Verbose] > │ class="dni-code-hint"><code>[ a, b │
00:05:45 #14212 [Verbose] > │ ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> │
00:05:45 #14213 [Verbose] > │ CheckClose</td><td><div │
00:05:45 #14214 [Verbose] > │ class="dni-plaintext"><pre>False</pre></div></td></tr><tr><td>LastGenerated< │
00:05:45 #14215 [Verbose] > │ /td><td><div │
00:05:45 #14216 [Verbose] > │ class="dni-plaintext"><pre><null></pre></div></td></tr><tr><td>v2</td> │
00:05:45 #14217 [Verbose] > │ <td><div class="dni-plaintext"><pre>[ a, b │
00:05:45 #14218 [Verbose] > │ ]</pre></div></td></tr><tr><td>enum</td><td><div │
00:05:45 #14219 [Verbose] > │ class="dni-plaintext"><pre><null></pre></div></td></tr><tr><td>pc</td> │
00:05:45 #14220 [Verbose] > │ <td><div │
00:05:45 #14221 [Verbose] > │ class="dni-plaintext"><pre>0</pre></div></td></tr><tr><td>current</td><td><d │
00:05:45 #14222 [Verbose] > │ iv │
00:05:45 #14223 [Verbose] > │ class="dni-plaintext"><pre><null></pre></div></td></tr><tr><td><i>(val │
00:05:45 #14224 [Verbose] > │ ues)</i></td><td><div class="dni-plaintext"><pre>[ a, b ]</pr... │
00:05:45 #14225 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:45 #14226 [Verbose] >
00:05:45 #14227 [Verbose] > ╭─[ 1.25s - stdout ]───────────────────────────────────────────────────────────╮
00:05:45 #14228 [Verbose] > │ let rec method0 () : string seq = │
00:05:45 #14229 [Verbose] > │ let v0 : string = "a" │
00:05:45 #14230 [Verbose] > │ let v1 : string = "b" │
00:05:45 #14231 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:05:45 #14232 [Verbose] > │ let v3 : string seq = seq { for i = 0 to v2.Length - 1 do yield v2.[i] } │
00:05:45 #14233 [Verbose] > │ v3 │
00:05:45 #14234 [Verbose] > │ method0() │
00:05:45 #14235 [Verbose] > │ │
00:05:45 #14236 [Verbose] > │ │
00:05:45 #14237 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:45 #14238 [Verbose] >
00:05:45 #14239 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:45 #14240 [Verbose] > inl of_array forall dim t. (items : a dim t) : seq' t =
00:05:45 #14241 [Verbose] > items |> $'Seq.ofArray'
00:05:45 #14242 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1780-8072-83f57d7208d9\main.spi
00:05:45 #14243 [Verbose] >
00:05:45 #14244 [Verbose] > ╭─[ 231.91ms - stdout ]────────────────────────────────────────────────────────╮
00:05:45 #14245 [Verbose] > │ () │
00:05:45 #14246 [Verbose] > │ │
00:05:45 #14247 [Verbose] > │ │
00:05:45 #14248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:45 #14249 [Verbose] >
00:05:45 #14250 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:45 #14251 [Verbose] > // // test
00:05:45 #14252 [Verbose] >
00:05:45 #14253 [Verbose] > (a ;[[ "a"; "b" ]] : _ i32 _)
00:05:45 #14254 [Verbose] > |> of_array
00:05:45 #14255 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1803-0394-0a50083e8921\main.spi
00:05:46 #14256 [Verbose] >
00:05:46 #14257 [Verbose] > ╭─[ 253.46ms - return value ]──────────────────────────────────────────────────╮
00:05:46 #14258 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span │
00:05:46 #14259 [Verbose] > │ class="dni-code-hint"><code>[ a, b │
00:05:46 #14260 [Verbose] > │ ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> │
00:05:46 #14261 [Verbose] > │ f</td><td><details class="dni-treeview"><summary><span │
00:05:46 #14262 [Verbose] > │ class="dni-code-hint"><code>Microsoft.FSharp.Collections.SeqModule+OfArray@1 │
00:05:46 #14263 [Verbose] > │ 010[ │
00:05:46 #14264 [Verbose] > │ System.String]</code></span></summary><div><table><thead><tr></tr></thead><t │
00:05:46 #14265 [Verbose] > │ body><tr><td>source</td><td><div class="dni-plaintext"><pre>[ a, b │
00:05:46 #14266 [Verbose] > │ ]</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td><i> │
00:05:46 #14267 [Verbose] > │ (values)</i></td><td><div class="dni-plaintext"><pre>[ a, b │
00:05:46 #14268 [Verbose] > │ ]</pre></div></td></tr></tbody></table></div></details><style> │
00:05:46 #14269 [Verbose] > │ .dni-code-hint { │
00:05:46 #14270 [Verbose] > │ font-style: italic; │
00:05:46 #14271 [Verbose] > │ overflow: hidden; │
00:05:46 #14272 [Verbose] > │ white-space: nowrap; │
00:05:46 #14273 [Verbose] > │ } │
00:05:46 #14274 [Verbose] > │ .dni-tree... │
00:05:46 #14275 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:46 #14276 [Verbose] >
00:05:46 #14277 [Verbose] > ╭─[ 262.66ms - stdout ]────────────────────────────────────────────────────────╮
00:05:46 #14278 [Verbose] > │ let rec method0 () : string seq = │
00:05:46 #14279 [Verbose] > │ let v0 : string = "a" │
00:05:46 #14280 [Verbose] > │ let v1 : string = "b" │
00:05:46 #14281 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:05:46 #14282 [Verbose] > │ let v3 : ((string []) -> string seq) = Seq.ofArray │
00:05:46 #14283 [Verbose] > │ v3 v2 │
00:05:46 #14284 [Verbose] > │ method0() │
00:05:46 #14285 [Verbose] > │ │
00:05:46 #14286 [Verbose] > │ │
00:05:46 #14287 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:46 #14288 [Verbose] >
00:05:46 #14289 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:46 #14290 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:46 #14291 [Verbose] > │ ## to_array' │
00:05:46 #14292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:46 #14293 [Verbose] >
00:05:46 #14294 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:46 #14295 [Verbose] > inl to_array' forall dim t. (items : seq' t) : a dim t =
00:05:46 #14296 [Verbose] > $'!items |> Seq.toArray'
00:05:46 #14297 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1830-3081-3e9012a2dc3b\main.spi
00:05:46 #14298 [Verbose] >
00:05:46 #14299 [Verbose] > ╭─[ 389.05ms - stdout ]────────────────────────────────────────────────────────╮
00:05:46 #14300 [Verbose] > │ () │
00:05:46 #14301 [Verbose] > │ │
00:05:46 #14302 [Verbose] > │ │
00:05:46 #14303 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:46 #14304 [Verbose] >
00:05:46 #14305 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:46 #14306 [Verbose] > // // test
00:05:46 #14307 [Verbose] >
00:05:46 #14308 [Verbose] > (a ;[[ "a"; "b" ]] : _ i32 _)
00:05:46 #14309 [Verbose] > |> of_array'
00:05:46 #14310 [Verbose] > |> to_array'
00:05:46 #14311 [Verbose] > |> _assert_eq (a ;[[ "a"; "b" ]] : _ i32 _)
00:05:46 #14312 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1870-7015-73239d4a9458\main.spi
00:05:46 #14313 [Verbose] >
00:05:46 #14314 [Verbose] > ╭─[ 456.82ms - stdout ]────────────────────────────────────────────────────────╮
00:05:46 #14315 [Verbose] > │ let rec method1 (v0 : (string []), v1 : (string []), v2 : int32) : bool = │
00:05:46 #14316 [Verbose] > │ let v3 : int32 = v0.Length │
00:05:46 #14317 [Verbose] > │ let v4 : bool = v2 < v3 │
00:05:46 #14318 [Verbose] > │ if v4 then │
00:05:46 #14319 [Verbose] > │ let v5 : string = v0.[int v2] │
00:05:46 #14320 [Verbose] > │ let v6 : string = v1.[int v2] │
00:05:46 #14321 [Verbose] > │ let v7 : bool = v5 = v6 │
00:05:46 #14322 [Verbose] > │ if v7 then │
00:05:46 #14323 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:05:46 #14324 [Verbose] > │ method1(v0, v1, v8) │
00:05:46 #14325 [Verbose] > │ else │
00:05:46 #14326 [Verbose] > │ false │
00:05:46 #14327 [Verbose] > │ else │
00:05:46 #14328 [Verbose] > │ true │
00:05:46 #14329 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:05:46 #14330 [Verbose] > │ v0 │
00:05:46 #14331 [Verbose] > │ and method0 () : unit = │
00:05:46 #14332 [Verbose] > │ let v0 : string = "a" │
00:05:46 #14333 [Verbose] > │ let v1 : string = "b" │
00:05:46 #14334 [Verbose] > │ let v2 : (string []) = [|v0; v1|] │
00:05:46 #14335 [Verbose] > │ let v3 : string seq = seq { for i = 0 to v2.Length - 1 do yield v2.[i] } │
00:05:46 #14336 [Verbose] > │ let v4 : (string []) = v3 |> Seq.toArray │
00:05:46 #14337 [Verbose] > │ let v5 : (string []) = [|v0; v1|] │
00:05:46 #14338 [Verbose] > │ let v6 : string = $"%A{v4}" │
00:05:46 #14339 [Verbose] > │ System.Console.WriteLine v6 │
00:05:46 #14340 [Verbose] > │ let v7 : int32 = v4.Length │
00:05:46 #14341 [Verbose] > │ let v8 : int32 = v5.Length │
00:05:46 #14342 [Verbose] > │ let v9 : bool = v7 = v8 │
00:05:46 #14343 [Verbose] > │ let v10 : bool = v9 <> true │
00:05:46 #14344 [Verbose] > │ let v13 : bool = │
00:05:46 #14345 [Verbose] > │ if v10 then │
00:05:46 #14346 [Verbose] > │ false │
00:05:46 #14347 [Verbose] > │ else │
00:05:46 #14348 [Verbose] > │ let v11 : int32 = 0 │
00:05:46 #14349 [Verbose] > │ method1(v4, v5, v11) │
00:05:46 #14350 [Verbose] > │ let v15 : bool = │
00:05:46 #14351 [Verbose] > │ if v13 then │
00:05:46 #14352 [Verbose] > │ true │
00:05:46 #14353 [Verbose] > │ else │
00:05:46 #14354 [Verbose] > │ method2(v13) │
00:05:46 #14355 [Verbose] > │ let v16 : string = $"__expect / actual: %A{v4} / expected: %A{v5}" │
00:05:46 #14356 [Verbose] > │ let v17 : bool = v15 = false │
00:05:46 #14357 [Verbose] > │ if v17 then │
00:05:46 #14358 [Verbose] > │ failwith<unit> v16 │
00:05:46 #14359 [Verbose] > │ method0() │
00:05:46 #14360 [Verbose] > │ │
00:05:46 #14361 [Verbose] > │ [|"a"; "b"|] │
00:05:46 #14362 [Verbose] > │ │
00:05:46 #14363 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:46 #14364 [Verbose] >
00:05:46 #14365 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:46 #14366 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:46 #14367 [Verbose] > │ ## seq │
00:05:46 #14368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:46 #14369 [Verbose] >
00:05:46 #14370 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:46 #14371 [Verbose] > type seq dim el = dim -> option el
00:05:47 #14372 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1918-1825-163b9cd6227c\main.spi
00:05:47 #14373 [Verbose] >
00:05:47 #14374 [Verbose] > ╭─[ 196.56ms - stdout ]────────────────────────────────────────────────────────╮
00:05:47 #14375 [Verbose] > │ () │
00:05:47 #14376 [Verbose] > │ │
00:05:47 #14377 [Verbose] > │ │
00:05:47 #14378 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:47 #14379 [Verbose] >
00:05:47 #14380 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:47 #14381 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:47 #14382 [Verbose] > │ ## try_item │
00:05:47 #14383 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:47 #14384 [Verbose] >
00:05:47 #14385 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:47 #14386 [Verbose] > inl try_item n s =
00:05:47 #14387 [Verbose] > n |> s
00:05:47 #14388 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1938-3852-3c15b5c692a2\main.spi
00:05:47 #14389 [Verbose] >
00:05:47 #14390 [Verbose] > ╭─[ 211.67ms - stdout ]────────────────────────────────────────────────────────╮
00:05:47 #14391 [Verbose] > │ () │
00:05:47 #14392 [Verbose] > │ │
00:05:47 #14393 [Verbose] > │ │
00:05:47 #14394 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:47 #14395 [Verbose] >
00:05:47 #14396 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:47 #14397 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:47 #14398 [Verbose] > │ ## from_list │
00:05:47 #14399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:47 #14400 [Verbose] >
00:05:47 #14401 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:47 #14402 [Verbose] > inl from_list list =
00:05:47 #14403 [Verbose] > fun n =>
00:05:47 #14404 [Verbose] > list
00:05:47 #14405 [Verbose] > |> listm'.try_item n
00:05:47 #14406 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1960-6041-6bafbce7d6eb\main.spi
00:05:47 #14407 [Verbose] >
00:05:47 #14408 [Verbose] > ╭─[ 216.25ms - stdout ]────────────────────────────────────────────────────────╮
00:05:47 #14409 [Verbose] > │ () │
00:05:47 #14410 [Verbose] > │ │
00:05:47 #14411 [Verbose] > │ │
00:05:47 #14412 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:47 #14413 [Verbose] >
00:05:47 #14414 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:47 #14415 [Verbose] > // // test
00:05:47 #14416 [Verbose] >
00:05:47 #14417 [Verbose] > listm.init 10i32 print_and_return
00:05:47 #14418 [Verbose] > |> from_list
00:05:47 #14419 [Verbose] > |> try_item 5i32
00:05:47 #14420 [Verbose] > |> _assert_eq (Some 5i32)
00:05:47 #14421 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1982-8221-829da872c6e2\main.spi
00:05:48 #14422 [Verbose] >
00:05:48 #14423 [Verbose] > ╭─[ 701.99ms - stdout ]────────────────────────────────────────────────────────╮
00:05:48 #14424 [Verbose] > │ type [<Struct>] US0 = │
00:05:48 #14425 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:48 #14426 [Verbose] > │ | US0_1 │
00:05:48 #14427 [Verbose] > │ let rec method0 () : unit = │
00:05:48 #14428 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:48 #14429 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:48 #14430 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:48 #14431 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:48 #14432 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:48 #14433 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:48 #14434 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:05:48 #14435 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:05:48 #14436 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:05:48 #14437 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:05:48 #14438 [Verbose] > │ let v0 : US0 = US0_0(5) │
00:05:48 #14439 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:05:48 #14440 [Verbose] > │ System.Console.WriteLine v1 │
00:05:48 #14441 [Verbose] > │ let v5 : US0 = US0_0(5) │
00:05:48 #14442 [Verbose] > │ let v6 : US0 = US0_0(5) │
00:05:48 #14443 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:05:48 #14444 [Verbose] > │ () │
00:05:48 #14445 [Verbose] > │ method0() │
00:05:48 #14446 [Verbose] > │ │
00:05:48 #14447 [Verbose] > │ print_and_return / x: 0 │
00:05:48 #14448 [Verbose] > │ print_and_return / x: 1 │
00:05:48 #14449 [Verbose] > │ print_and_return / x: 2 │
00:05:48 #14450 [Verbose] > │ print_and_return / x: 3 │
00:05:48 #14451 [Verbose] > │ print_and_return / x: 4 │
00:05:48 #14452 [Verbose] > │ print_and_return / x: 5 │
00:05:48 #14453 [Verbose] > │ print_and_return / x: 6 │
00:05:48 #14454 [Verbose] > │ print_and_return / x: 7 │
00:05:48 #14455 [Verbose] > │ print_and_return / x: 8 │
00:05:48 #14456 [Verbose] > │ print_and_return / x: 9 │
00:05:48 #14457 [Verbose] > │ US0_0 5 │
00:05:48 #14458 [Verbose] > │ │
00:05:48 #14459 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:48 #14460 [Verbose] >
00:05:48 #14461 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:48 #14462 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:48 #14463 [Verbose] > │ ## map │
00:05:48 #14464 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:48 #14465 [Verbose] >
00:05:48 #14466 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:48 #14467 [Verbose] > inl map fn s =
00:05:48 #14468 [Verbose] > fun n =>
00:05:48 #14469 [Verbose] > n
00:05:48 #14470 [Verbose] > |> s
00:05:48 #14471 [Verbose] > |> optionm.map fn
00:05:48 #14472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2053-5397-5cd394d0986f\main.spi
00:05:48 #14473 [Verbose] >
00:05:48 #14474 [Verbose] > ╭─[ 217.70ms - stdout ]────────────────────────────────────────────────────────╮
00:05:48 #14475 [Verbose] > │ () │
00:05:48 #14476 [Verbose] > │ │
00:05:48 #14477 [Verbose] > │ │
00:05:48 #14478 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:48 #14479 [Verbose] >
00:05:48 #14480 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:48 #14481 [Verbose] > // // test
00:05:48 #14482 [Verbose] >
00:05:48 #14483 [Verbose] > listm.init 10i32 id
00:05:48 #14484 [Verbose] > |> from_list
00:05:48 #14485 [Verbose] > |> map ((*) 2)
00:05:48 #14486 [Verbose] > |> try_item 5i32
00:05:48 #14487 [Verbose] > |> _assert_eq (Some 10i32)
00:05:48 #14488 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2076-7605-7151b8889736\main.spi
00:05:48 #14489 [Verbose] >
00:05:48 #14490 [Verbose] > ╭─[ 249.89ms - stdout ]────────────────────────────────────────────────────────╮
00:05:48 #14491 [Verbose] > │ type [<Struct>] US0 = │
00:05:48 #14492 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:48 #14493 [Verbose] > │ | US0_1 │
00:05:48 #14494 [Verbose] > │ let rec method0 () : unit = │
00:05:48 #14495 [Verbose] > │ let v0 : US0 = US0_0(10) │
00:05:48 #14496 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:05:48 #14497 [Verbose] > │ System.Console.WriteLine v1 │
00:05:48 #14498 [Verbose] > │ let v5 : US0 = US0_0(10) │
00:05:48 #14499 [Verbose] > │ let v6 : US0 = US0_0(10) │
00:05:48 #14500 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:05:48 #14501 [Verbose] > │ () │
00:05:48 #14502 [Verbose] > │ method0() │
00:05:48 #14503 [Verbose] > │ │
00:05:48 #14504 [Verbose] > │ US0_0 10 │
00:05:48 #14505 [Verbose] > │ │
00:05:48 #14506 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:48 #14507 [Verbose] >
00:05:48 #14508 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:48 #14509 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:48 #14510 [Verbose] > │ ## mapi │
00:05:48 #14511 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:48 #14512 [Verbose] >
00:05:48 #14513 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:48 #14514 [Verbose] > inl mapi fn s =
00:05:48 #14515 [Verbose] > fun n =>
00:05:48 #14516 [Verbose] > n
00:05:48 #14517 [Verbose] > |> s
00:05:48 #14518 [Verbose] > |> optionm.map (fn n)
00:05:48 #14519 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2102-0250-0b3618d50902\main.spi
00:05:48 #14520 [Verbose] >
00:05:48 #14521 [Verbose] > ╭─[ 246.69ms - stdout ]────────────────────────────────────────────────────────╮
00:05:48 #14522 [Verbose] > │ () │
00:05:48 #14523 [Verbose] > │ │
00:05:48 #14524 [Verbose] > │ │
00:05:48 #14525 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:49 #14526 [Verbose] >
00:05:49 #14527 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:49 #14528 [Verbose] > // // test
00:05:49 #14529 [Verbose] >
00:05:49 #14530 [Verbose] > listm.init 10i32 print_and_return
00:05:49 #14531 [Verbose] > |> from_list
00:05:49 #14532 [Verbose] > |> mapi fun i x => i + x
00:05:49 #14533 [Verbose] > |> try_item 5i32
00:05:49 #14534 [Verbose] > |> _assert_eq (Some 10i32)
00:05:49 #14535 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2127-2749-25b4efe2e56d\main.spi
00:05:49 #14536 [Verbose] >
00:05:49 #14537 [Verbose] > ╭─[ 269.78ms - stdout ]────────────────────────────────────────────────────────╮
00:05:49 #14538 [Verbose] > │ type [<Struct>] US0 = │
00:05:49 #14539 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:49 #14540 [Verbose] > │ | US0_1 │
00:05:49 #14541 [Verbose] > │ let rec method0 () : unit = │
00:05:49 #14542 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:49 #14543 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:49 #14544 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:49 #14545 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:49 #14546 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:49 #14547 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:49 #14548 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:05:49 #14549 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:05:49 #14550 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:05:49 #14551 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:05:49 #14552 [Verbose] > │ let v0 : US0 = US0_0(10) │
00:05:49 #14553 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:05:49 #14554 [Verbose] > │ System.Console.WriteLine v1 │
00:05:49 #14555 [Verbose] > │ let v5 : US0 = US0_0(10) │
00:05:49 #14556 [Verbose] > │ let v6 : US0 = US0_0(10) │
00:05:49 #14557 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:05:49 #14558 [Verbose] > │ () │
00:05:49 #14559 [Verbose] > │ method0() │
00:05:49 #14560 [Verbose] > │ │
00:05:49 #14561 [Verbose] > │ print_and_return / x: 0 │
00:05:49 #14562 [Verbose] > │ print_and_return / x: 1 │
00:05:49 #14563 [Verbose] > │ print_and_return / x: 2 │
00:05:49 #14564 [Verbose] > │ print_and_return / x: 3 │
00:05:49 #14565 [Verbose] > │ print_and_return / x: 4 │
00:05:49 #14566 [Verbose] > │ print_and_return / x: 5 │
00:05:49 #14567 [Verbose] > │ print_and_return / x: 6 │
00:05:49 #14568 [Verbose] > │ print_and_return / x: 7 │
00:05:49 #14569 [Verbose] > │ print_and_return / x: 8 │
00:05:49 #14570 [Verbose] > │ print_and_return / x: 9 │
00:05:49 #14571 [Verbose] > │ US0_0 10 │
00:05:49 #14572 [Verbose] > │ │
00:05:49 #14573 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:49 #14574 [Verbose] >
00:05:49 #14575 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:49 #14576 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:49 #14577 [Verbose] > │ ## choose │
00:05:49 #14578 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:49 #14579 [Verbose] >
00:05:49 #14580 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:49 #14581 [Verbose] > inl choose forall dim {number} t u. (fn : t -> option u) (s : seq dim t) : seq
00:05:49 #14582 [Verbose] > dim u =
00:05:49 #14583 [Verbose] > fun n =>
00:05:49 #14584 [Verbose] > inl rec body fn s i i' =
00:05:49 #14585 [Verbose] > match i |> s with
00:05:49 #14586 [Verbose] > | None => None
00:05:49 #14587 [Verbose] > | Some x =>
00:05:49 #14588 [Verbose] > match x |> fn with
00:05:49 #14589 [Verbose] > | Some x when n = i' => Some x
00:05:49 #14590 [Verbose] > | Some _ => loop (i + 1) (i' + 1)
00:05:49 #14591 [Verbose] > | _ => loop (i + 1) i'
00:05:49 #14592 [Verbose] > and inl loop i i' =
00:05:49 #14593 [Verbose] > if n |> var_is |> not
00:05:49 #14594 [Verbose] > then body fn s i i'
00:05:49 #14595 [Verbose] > else
00:05:49 #14596 [Verbose] > inl fn = join fn
00:05:49 #14597 [Verbose] > inl s = join s
00:05:49 #14598 [Verbose] > join body fn s i i'
00:05:49 #14599 [Verbose] > loop 0 0
00:05:49 #14600 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2157-5748-5a5e040e271e\main.spi
00:05:49 #14601 [Verbose] >
00:05:49 #14602 [Verbose] > ╭─[ 233.14ms - stdout ]────────────────────────────────────────────────────────╮
00:05:49 #14603 [Verbose] > │ () │
00:05:49 #14604 [Verbose] > │ │
00:05:49 #14605 [Verbose] > │ │
00:05:49 #14606 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:49 #14607 [Verbose] >
00:05:49 #14608 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:49 #14609 [Verbose] > // // test
00:05:49 #14610 [Verbose] >
00:05:49 #14611 [Verbose] > listm.init 10i32 print_and_return
00:05:49 #14612 [Verbose] > |> from_list
00:05:49 #14613 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)
00:05:49 #14614 [Verbose] > |> try_item 1i32
00:05:49 #14615 [Verbose] > |> _assert_eq (Some 2i32)
00:05:49 #14616 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2180-8077-842daf13c24b\main.spi
00:05:49 #14617 [Verbose] >
00:05:49 #14618 [Verbose] > ╭─[ 336.58ms - stdout ]────────────────────────────────────────────────────────╮
00:05:49 #14619 [Verbose] > │ type [<Struct>] US0 = │
00:05:49 #14620 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:49 #14621 [Verbose] > │ | US0_1 │
00:05:49 #14622 [Verbose] > │ let rec method0 () : unit = │
00:05:49 #14623 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:49 #14624 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:49 #14625 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:49 #14626 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:49 #14627 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:49 #14628 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:49 #14629 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:05:49 #14630 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:05:49 #14631 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:05:49 #14632 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:05:49 #14633 [Verbose] > │ let v0 : US0 = US0_0(2) │
00:05:49 #14634 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:05:49 #14635 [Verbose] > │ System.Console.WriteLine v1 │
00:05:49 #14636 [Verbose] > │ let v5 : US0 = US0_0(2) │
00:05:49 #14637 [Verbose] > │ let v6 : US0 = US0_0(2) │
00:05:49 #14638 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:05:49 #14639 [Verbose] > │ () │
00:05:49 #14640 [Verbose] > │ method0() │
00:05:49 #14641 [Verbose] > │ │
00:05:49 #14642 [Verbose] > │ print_and_return / x: 0 │
00:05:49 #14643 [Verbose] > │ print_and_return / x: 1 │
00:05:49 #14644 [Verbose] > │ print_and_return / x: 2 │
00:05:49 #14645 [Verbose] > │ print_and_return / x: 3 │
00:05:49 #14646 [Verbose] > │ print_and_return / x: 4 │
00:05:49 #14647 [Verbose] > │ print_and_return / x: 5 │
00:05:49 #14648 [Verbose] > │ print_and_return / x: 6 │
00:05:49 #14649 [Verbose] > │ print_and_return / x: 7 │
00:05:49 #14650 [Verbose] > │ print_and_return / x: 8 │
00:05:49 #14651 [Verbose] > │ print_and_return / x: 9 │
00:05:49 #14652 [Verbose] > │ US0_0 2 │
00:05:49 #14653 [Verbose] > │ │
00:05:49 #14654 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:49 #14655 [Verbose] >
00:05:49 #14656 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:49 #14657 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:49 #14658 [Verbose] > │ ## indexed │
00:05:49 #14659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:49 #14660 [Verbose] >
00:05:49 #14661 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:49 #14662 [Verbose] > inl indexed s =
00:05:49 #14663 [Verbose] > s
00:05:49 #14664 [Verbose] > |> mapi fun i x =>
00:05:49 #14665 [Verbose] > i, x
00:05:50 #14666 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2216-1664-1dc86fe3e4ea\main.spi
00:05:50 #14667 [Verbose] >
00:05:50 #14668 [Verbose] > ╭─[ 263.72ms - stdout ]────────────────────────────────────────────────────────╮
00:05:50 #14669 [Verbose] > │ () │
00:05:50 #14670 [Verbose] > │ │
00:05:50 #14671 [Verbose] > │ │
00:05:50 #14672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:50 #14673 [Verbose] >
00:05:50 #14674 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:50 #14675 [Verbose] > // // test
00:05:50 #14676 [Verbose] >
00:05:50 #14677 [Verbose] > listm.init 10i32 ((*) 2)
00:05:50 #14678 [Verbose] > |> from_list
00:05:50 #14679 [Verbose] > |> indexed
00:05:50 #14680 [Verbose] > |> try_item 5i32
00:05:50 #14681 [Verbose] > |> _assert_eq (Some (5i32, 10i32))
00:05:50 #14682 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2243-4305-479d5b8fac1d\main.spi
00:05:50 #14683 [Verbose] >
00:05:50 #14684 [Verbose] > ╭─[ 354.31ms - stdout ]────────────────────────────────────────────────────────╮
00:05:50 #14685 [Verbose] > │ type [<Struct>] US0 = │
00:05:50 #14686 [Verbose] > │ | US0_0 of f0_0 : int32 * f0_1 : int32 │
00:05:50 #14687 [Verbose] > │ | US0_1 │
00:05:50 #14688 [Verbose] > │ let rec method0 () : unit = │
00:05:50 #14689 [Verbose] > │ let v0 : US0 = US0_0(5, 10) │
00:05:50 #14690 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:05:50 #14691 [Verbose] > │ System.Console.WriteLine v1 │
00:05:50 #14692 [Verbose] > │ let v5 : US0 = US0_0(5, 10) │
00:05:50 #14693 [Verbose] > │ let v6 : US0 = US0_0(5, 10) │
00:05:50 #14694 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:05:50 #14695 [Verbose] > │ () │
00:05:50 #14696 [Verbose] > │ method0() │
00:05:50 #14697 [Verbose] > │ │
00:05:50 #14698 [Verbose] > │ US0_0 (5, 10) │
00:05:50 #14699 [Verbose] > │ │
00:05:50 #14700 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:50 #14701 [Verbose] >
00:05:50 #14702 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:50 #14703 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:50 #14704 [Verbose] > │ ## zip │
00:05:50 #14705 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:50 #14706 [Verbose] >
00:05:50 #14707 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:50 #14708 [Verbose] > inl zip n seq1 seq2 =
00:05:50 #14709 [Verbose] > seq1 n, seq2 n
00:05:50 #14710 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2280-8010-8ffc3d3dbb49\main.spi
00:05:50 #14711 [Verbose] >
00:05:50 #14712 [Verbose] > ╭─[ 406.91ms - stdout ]────────────────────────────────────────────────────────╮
00:05:50 #14713 [Verbose] > │ () │
00:05:50 #14714 [Verbose] > │ │
00:05:50 #14715 [Verbose] > │ │
00:05:50 #14716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:50 #14717 [Verbose] >
00:05:50 #14718 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:50 #14719 [Verbose] > // // test
00:05:50 #14720 [Verbose] >
00:05:50 #14721 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:05:50 #14722 [Verbose] > ||> zip 5i32
00:05:50 #14723 [Verbose] > |> _assert_eq (Some 5, Some 10)
00:05:51 #14724 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2320-2085-267d04a8ef3a\main.spi
00:05:51 #14725 [Verbose] >
00:05:51 #14726 [Verbose] > ╭─[ 438.33ms - stdout ]────────────────────────────────────────────────────────╮
00:05:51 #14727 [Verbose] > │ type [<Struct>] US0 = │
00:05:51 #14728 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:51 #14729 [Verbose] > │ | US0_1 │
00:05:51 #14730 [Verbose] > │ let rec method0 () : unit = │
00:05:51 #14731 [Verbose] > │ let v0 : US0 = US0_0(5) │
00:05:51 #14732 [Verbose] > │ let v1 : US0 = US0_0(10) │
00:05:51 #14733 [Verbose] > │ let v2 : string = $"%A{struct (v0, v1)}" │
00:05:51 #14734 [Verbose] > │ System.Console.WriteLine v2 │
00:05:51 #14735 [Verbose] > │ let v9 : US0 = US0_0(5) │
00:05:51 #14736 [Verbose] > │ let v10 : US0 = US0_0(10) │
00:05:51 #14737 [Verbose] > │ let v11 : US0 = US0_0(5) │
00:05:51 #14738 [Verbose] > │ let v12 : US0 = US0_0(10) │
00:05:51 #14739 [Verbose] > │ let v13 : string = $"__expect / actual: %A{struct (v9, v10)} / expected: │
00:05:51 #14740 [Verbose] > │ %A{struct (v11, v12)}" │
00:05:51 #14741 [Verbose] > │ () │
00:05:51 #14742 [Verbose] > │ method0() │
00:05:51 #14743 [Verbose] > │ │
00:05:51 #14744 [Verbose] > │ struct (US0_0 5, US0_0 10) │
00:05:51 #14745 [Verbose] > │ │
00:05:51 #14746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:51 #14747 [Verbose] >
00:05:51 #14748 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:51 #14749 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:51 #14750 [Verbose] > │ ## zip_with │
00:05:51 #14751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:51 #14752 [Verbose] >
00:05:51 #14753 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:51 #14754 [Verbose] > inl zip_with fn seq1 seq2 =
00:05:51 #14755 [Verbose] > fun n =>
00:05:51 #14756 [Verbose] > fn (seq1 n) (seq2 n)
00:05:51 #14757 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2366-6649-6eee6d346ab4\main.spi
00:05:51 #14758 [Verbose] >
00:05:51 #14759 [Verbose] > ╭─[ 238.95ms - stdout ]────────────────────────────────────────────────────────╮
00:05:51 #14760 [Verbose] > │ () │
00:05:51 #14761 [Verbose] > │ │
00:05:51 #14762 [Verbose] > │ │
00:05:51 #14763 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:51 #14764 [Verbose] >
00:05:51 #14765 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:51 #14766 [Verbose] > // // test
00:05:51 #14767 [Verbose] >
00:05:51 #14768 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))
00:05:51 #14769 [Verbose] > ||> zip_with (optionm'.choose (+))
00:05:51 #14770 [Verbose] > |> try_item 2i32
00:05:51 #14771 [Verbose] > |> _assert_eq (Some 6)
00:05:51 #14772 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2390-9065-9671f4178a12\main.spi
00:05:51 #14773 [Verbose] >
00:05:51 #14774 [Verbose] > ╭─[ 246.80ms - stdout ]────────────────────────────────────────────────────────╮
00:05:51 #14775 [Verbose] > │ type [<Struct>] US0 = │
00:05:51 #14776 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:51 #14777 [Verbose] > │ | US0_1 │
00:05:51 #14778 [Verbose] > │ let rec method0 () : unit = │
00:05:51 #14779 [Verbose] > │ let v0 : US0 = US0_0(6) │
00:05:51 #14780 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:05:51 #14781 [Verbose] > │ System.Console.WriteLine v1 │
00:05:51 #14782 [Verbose] > │ let v5 : US0 = US0_0(6) │
00:05:51 #14783 [Verbose] > │ let v6 : US0 = US0_0(6) │
00:05:51 #14784 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:05:51 #14785 [Verbose] > │ () │
00:05:51 #14786 [Verbose] > │ method0() │
00:05:51 #14787 [Verbose] > │ │
00:05:51 #14788 [Verbose] > │ US0_0 6 │
00:05:51 #14789 [Verbose] > │ │
00:05:51 #14790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:51 #14791 [Verbose] >
00:05:51 #14792 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:51 #14793 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:51 #14794 [Verbose] > │ ## fold │
00:05:51 #14795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:51 #14796 [Verbose] >
00:05:51 #14797 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:51 #14798 [Verbose] > inl fold fn init seq =
00:05:51 #14799 [Verbose] > inl rec loop acc n =
00:05:51 #14800 [Verbose] > match seq n with
00:05:51 #14801 [Verbose] > | Some x => loop (fn acc x) (n + 1)
00:05:51 #14802 [Verbose] > | None => acc
00:05:51 #14803 [Verbose] > loop init 0
00:05:51 #14804 [Verbose] >
00:05:51 #14805 [Verbose] > inl fold_ fn init seq =
00:05:51 #14806 [Verbose] > let rec loop acc n =
00:05:51 #14807 [Verbose] > match seq n with
00:05:51 #14808 [Verbose] > | Some x => loop (fn acc x) (n + 1)
00:05:51 #14809 [Verbose] > | None => acc
00:05:51 #14810 [Verbose] > loop init 0
00:05:52 #14811 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2416-1659-12e648732a3d\main.spi
00:05:52 #14812 [Verbose] >
00:05:52 #14813 [Verbose] > ╭─[ 270.49ms - stdout ]────────────────────────────────────────────────────────╮
00:05:52 #14814 [Verbose] > │ () │
00:05:52 #14815 [Verbose] > │ │
00:05:52 #14816 [Verbose] > │ │
00:05:52 #14817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:52 #14818 [Verbose] >
00:05:52 #14819 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:52 #14820 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:52 #14821 [Verbose] > │ ## sum │
00:05:52 #14822 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:52 #14823 [Verbose] >
00:05:52 #14824 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:52 #14825 [Verbose] > inl sum seq =
00:05:52 #14826 [Verbose] > seq |> fold (+) 0
00:05:52 #14827 [Verbose] >
00:05:52 #14828 [Verbose] > inl sum_ seq =
00:05:52 #14829 [Verbose] > seq |> fold_ (+) 0
00:05:52 #14830 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2444-4437-4dfce5632a4f\main.spi
00:05:52 #14831 [Verbose] >
00:05:52 #14832 [Verbose] > ╭─[ 284.57ms - stdout ]────────────────────────────────────────────────────────╮
00:05:52 #14833 [Verbose] > │ () │
00:05:52 #14834 [Verbose] > │ │
00:05:52 #14835 [Verbose] > │ │
00:05:52 #14836 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:52 #14837 [Verbose] >
00:05:52 #14838 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:52 #14839 [Verbose] > // // test
00:05:52 #14840 [Verbose] >
00:05:52 #14841 [Verbose] > listm.init 10i32 id
00:05:52 #14842 [Verbose] > |> from_list
00:05:52 #14843 [Verbose] > |> fun f (n : i32) => f n
00:05:52 #14844 [Verbose] > |> sum
00:05:52 #14845 [Verbose] > |> _assert_eq 45
00:05:52 #14846 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2473-7306-78d37367669f\main.spi
00:05:52 #14847 [Verbose] >
00:05:52 #14848 [Verbose] > ╭─[ 371.06ms - stdout ]────────────────────────────────────────────────────────╮
00:05:52 #14849 [Verbose] > │ let rec method0 () : unit = │
00:05:52 #14850 [Verbose] > │ let v0 : string = $"%A{45}" │
00:05:52 #14851 [Verbose] > │ System.Console.WriteLine v0 │
00:05:52 #14852 [Verbose] > │ let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}" │
00:05:52 #14853 [Verbose] > │ () │
00:05:52 #14854 [Verbose] > │ method0() │
00:05:52 #14855 [Verbose] > │ │
00:05:52 #14856 [Verbose] > │ 45 │
00:05:52 #14857 [Verbose] > │ │
00:05:52 #14858 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:52 #14859 [Verbose] >
00:05:52 #14860 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:52 #14861 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:52 #14862 [Verbose] > │ ## to_list │
00:05:52 #14863 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:52 #14864 [Verbose] >
00:05:52 #14865 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:52 #14866 [Verbose] > inl to_list seq =
00:05:52 #14867 [Verbose] > seq
00:05:52 #14868 [Verbose] > |> fold (fun acc x => x :: acc) [[]]
00:05:52 #14869 [Verbose] > |> listm.rev
00:05:52 #14870 [Verbose] >
00:05:52 #14871 [Verbose] > inl to_list_ seq =
00:05:52 #14872 [Verbose] > seq
00:05:52 #14873 [Verbose] > |> fold_ (fun acc x => x :: acc) [[]]
00:05:52 #14874 [Verbose] > |> listm.rev
00:05:52 #14875 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2511-1104-1fa0fa34c8db\main.spi
00:05:53 #14876 [Verbose] >
00:05:53 #14877 [Verbose] > ╭─[ 342.52ms - stdout ]────────────────────────────────────────────────────────╮
00:05:53 #14878 [Verbose] > │ () │
00:05:53 #14879 [Verbose] > │ │
00:05:53 #14880 [Verbose] > │ │
00:05:53 #14881 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:53 #14882 [Verbose] >
00:05:53 #14883 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:53 #14884 [Verbose] > // // test
00:05:53 #14885 [Verbose] >
00:05:53 #14886 [Verbose] > listm.init 10i32 id
00:05:53 #14887 [Verbose] > |> from_list
00:05:53 #14888 [Verbose] > |> fun f (n : i32) => f n
00:05:53 #14889 [Verbose] > |> to_list
00:05:53 #14890 [Verbose] > |> _assert_eq (listm.init 10i32 id)
00:05:53 #14891 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2546-4601-4b2f7091cb37\main.spi
00:05:53 #14892 [Verbose] >
00:05:53 #14893 [Verbose] > ╭─[ 363.20ms - stdout ]────────────────────────────────────────────────────────╮
00:05:53 #14894 [Verbose] > │ type UH0 = │
00:05:53 #14895 [Verbose] > │ | UH0_0 │
00:05:53 #14896 [Verbose] > │ | UH0_1 of int32 * UH0 │
00:05:53 #14897 [Verbose] > │ let rec method0 () : unit = │
00:05:53 #14898 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:05:53 #14899 [Verbose] > │ let v1 : UH0 = UH0_1(9, v0) │
00:05:53 #14900 [Verbose] > │ let v2 : UH0 = UH0_1(8, v1) │
00:05:53 #14901 [Verbose] > │ let v3 : UH0 = UH0_1(7, v2) │
00:05:53 #14902 [Verbose] > │ let v4 : UH0 = UH0_1(6, v3) │
00:05:53 #14903 [Verbose] > │ let v5 : UH0 = UH0_1(5, v4) │
00:05:53 #14904 [Verbose] > │ let v6 : UH0 = UH0_1(4, v5) │
00:05:53 #14905 [Verbose] > │ let v7 : UH0 = UH0_1(3, v6) │
00:05:53 #14906 [Verbose] > │ let v8 : UH0 = UH0_1(2, v7) │
00:05:53 #14907 [Verbose] > │ let v9 : UH0 = UH0_1(1, v8) │
00:05:53 #14908 [Verbose] > │ let v10 : UH0 = UH0_1(0, v9) │
00:05:53 #14909 [Verbose] > │ let v11 : string = $"%A{v10}" │
00:05:53 #14910 [Verbose] > │ System.Console.WriteLine v11 │
00:05:53 #14911 [Verbose] > │ let v100 : UH0 = UH0_0 │
00:05:53 #14912 [Verbose] > │ let v101 : UH0 = UH0_1(9, v100) │
00:05:53 #14913 [Verbose] > │ let v102 : UH0 = UH0_1(8, v101) │
00:05:53 #14914 [Verbose] > │ let v103 : UH0 = UH0_1(7, v102) │
00:05:53 #14915 [Verbose] > │ let v104 : UH0 = UH0_1(6, v103) │
00:05:53 #14916 [Verbose] > │ let v105 : UH0 = UH0_1(5, v104) │
00:05:53 #14917 [Verbose] > │ let v106 : UH0 = UH0_1(4, v105) │
00:05:53 #14918 [Verbose] > │ let v107 : UH0 = UH0_1(3, v106) │
00:05:53 #14919 [Verbose] > │ let v108 : UH0 = UH0_1(2, v107) │
00:05:53 #14920 [Verbose] > │ let v109 : UH0 = UH0_1(1, v108) │
00:05:53 #14921 [Verbose] > │ let v110 : UH0 = UH0_1(0, v109) │
00:05:53 #14922 [Verbose] > │ let v111 : UH0 = UH0_0 │
00:05:53 #14923 [Verbose] > │ let v112 : UH0 = UH0_1(9, v111) │
00:05:53 #14924 [Verbose] > │ let v113 : UH0 = UH0_1(8, v112) │
00:05:53 #14925 [Verbose] > │ let v114 : UH0 = UH0_1(7, v113) │
00:05:53 #14926 [Verbose] > │ let v115 : UH0 = UH0_1(6, v114) │
00:05:53 #14927 [Verbose] > │ let v116 : UH0 = UH0_1(5, v115) │
00:05:53 #14928 [Verbose] > │ let v117 : UH0 = UH0_1(4, v116) │
00:05:53 #14929 [Verbose] > │ let v118 : UH0 = UH0_1(3, v117) │
00:05:53 #14930 [Verbose] > │ let v119 : UH0 = UH0_1(2, v118) │
00:05:53 #14931 [Verbose] > │ let v120 : UH0 = UH0_1(1, v119) │
00:05:53 #14932 [Verbose] > │ let v121 : UH0 = UH0_1(0, v120) │
00:05:53 #14933 [Verbose] > │ let v122 : string = $"__expect / actual: %A{v110} / expected: %A{v121}" │
00:05:53 #14934 [Verbose] > │ () │
00:05:53 #14935 [Verbose] > │ method0() │
00:05:53 #14936 [Verbose] > │ │
00:05:53 #14937 [Verbose] > │ UH0_1 │
00:05:53 #14938 [Verbose] > │ (0, │
00:05:53 #14939 [Verbose] > │ UH0_1 │
00:05:53 #14940 [Verbose] > │ (1, │
00:05:53 #14941 [Verbose] > │ UH0_1 │
00:05:53 #14942 [Verbose] > │ (2, │
00:05:53 #14943 [Verbose] > │ UH0_1 │
00:05:53 #14944 [Verbose] > │ (3, │
00:05:53 #14945 [Verbose] > │ UH0_1 │
00:05:53 #14946 [Verbose] > │ (4, UH0_1 (5, UH0_1 (6, UH0_1 (7, UH0_1 (8, UH0_1 (9, │
00:05:53 #14947 [Verbose] > │ UH0_0)))))))))) │
00:05:53 #14948 [Verbose] > │ │
00:05:53 #14949 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:53 #14950 [Verbose] >
00:05:53 #14951 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:53 #14952 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:53 #14953 [Verbose] > │ ## from_array │
00:05:53 #14954 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:53 #14955 [Verbose] >
00:05:53 #14956 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:53 #14957 [Verbose] > inl from_array forall dim {number; int} el. (array : a dim el) : seq dim el =
00:05:53 #14958 [Verbose] > fun n =>
00:05:53 #14959 [Verbose] > if n >= length array
00:05:53 #14960 [Verbose] > then None
00:05:53 #14961 [Verbose] > else index array n |> Some
00:05:53 #14962 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2586-8620-8840826350c8\main.spi
00:05:53 #14963 [Verbose] >
00:05:53 #14964 [Verbose] > ╭─[ 238.12ms - stdout ]────────────────────────────────────────────────────────╮
00:05:53 #14965 [Verbose] > │ () │
00:05:53 #14966 [Verbose] > │ │
00:05:53 #14967 [Verbose] > │ │
00:05:53 #14968 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:53 #14969 [Verbose] >
00:05:53 #14970 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:53 #14971 [Verbose] > // // test
00:05:53 #14972 [Verbose] >
00:05:53 #14973 [Verbose] > a ;[[ 1; 2; 3 ]]
00:05:53 #14974 [Verbose] > |> from_array
00:05:53 #14975 [Verbose] > |> try_item 1i32
00:05:53 #14976 [Verbose] > |> _assert_eq (Some 2i32)
00:05:53 #14977 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2610-1008-1acb601ec604\main.spi
00:05:54 #14978 [Verbose] >
00:05:54 #14979 [Verbose] > ╭─[ 375.36ms - stdout ]────────────────────────────────────────────────────────╮
00:05:54 #14980 [Verbose] > │ type [<Struct>] US0 = │
00:05:54 #14981 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:54 #14982 [Verbose] > │ | US0_1 │
00:05:54 #14983 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:05:54 #14984 [Verbose] > │ v0 │
00:05:54 #14985 [Verbose] > │ and method0 () : unit = │
00:05:54 #14986 [Verbose] > │ let v0 : (int32 []) = [|1; 2; 3|] │
00:05:54 #14987 [Verbose] > │ let v1 : int32 = v0.Length │
00:05:54 #14988 [Verbose] > │ let v2 : bool = 1 >= v1 │
00:05:54 #14989 [Verbose] > │ let v6 : US0 = │
00:05:54 #14990 [Verbose] > │ if v2 then │
00:05:54 #14991 [Verbose] > │ US0_1 │
00:05:54 #14992 [Verbose] > │ else │
00:05:54 #14993 [Verbose] > │ let v4 : int32 = v0.[int 1] │
00:05:54 #14994 [Verbose] > │ US0_0(v4) │
00:05:54 #14995 [Verbose] > │ let v7 : string = $"%A{v6}" │
00:05:54 #14996 [Verbose] > │ System.Console.WriteLine v7 │
00:05:54 #14997 [Verbose] > │ let v11 : bool = │
00:05:54 #14998 [Verbose] > │ match v6 with │
00:05:54 #14999 [Verbose] > │ | US0_0(v9) -> (* Some *) │
00:05:54 #15000 [Verbose] > │ let v10 : bool = v9 = 2 │
00:05:54 #15001 [Verbose] > │ v10 │
00:05:54 #15002 [Verbose] > │ | _ -> │
00:05:54 #15003 [Verbose] > │ false │
00:05:54 #15004 [Verbose] > │ let v13 : bool = │
00:05:54 #15005 [Verbose] > │ if v11 then │
00:05:54 #15006 [Verbose] > │ true │
00:05:54 #15007 [Verbose] > │ else │
00:05:54 #15008 [Verbose] > │ method1(v11) │
00:05:54 #15009 [Verbose] > │ let v14 : US0 = US0_0(2) │
00:05:54 #15010 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v6} / expected: %A{v14}" │
00:05:54 #15011 [Verbose] > │ let v16 : bool = v13 = false │
00:05:54 #15012 [Verbose] > │ if v16 then │
00:05:54 #15013 [Verbose] > │ failwith<unit> v15 │
00:05:54 #15014 [Verbose] > │ method0() │
00:05:54 #15015 [Verbose] > │ │
00:05:54 #15016 [Verbose] > │ US0_0 2 │
00:05:54 #15017 [Verbose] > │ │
00:05:54 #15018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:54 #15019 [Verbose] >
00:05:54 #15020 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:54 #15021 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:54 #15022 [Verbose] > │ ## to_array │
00:05:54 #15023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:54 #15024 [Verbose] >
00:05:54 #15025 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:54 #15026 [Verbose] > inl to_array seq =
00:05:54 #15027 [Verbose] > inl ar = a ;[[]] |> mut
00:05:54 #15028 [Verbose] > ((), seq)
00:05:54 #15029 [Verbose] > ||> fold fun _ x =>
00:05:54 #15030 [Verbose] > ar <- *ar /@ a ;[[x]]
00:05:54 #15031 [Verbose] > *ar
00:05:54 #15032 [Verbose] >
00:05:54 #15033 [Verbose] > inl to_array_ seq =
00:05:54 #15034 [Verbose] > inl ar = a ;[[]] |> mut
00:05:54 #15035 [Verbose] > ((), seq)
00:05:54 #15036 [Verbose] > ||> fold_ fun _ x =>
00:05:54 #15037 [Verbose] > ar <- *ar /@ a ;[[x]]
00:05:54 #15038 [Verbose] > *ar
00:05:54 #15039 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2650-5004-50c1e5a621bc\main.spi
00:05:54 #15040 [Verbose] >
00:05:54 #15041 [Verbose] > ╭─[ 243.66ms - stdout ]────────────────────────────────────────────────────────╮
00:05:54 #15042 [Verbose] > │ () │
00:05:54 #15043 [Verbose] > │ │
00:05:54 #15044 [Verbose] > │ │
00:05:54 #15045 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:54 #15046 [Verbose] >
00:05:54 #15047 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:54 #15048 [Verbose] > // // test
00:05:54 #15049 [Verbose] >
00:05:54 #15050 [Verbose] > listm.init 10i32 id
00:05:54 #15051 [Verbose] > |> from_list
00:05:54 #15052 [Verbose] > |> fun (x : i32 -> _) => x
00:05:54 #15053 [Verbose] > |> to_array
00:05:54 #15054 [Verbose] > |> _assert_eq (a ;[[ 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 ]] : _ i32 _)
00:05:54 #15055 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2674-7465-7c77d1baa6ae\main.spi
00:05:55 #15056 [Verbose] >
00:05:55 #15057 [Verbose] > ╭─[ 706.96ms - stdout ]────────────────────────────────────────────────────────╮
00:05:55 #15058 [Verbose] > │ type Mut0 = {mutable l0 : (int32 [])} │
00:05:55 #15059 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:05:55 #15060 [Verbose] > │ let rec method1 (v0 : int32, v1 : Mut1) : bool = │
00:05:55 #15061 [Verbose] > │ let v2 : int32 = v1.l0 │
00:05:55 #15062 [Verbose] > │ let v3 : bool = v2 < v0 │
00:05:55 #15063 [Verbose] > │ v3 │
00:05:55 #15064 [Verbose] > │ and method2 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool = │
00:05:55 #15065 [Verbose] > │ let v3 : int32 = v0.Length │
00:05:55 #15066 [Verbose] > │ let v4 : bool = v2 < v3 │
00:05:55 #15067 [Verbose] > │ if v4 then │
00:05:55 #15068 [Verbose] > │ let v5 : int32 = v0.[int v2] │
00:05:55 #15069 [Verbose] > │ let v6 : int32 = v1.[int v2] │
00:05:55 #15070 [Verbose] > │ let v7 : bool = v5 = v6 │
00:05:55 #15071 [Verbose] > │ if v7 then │
00:05:55 #15072 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:05:55 #15073 [Verbose] > │ method2(v0, v1, v8) │
00:05:55 #15074 [Verbose] > │ else │
00:05:55 #15075 [Verbose] > │ false │
00:05:55 #15076 [Verbose] > │ else │
00:05:55 #15077 [Verbose] > │ true │
00:05:55 #15078 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:05:55 #15079 [Verbose] > │ v0 │
00:05:55 #15080 [Verbose] > │ and method0 () : unit = │
00:05:55 #15081 [Verbose] > │ let v0 : (int32 []) = [||] │
00:05:55 #15082 [Verbose] > │ let v1 : Mut0 = {l0 = v0} : Mut0 │
00:05:55 #15083 [Verbose] > │ let v2 : (int32 []) = v1.l0 │
00:05:55 #15084 [Verbose] > │ let v3 : (int32 []) = [|0|] │
00:05:55 #15085 [Verbose] > │ let v4 : int32 = v2.Length │
00:05:55 #15086 [Verbose] > │ let v5 : int32 = v3.Length │
00:05:55 #15087 [Verbose] > │ let v6 : int32 = v4 + v5 │
00:05:55 #15088 [Verbose] > │ let v7 : (int32 []) = Array.zeroCreate<int32> (v6) │
00:05:55 #15089 [Verbose] > │ let v8 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15090 [Verbose] > │ while method1(v6, v8) do │
00:05:55 #15091 [Verbose] > │ let v10 : int32 = v8.l0 │
00:05:55 #15092 [Verbose] > │ let v11 : bool = v10 < v4 │
00:05:55 #15093 [Verbose] > │ let v15 : int32 = │
00:05:55 #15094 [Verbose] > │ if v11 then │
00:05:55 #15095 [Verbose] > │ let v12 : int32 = v2.[int v10] │
00:05:55 #15096 [Verbose] > │ v12 │
00:05:55 #15097 [Verbose] > │ else │
00:05:55 #15098 [Verbose] > │ let v13 : int32 = v10 - v4 │
00:05:55 #15099 [Verbose] > │ let v14 : int32 = v3.[int v13] │
00:05:55 #15100 [Verbose] > │ v14 │
00:05:55 #15101 [Verbose] > │ v7.[int v10] <- v15 │
00:05:55 #15102 [Verbose] > │ let v16 : int32 = v10 + 1 │
00:05:55 #15103 [Verbose] > │ v8.l0 <- v16 │
00:05:55 #15104 [Verbose] > │ () │
00:05:55 #15105 [Verbose] > │ v1.l0 <- v7 │
00:05:55 #15106 [Verbose] > │ let v17 : (int32 []) = v1.l0 │
00:05:55 #15107 [Verbose] > │ let v18 : (int32 []) = [|1|] │
00:05:55 #15108 [Verbose] > │ let v19 : int32 = v17.Length │
00:05:55 #15109 [Verbose] > │ let v20 : int32 = v18.Length │
00:05:55 #15110 [Verbose] > │ let v21 : int32 = v19 + v20 │
00:05:55 #15111 [Verbose] > │ let v22 : (int32 []) = Array.zeroCreate<int32> (v21) │
00:05:55 #15112 [Verbose] > │ let v23 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15113 [Verbose] > │ while method1(v21, v23) do │
00:05:55 #15114 [Verbose] > │ let v25 : int32 = v23.l0 │
00:05:55 #15115 [Verbose] > │ let v26 : bool = v25 < v19 │
00:05:55 #15116 [Verbose] > │ let v30 : int32 = │
00:05:55 #15117 [Verbose] > │ if v26 then │
00:05:55 #15118 [Verbose] > │ let v27 : int32 = v17.[int v25] │
00:05:55 #15119 [Verbose] > │ v27 │
00:05:55 #15120 [Verbose] > │ else │
00:05:55 #15121 [Verbose] > │ let v28 : int32 = v25 - v19 │
00:05:55 #15122 [Verbose] > │ let v29 : int32 = v18.[int v28] │
00:05:55 #15123 [Verbose] > │ v29 │
00:05:55 #15124 [Verbose] > │ v22.[int v25] <- v30 │
00:05:55 #15125 [Verbose] > │ let v31 : int32 = v25 + 1 │
00:05:55 #15126 [Verbose] > │ v23.l0 <- v31 │
00:05:55 #15127 [Verbose] > │ () │
00:05:55 #15128 [Verbose] > │ v1.l0 <- v22 │
00:05:55 #15129 [Verbose] > │ let v32 : (int32 []) = v1.l0 │
00:05:55 #15130 [Verbose] > │ let v33 : (int32 []) = [|2|] │
00:05:55 #15131 [Verbose] > │ let v34 : int32 = v32.Length │
00:05:55 #15132 [Verbose] > │ let v35 : int32 = v33.Length │
00:05:55 #15133 [Verbose] > │ let v36 : int32 = v34 + v35 │
00:05:55 #15134 [Verbose] > │ let v37 : (int32 []) = Array.zeroCreate<int32> (v36) │
00:05:55 #15135 [Verbose] > │ let v38 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15136 [Verbose] > │ while method1(v36, v38) do │
00:05:55 #15137 [Verbose] > │ let v40 : int32 = v38.l0 │
00:05:55 #15138 [Verbose] > │ let v41 : bool = v40 < v34 │
00:05:55 #15139 [Verbose] > │ let v45 : int32 = │
00:05:55 #15140 [Verbose] > │ if v41 then │
00:05:55 #15141 [Verbose] > │ let v42 : int32 = v32.[int v40] │
00:05:55 #15142 [Verbose] > │ v42 │
00:05:55 #15143 [Verbose] > │ else │
00:05:55 #15144 [Verbose] > │ let v43 : int32 = v40 - v34 │
00:05:55 #15145 [Verbose] > │ let v44 : int32 = v33.[int v43] │
00:05:55 #15146 [Verbose] > │ v44 │
00:05:55 #15147 [Verbose] > │ v37.[int v40] <- v45 │
00:05:55 #15148 [Verbose] > │ let v46 : int32 = v40 + 1 │
00:05:55 #15149 [Verbose] > │ v38.l0 <- v46 │
00:05:55 #15150 [Verbose] > │ () │
00:05:55 #15151 [Verbose] > │ v1.l0 <- v37 │
00:05:55 #15152 [Verbose] > │ let v47 : (int32 []) = v1.l0 │
00:05:55 #15153 [Verbose] > │ let v48 : (int32 []) = [|3|] │
00:05:55 #15154 [Verbose] > │ let v49 : int32 = v47.Length │
00:05:55 #15155 [Verbose] > │ let v50 : int32 = v48.Length │
00:05:55 #15156 [Verbose] > │ let v51 : int32 = v49 + v50 │
00:05:55 #15157 [Verbose] > │ let v52 : (int32 []) = Array.zeroCreate<int32> (v51) │
00:05:55 #15158 [Verbose] > │ let v53 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15159 [Verbose] > │ while method1(v51, v53) do │
00:05:55 #15160 [Verbose] > │ let v55 : int32 = v53.l0 │
00:05:55 #15161 [Verbose] > │ let v56 : bool = v55 < v49 │
00:05:55 #15162 [Verbose] > │ let v60 : int32 = │
00:05:55 #15163 [Verbose] > │ if v56 then │
00:05:55 #15164 [Verbose] > │ let v57 : int32 = v47.[int v55] │
00:05:55 #15165 [Verbose] > │ v57 │
00:05:55 #15166 [Verbose] > │ else │
00:05:55 #15167 [Verbose] > │ let v58 : int32 = v55 - v49 │
00:05:55 #15168 [Verbose] > │ let v59 : int32 = v48.[int v58] │
00:05:55 #15169 [Verbose] > │ v59 │
00:05:55 #15170 [Verbose] > │ v52.[int v55] <- v60 │
00:05:55 #15171 [Verbose] > │ let v61 : int32 = v55 + 1 │
00:05:55 #15172 [Verbose] > │ v53.l0 <- v61 │
00:05:55 #15173 [Verbose] > │ () │
00:05:55 #15174 [Verbose] > │ v1.l0 <- v52 │
00:05:55 #15175 [Verbose] > │ let v62 : (int32 []) = v1.l0 │
00:05:55 #15176 [Verbose] > │ let v63 : (int32 []) = [|4|] │
00:05:55 #15177 [Verbose] > │ let v64 : int32 = v62.Length │
00:05:55 #15178 [Verbose] > │ let v65 : int32 = v63.Length │
00:05:55 #15179 [Verbose] > │ let v66 : int32 = v64 + v65 │
00:05:55 #15180 [Verbose] > │ let v67 : (int32 []) = Array.zeroCreate<int32> (v66) │
00:05:55 #15181 [Verbose] > │ let v68 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15182 [Verbose] > │ while method1(v66, v68) do │
00:05:55 #15183 [Verbose] > │ let v70 : int32 = v68.l0 │
00:05:55 #15184 [Verbose] > │ let v71 : bool = v70 < v64 │
00:05:55 #15185 [Verbose] > │ let v75 : int32 = │
00:05:55 #15186 [Verbose] > │ if v71 then │
00:05:55 #15187 [Verbose] > │ let v72 : int32 = v62.[int v70] │
00:05:55 #15188 [Verbose] > │ v72 │
00:05:55 #15189 [Verbose] > │ else │
00:05:55 #15190 [Verbose] > │ let v73 : int32 = v70 - v64 │
00:05:55 #15191 [Verbose] > │ let v74 : int32 = v63.[int v73] │
00:05:55 #15192 [Verbose] > │ v74 │
00:05:55 #15193 [Verbose] > │ v67.[int v70] <- v75 │
00:05:55 #15194 [Verbose] > │ let v76 : int32 = v70 + 1 │
00:05:55 #15195 [Verbose] > │ v68.l0 <- v76 │
00:05:55 #15196 [Verbose] > │ () │
00:05:55 #15197 [Verbose] > │ v1.l0 <- v67 │
00:05:55 #15198 [Verbose] > │ let v77 : (int32 []) = v1.l0 │
00:05:55 #15199 [Verbose] > │ let v78 : (int32 []) = [|5|] │
00:05:55 #15200 [Verbose] > │ let v79 : int32 = v77.Length │
00:05:55 #15201 [Verbose] > │ let v80 : int32 = v78.Length │
00:05:55 #15202 [Verbose] > │ let v81 : int32 = v79 + v80 │
00:05:55 #15203 [Verbose] > │ let v82 : (int32 []) = Array.zeroCreate<int32> (v81) │
00:05:55 #15204 [Verbose] > │ let v83 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15205 [Verbose] > │ while method1(v81, v83) do │
00:05:55 #15206 [Verbose] > │ let v85 : int32 = v83.l0 │
00:05:55 #15207 [Verbose] > │ let v86 : bool = v85 < v79 │
00:05:55 #15208 [Verbose] > │ let v90 : int32 = │
00:05:55 #15209 [Verbose] > │ if v86 then │
00:05:55 #15210 [Verbose] > │ let v87 : int32 = v77.[int v85] │
00:05:55 #15211 [Verbose] > │ v87 │
00:05:55 #15212 [Verbose] > │ else │
00:05:55 #15213 [Verbose] > │ let v88 : int32 = v85 - v79 │
00:05:55 #15214 [Verbose] > │ let v89 : int32 = v78.[int v88] │
00:05:55 #15215 [Verbose] > │ v89 │
00:05:55 #15216 [Verbose] > │ v82.[int v85] <- v90 │
00:05:55 #15217 [Verbose] > │ let v91 : int32 = v85 + 1 │
00:05:55 #15218 [Verbose] > │ v83.l0 <- v91 │
00:05:55 #15219 [Verbose] > │ () │
00:05:55 #15220 [Verbose] > │ v1.l0 <- v82 │
00:05:55 #15221 [Verbose] > │ let v92 : (int32 []) = v1.l0 │
00:05:55 #15222 [Verbose] > │ let v93 : (int32 []) = [|6|] │
00:05:55 #15223 [Verbose] > │ let v94 : int32 = v92.Length │
00:05:55 #15224 [Verbose] > │ let v95 : int32 = v93.Length │
00:05:55 #15225 [Verbose] > │ let v96 : int32 = v94 + v95 │
00:05:55 #15226 [Verbose] > │ let v97 : (int32 []) = Array.zeroCreate<int32> (v96) │
00:05:55 #15227 [Verbose] > │ let v98 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15228 [Verbose] > │ while method1(v96, v98) do │
00:05:55 #15229 [Verbose] > │ let v100 : int32 = v98.l0 │
00:05:55 #15230 [Verbose] > │ let v101 : bool = v100 < v94 │
00:05:55 #15231 [Verbose] > │ let v105 : int32 = │
00:05:55 #15232 [Verbose] > │ if v101 then │
00:05:55 #15233 [Verbose] > │ let v102 : int32 = v92.[int v100] │
00:05:55 #15234 [Verbose] > │ v102 │
00:05:55 #15235 [Verbose] > │ else │
00:05:55 #15236 [Verbose] > │ let v103 : int32 = v100 - v94 │
00:05:55 #15237 [Verbose] > │ let v104 : int32 = v93.[int v103] │
00:05:55 #15238 [Verbose] > │ v104 │
00:05:55 #15239 [Verbose] > │ v97.[int v100] <- v105 │
00:05:55 #15240 [Verbose] > │ let v106 : int32 = v100 + 1 │
00:05:55 #15241 [Verbose] > │ v98.l0 <- v106 │
00:05:55 #15242 [Verbose] > │ () │
00:05:55 #15243 [Verbose] > │ v1.l0 <- v97 │
00:05:55 #15244 [Verbose] > │ let v107 : (int32 []) = v1.l0 │
00:05:55 #15245 [Verbose] > │ let v108 : (int32 []) = [|7|] │
00:05:55 #15246 [Verbose] > │ let v109 : int32 = v107.Length │
00:05:55 #15247 [Verbose] > │ let v110 : int32 = v108.Length │
00:05:55 #15248 [Verbose] > │ let v111 : int32 = v109 + v110 │
00:05:55 #15249 [Verbose] > │ let v112 : (int32 []) = Array.zeroCreate<int32> (v111) │
00:05:55 #15250 [Verbose] > │ let v113 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15251 [Verbose] > │ while method1(v111, v113) do │
00:05:55 #15252 [Verbose] > │ let v115 : int32 = v113.l0 │
00:05:55 #15253 [Verbose] > │ let v116 : bool = v115 < v109 │
00:05:55 #15254 [Verbose] > │ let v120 : int32 = │
00:05:55 #15255 [Verbose] > │ if v116 then │
00:05:55 #15256 [Verbose] > │ let v117 : int32 = v107.[int v115] │
00:05:55 #15257 [Verbose] > │ v117 │
00:05:55 #15258 [Verbose] > │ else │
00:05:55 #15259 [Verbose] > │ let v118 : int32 = v115 - v109 │
00:05:55 #15260 [Verbose] > │ let v119 : int32 = v108.[int v118] │
00:05:55 #15261 [Verbose] > │ v119 │
00:05:55 #15262 [Verbose] > │ v112.[int v115] <- v120 │
00:05:55 #15263 [Verbose] > │ let v121 : int32 = v115 + 1 │
00:05:55 #15264 [Verbose] > │ v113.l0 <- v121 │
00:05:55 #15265 [Verbose] > │ () │
00:05:55 #15266 [Verbose] > │ v1.l0 <- v112 │
00:05:55 #15267 [Verbose] > │ let v122 : (int32 []) = v1.l0 │
00:05:55 #15268 [Verbose] > │ let v123 : (int32 []) = [|8|] │
00:05:55 #15269 [Verbose] > │ let v124 : int32 = v122.Length │
00:05:55 #15270 [Verbose] > │ let v125 : int32 = v123.Length │
00:05:55 #15271 [Verbose] > │ let v126 : int32 = v124 + v125 │
00:05:55 #15272 [Verbose] > │ let v127 : (int32 []) = Array.zeroCreate<int32> (v126) │
00:05:55 #15273 [Verbose] > │ let v128 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15274 [Verbose] > │ while method1(v126, v128) do │
00:05:55 #15275 [Verbose] > │ let v130 : int32 = v128.l0 │
00:05:55 #15276 [Verbose] > │ let v131 : bool = v130 < v124 │
00:05:55 #15277 [Verbose] > │ let v135 : int32 = │
00:05:55 #15278 [Verbose] > │ if v131 then │
00:05:55 #15279 [Verbose] > │ let v132 : int32 = v122.[int v130] │
00:05:55 #15280 [Verbose] > │ v132 │
00:05:55 #15281 [Verbose] > │ else │
00:05:55 #15282 [Verbose] > │ let v133 : int32 = v130 - v124 │
00:05:55 #15283 [Verbose] > │ let v134 : int32 = v123.[int v133] │
00:05:55 #15284 [Verbose] > │ v134 │
00:05:55 #15285 [Verbose] > │ v127.[int v130] <- v135 │
00:05:55 #15286 [Verbose] > │ let v136 : int32 = v130 + 1 │
00:05:55 #15287 [Verbose] > │ v128.l0 <- v136 │
00:05:55 #15288 [Verbose] > │ () │
00:05:55 #15289 [Verbose] > │ v1.l0 <- v127 │
00:05:55 #15290 [Verbose] > │ let v137 : (int32 []) = v1.l0 │
00:05:55 #15291 [Verbose] > │ let v138 : (int32 []) = [|9|] │
00:05:55 #15292 [Verbose] > │ let v139 : int32 = v137.Length │
00:05:55 #15293 [Verbose] > │ let v140 : int32 = v138.Length │
00:05:55 #15294 [Verbose] > │ let v141 : int32 = v139 + v140 │
00:05:55 #15295 [Verbose] > │ let v142 : (int32 []) = Array.zeroCreate<int32> (v141) │
00:05:55 #15296 [Verbose] > │ let v143 : Mut1 = {l0 = 0} : Mut1 │
00:05:55 #15297 [Verbose] > │ while method1(v141, v143) do │
00:05:55 #15298 [Verbose] > │ let v145 : int32 = v143.l0 │
00:05:55 #15299 [Verbose] > │ let v146 : bool = v145 < v139 │
00:05:55 #15300 [Verbose] > │ let v150 : int32 = │
00:05:55 #15301 [Verbose] > │ if v146 then │
00:05:55 #15302 [Verbose] > │ let v147 : int32 = v137.[int v145] │
00:05:55 #15303 [Verbose] > │ v147 │
00:05:55 #15304 [Verbose] > │ else │
00:05:55 #15305 [Verbose] > │ let v148 : int32 = v145 - v139 │
00:05:55 #15306 [Verbose] > │ let v149 : int32 = v138.[int v148] │
00:05:55 #15307 [Verbose] > │ v149 │
00:05:55 #15308 [Verbose] > │ v142.[int v145] <- v150 │
00:05:55 #15309 [Verbose] > │ let v151 : int32 = v145 + 1 │
00:05:55 #15310 [Verbose] > │ v143.l0 <- v151 │
00:05:55 #15311 [Verbose] > │ () │
00:05:55 #15312 [Verbose] > │ v1.l0 <- v142 │
00:05:55 #15313 [Verbose] > │ let v152 : (int32 []) = v1.l0 │
00:05:55 #15314 [Verbose] > │ let v153 : (int32 []) = [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|] │
00:05:55 #15315 [Verbose] > │ let v154 : string = $"%A{v152}" │
00:05:55 #15316 [Verbose] > │ System.Console.WriteLine v154 │
00:05:55 #15317 [Verbose] > │ let v155 : int32 = v152.Length │
00:05:55 #15318 [Verbose] > │ let v156 : int32 = v153.Length │
00:05:55 #15319 [Verbose] > │ let v157 : bool = v155 = v156 │
00:05:55 #15320 [Verbose] > │ let v158 : bool = v157 <> true │
00:05:55 #15321 [Verbose] > │ let v161 : bool = │
00:05:55 #15322 [Verbose] > │ if v158 then │
00:05:55 #15323 [Verbose] > │ false │
00:05:55 #15324 [Verbose] > │ else │
00:05:55 #15325 [Verbose] > │ let v159 : int32 = 0 │
00:05:55 #15326 [Verbose] > │ method2(v152, v153, v159) │
00:05:55 #15327 [Verbose] > │ let v163 : bool = │
00:05:55 #15328 [Verbose] > │ if v161 then │
00:05:55 #15329 [Verbose] > │ true │
00:05:55 #15330 [Verbose] > │ else │
00:05:55 #15331 [Verbose] > │ method3(v161) │
00:05:55 #15332 [Verbose] > │ let v164 : string = $"__expect / actual: %A{v152} / expected: %A{v153}" │
00:05:55 #15333 [Verbose] > │ let v165 : bool = v163 = false │
00:05:55 #15334 [Verbose] > │ if v165 then │
00:05:55 #15335 [Verbose] > │ failwith<unit> v164 │
00:05:55 #15336 [Verbose] > │ method0() │
00:05:55 #15337 [Verbose] > │ │
00:05:55 #15338 [Verbose] > │ [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|] │
00:05:55 #15339 [Verbose] > │ │
00:05:55 #15340 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:55 #15341 [Verbose] >
00:05:55 #15342 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:55 #15343 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:55 #15344 [Verbose] > │ ## take_while │
00:05:55 #15345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:55 #15346 [Verbose] >
00:05:55 #15347 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:55 #15348 [Verbose] > inl take_while cond seq =
00:05:55 #15349 [Verbose] > inl rec loop acc i =
00:05:55 #15350 [Verbose] > match seq i with
00:05:55 #15351 [Verbose] > | Some st when cond st i => loop (st :: acc) (i + 1)
00:05:55 #15352 [Verbose] > | _ => acc |> listm.rev
00:05:55 #15353 [Verbose] > loop [[]] 0
00:05:55 #15354 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2763-6386-69343f1b4fde\main.spi
00:05:55 #15355 [Verbose] >
00:05:55 #15356 [Verbose] > ╭─[ 229.64ms - stdout ]────────────────────────────────────────────────────────╮
00:05:55 #15357 [Verbose] > │ () │
00:05:55 #15358 [Verbose] > │ │
00:05:55 #15359 [Verbose] > │ │
00:05:55 #15360 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:55 #15361 [Verbose] >
00:05:55 #15362 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:55 #15363 [Verbose] > // // test
00:05:55 #15364 [Verbose] >
00:05:55 #15365 [Verbose] > listm.init 10i32 id
00:05:55 #15366 [Verbose] > |> from_list
00:05:55 #15367 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:05:55 #15368 [Verbose] > |> listm'.sum
00:05:55 #15369 [Verbose] > |> _assert_eq 10
00:05:55 #15370 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2786-8676-875c89e3f51c\main.spi
00:05:55 #15371 [Verbose] >
00:05:55 #15372 [Verbose] > ╭─[ 233.14ms - stdout ]────────────────────────────────────────────────────────╮
00:05:55 #15373 [Verbose] > │ let rec method0 () : unit = │
00:05:55 #15374 [Verbose] > │ let v0 : string = $"%A{10}" │
00:05:55 #15375 [Verbose] > │ System.Console.WriteLine v0 │
00:05:55 #15376 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:05:55 #15377 [Verbose] > │ () │
00:05:55 #15378 [Verbose] > │ method0() │
00:05:55 #15379 [Verbose] > │ │
00:05:55 #15380 [Verbose] > │ 10 │
00:05:55 #15381 [Verbose] > │ │
00:05:55 #15382 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:55 #15383 [Verbose] >
00:05:55 #15384 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:55 #15385 [Verbose] > // // test
00:05:55 #15386 [Verbose] >
00:05:55 #15387 [Verbose] > stream.new_finite_stream print_and_return 10i32
00:05:55 #15388 [Verbose] > |> flip stream.try_item
00:05:55 #15389 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)
00:05:55 #15390 [Verbose] > |> listm'.sum
00:05:55 #15391 [Verbose] > |> _assert_eq 10
00:05:55 #15392 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2810-1083-1554284939b3\main.spi
00:05:56 #15393 [Verbose] >
00:05:56 #15394 [Verbose] > ╭─[ 320.64ms - stdout ]────────────────────────────────────────────────────────╮
00:05:56 #15395 [Verbose] > │ let rec method0 () : unit = │
00:05:56 #15396 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:56 #15397 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:56 #15398 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:56 #15399 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:56 #15400 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:56 #15401 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:56 #15402 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:56 #15403 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:56 #15404 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:56 #15405 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:56 #15406 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:56 #15407 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:56 #15408 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:56 #15409 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:56 #15410 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:56 #15411 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:56 #15412 [Verbose] > │ let v0 : string = $"%A{10}" │
00:05:56 #15413 [Verbose] > │ System.Console.WriteLine v0 │
00:05:56 #15414 [Verbose] > │ let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}" │
00:05:56 #15415 [Verbose] > │ () │
00:05:56 #15416 [Verbose] > │ method0() │
00:05:56 #15417 [Verbose] > │ │
00:05:56 #15418 [Verbose] > │ print_and_return / x: 0 │
00:05:56 #15419 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15420 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15421 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15422 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15423 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15424 [Verbose] > │ print_and_return / x: 3 │
00:05:56 #15425 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15426 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15427 [Verbose] > │ print_and_return / x: 3 │
00:05:56 #15428 [Verbose] > │ print_and_return / x: 4 │
00:05:56 #15429 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15430 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15431 [Verbose] > │ print_and_return / x: 3 │
00:05:56 #15432 [Verbose] > │ print_and_return / x: 4 │
00:05:56 #15433 [Verbose] > │ print_and_return / x: 5 │
00:05:56 #15434 [Verbose] > │ 10 │
00:05:56 #15435 [Verbose] > │ │
00:05:56 #15436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:56 #15437 [Verbose] >
00:05:56 #15438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:56 #15439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:56 #15440 [Verbose] > │ ## take_while_ │
00:05:56 #15441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:56 #15442 [Verbose] >
00:05:56 #15443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:56 #15444 [Verbose] > inl take_while_ cond seq =
00:05:56 #15445 [Verbose] > let rec loop acc i =
00:05:56 #15446 [Verbose] > match seq i with
00:05:56 #15447 [Verbose] > | Some st when cond st i => loop (st :: acc) (i + 1)
00:05:56 #15448 [Verbose] > | _ => acc |> listm.rev
00:05:56 #15449 [Verbose] > loop [[]] 0
00:05:56 #15450 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2846-4665-48a2f68cef55\main.spi
00:05:56 #15451 [Verbose] >
00:05:56 #15452 [Verbose] > ╭─[ 202.57ms - stdout ]────────────────────────────────────────────────────────╮
00:05:56 #15453 [Verbose] > │ () │
00:05:56 #15454 [Verbose] > │ │
00:05:56 #15455 [Verbose] > │ │
00:05:56 #15456 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:56 #15457 [Verbose] >
00:05:56 #15458 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:56 #15459 [Verbose] > // // test
00:05:56 #15460 [Verbose] >
00:05:56 #15461 [Verbose] > stream.new_infinite_stream_ print_and_return
00:05:56 #15462 [Verbose] > |> flip stream.try_item
00:05:56 #15463 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)
00:05:56 #15464 [Verbose] > |> listm'.sum
00:05:56 #15465 [Verbose] > |> _assert_eq 10
00:05:56 #15466 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2867-6710-619c1ef5dd2c\main.spi
00:05:56 #15467 [Verbose] >
00:05:56 #15468 [Verbose] > ╭─[ 399.49ms - stdout ]────────────────────────────────────────────────────────╮
00:05:56 #15469 [Verbose] > │ type UH0 = │
00:05:56 #15470 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:05:56 #15471 [Verbose] > │ | UH0_1 │
00:05:56 #15472 [Verbose] > │ and UH1 = │
00:05:56 #15473 [Verbose] > │ | UH1_0 │
00:05:56 #15474 [Verbose] > │ | UH1_1 of int32 * UH1 │
00:05:56 #15475 [Verbose] > │ and [<Struct>] US0 = │
00:05:56 #15476 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:56 #15477 [Verbose] > │ | US0_1 │
00:05:56 #15478 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 = │
00:05:56 #15479 [Verbose] > │ let v1 : int32 = v0 + 1 │
00:05:56 #15480 [Verbose] > │ method1(v1) │
00:05:56 #15481 [Verbose] > │ and method1 (v0 : int32) : UH0 = │
00:05:56 #15482 [Verbose] > │ printfn $"print_and_return / x: {v0}" │
00:05:56 #15483 [Verbose] > │ let v1 : (unit -> UH0) = closure0(v0) │
00:05:56 #15484 [Verbose] > │ UH0_0(v0, v1) │
00:05:56 #15485 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US0 = │
00:05:56 #15486 [Verbose] > │ match v1 with │
00:05:56 #15487 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:05:56 #15488 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:05:56 #15489 [Verbose] > │ if v4 then │
00:05:56 #15490 [Verbose] > │ US0_0(v2) │
00:05:56 #15491 [Verbose] > │ else │
00:05:56 #15492 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:05:56 #15493 [Verbose] > │ let v7 : UH0 = v3 () │
00:05:56 #15494 [Verbose] > │ method3(v6, v7) │
00:05:56 #15495 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:56 #15496 [Verbose] > │ US0_1 │
00:05:56 #15497 [Verbose] > │ and method4 (v0 : UH1, v1 : UH1) : UH1 = │
00:05:56 #15498 [Verbose] > │ match v0 with │
00:05:56 #15499 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:56 #15500 [Verbose] > │ let v4 : UH1 = UH1_1(v2, v1) │
00:05:56 #15501 [Verbose] > │ method4(v3, v4) │
00:05:56 #15502 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:56 #15503 [Verbose] > │ v1 │
00:05:56 #15504 [Verbose] > │ and method2 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 = │
00:05:56 #15505 [Verbose] > │ let v3 : US0 = method3(v2, v0) │
00:05:56 #15506 [Verbose] > │ match v3 with │
00:05:56 #15507 [Verbose] > │ | US0_0(v4) -> (* Some *) │
00:05:56 #15508 [Verbose] > │ let v5 : bool = v4 < 5 │
00:05:56 #15509 [Verbose] > │ if v5 then │
00:05:56 #15510 [Verbose] > │ let v6 : UH1 = UH1_1(v4, v1) │
00:05:56 #15511 [Verbose] > │ let v7 : int32 = v2 + 1 │
00:05:56 #15512 [Verbose] > │ method2(v0, v6, v7) │
00:05:56 #15513 [Verbose] > │ else │
00:05:56 #15514 [Verbose] > │ let v9 : UH1 = UH1_0 │
00:05:56 #15515 [Verbose] > │ method4(v1, v9) │
00:05:56 #15516 [Verbose] > │ | _ -> │
00:05:56 #15517 [Verbose] > │ let v12 : UH1 = UH1_0 │
00:05:56 #15518 [Verbose] > │ method4(v1, v12) │
00:05:56 #15519 [Verbose] > │ and method5 (v0 : UH1, v1 : int32) : int32 = │
00:05:56 #15520 [Verbose] > │ match v0 with │
00:05:56 #15521 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:56 #15522 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:05:56 #15523 [Verbose] > │ method5(v3, v4) │
00:05:56 #15524 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:56 #15525 [Verbose] > │ v1 │
00:05:56 #15526 [Verbose] > │ and method6 (v0 : bool) : bool = │
00:05:56 #15527 [Verbose] > │ v0 │
00:05:56 #15528 [Verbose] > │ and method0 () : unit = │
00:05:56 #15529 [Verbose] > │ let v0 : int32 = 0 │
00:05:56 #15530 [Verbose] > │ let v1 : UH0 = method1(v0) │
00:05:56 #15531 [Verbose] > │ let v2 : UH1 = UH1_0 │
00:05:56 #15532 [Verbose] > │ let v3 : int32 = 0 │
00:05:56 #15533 [Verbose] > │ let v4 : UH1 = method2(v1, v2, v3) │
00:05:56 #15534 [Verbose] > │ let v5 : int32 = 0 │
00:05:56 #15535 [Verbose] > │ let v6 : int32 = method5(v4, v5) │
00:05:56 #15536 [Verbose] > │ let v7 : string = $"%A{v6}" │
00:05:56 #15537 [Verbose] > │ System.Console.WriteLine v7 │
00:05:56 #15538 [Verbose] > │ let v8 : bool = v6 = 10 │
00:05:56 #15539 [Verbose] > │ let v10 : bool = │
00:05:56 #15540 [Verbose] > │ if v8 then │
00:05:56 #15541 [Verbose] > │ true │
00:05:56 #15542 [Verbose] > │ else │
00:05:56 #15543 [Verbose] > │ method6(v8) │
00:05:56 #15544 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}" │
00:05:56 #15545 [Verbose] > │ let v12 : bool = v10 = false │
00:05:56 #15546 [Verbose] > │ if v12 then │
00:05:56 #15547 [Verbose] > │ failwith<unit> v11 │
00:05:56 #15548 [Verbose] > │ method0() │
00:05:56 #15549 [Verbose] > │ │
00:05:56 #15550 [Verbose] > │ print_and_return / x: 0 │
00:05:56 #15551 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15552 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15553 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15554 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15555 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15556 [Verbose] > │ print_and_return / x: 3 │
00:05:56 #15557 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15558 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15559 [Verbose] > │ print_and_return / x: 3 │
00:05:56 #15560 [Verbose] > │ print_and_return / x: 4 │
00:05:56 #15561 [Verbose] > │ print_and_return / x: 1 │
00:05:56 #15562 [Verbose] > │ print_and_return / x: 2 │
00:05:56 #15563 [Verbose] > │ print_and_return / x: 3 │
00:05:56 #15564 [Verbose] > │ print_and_return / x: 4 │
00:05:56 #15565 [Verbose] > │ print_and_return / x: 5 │
00:05:56 #15566 [Verbose] > │ 10 │
00:05:56 #15567 [Verbose] > │ │
00:05:56 #15568 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:56 #15569 [Verbose] >
00:05:56 #15570 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:56 #15571 [Verbose] > // // test
00:05:56 #15572 [Verbose] >
00:05:56 #15573 [Verbose] > stream.new_infinite_stream_ print_and_return
00:05:56 #15574 [Verbose] > |> stream.memoize
00:05:56 #15575 [Verbose] > |> fun list =>
00:05:56 #15576 [Verbose] > inl list = list ()
00:05:56 #15577 [Verbose] > fun n =>
00:05:56 #15578 [Verbose] > list |> stream.try_item n
00:05:56 #15579 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)
00:05:56 #15580 [Verbose] > |> listm'.sum
00:05:56 #15581 [Verbose] > |> _assert_eq 10
00:05:56 #15582 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2911-1120-1ac01101590b\main.spi
00:05:57 #15583 [Verbose] >
00:05:57 #15584 [Verbose] > ╭─[ 426.20ms - stdout ]────────────────────────────────────────────────────────╮
00:05:57 #15585 [Verbose] > │ type UH0 = │
00:05:57 #15586 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:05:57 #15587 [Verbose] > │ | UH0_1 │
00:05:57 #15588 [Verbose] > │ and [<Struct>] US0 = │
00:05:57 #15589 [Verbose] > │ | US0_0 of f0_0 : (unit -> UH0) │
00:05:57 #15590 [Verbose] > │ | US0_1 of f1_0 : UH0 │
00:05:57 #15591 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:05:57 #15592 [Verbose] > │ and UH1 = │
00:05:57 #15593 [Verbose] > │ | UH1_0 │
00:05:57 #15594 [Verbose] > │ | UH1_1 of int32 * UH1 │
00:05:57 #15595 [Verbose] > │ and [<Struct>] US1 = │
00:05:57 #15596 [Verbose] > │ | US1_0 of f0_0 : int32 │
00:05:57 #15597 [Verbose] > │ | US1_1 │
00:05:57 #15598 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 = │
00:05:57 #15599 [Verbose] > │ let v1 : int32 = v0 + 1 │
00:05:57 #15600 [Verbose] > │ method1(v1) │
00:05:57 #15601 [Verbose] > │ and method1 (v0 : int32) : UH0 = │
00:05:57 #15602 [Verbose] > │ printfn $"print_and_return / x: {v0}" │
00:05:57 #15603 [Verbose] > │ let v1 : (unit -> UH0) = closure0(v0) │
00:05:57 #15604 [Verbose] > │ UH0_0(v0, v1) │
00:05:57 #15605 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 = │
00:05:57 #15606 [Verbose] > │ v0 │
00:05:57 #15607 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 = │
00:05:57 #15608 [Verbose] > │ let v2 : US0 = v1.l0 │
00:05:57 #15609 [Verbose] > │ match v2 with │
00:05:57 #15610 [Verbose] > │ | US0_1(v3) -> (* Computed *) │
00:05:57 #15611 [Verbose] > │ v3 │
00:05:57 #15612 [Verbose] > │ | US0_0(v4) -> (* NotComputed *) │
00:05:57 #15613 [Verbose] > │ let v5 : UH0 = v4 () │
00:05:57 #15614 [Verbose] > │ let v12 : UH0 = │
00:05:57 #15615 [Verbose] > │ match v5 with │
00:05:57 #15616 [Verbose] > │ | UH0_0(v7, v8) -> (* StreamCons *) │
00:05:57 #15617 [Verbose] > │ let v9 : (unit -> UH0) = method2(v0, v8) │
00:05:57 #15618 [Verbose] > │ UH0_0(v7, v9) │
00:05:57 #15619 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:57 #15620 [Verbose] > │ UH0_1 │
00:05:57 #15621 [Verbose] > │ let v13 : US0 = US0_1(v12) │
00:05:57 #15622 [Verbose] > │ v1.l0 <- v13 │
00:05:57 #15623 [Verbose] > │ v12 │
00:05:57 #15624 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) = │
00:05:57 #15625 [Verbose] > │ let v2 : US0 = US0_0(v1) │
00:05:57 #15626 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:05:57 #15627 [Verbose] > │ closure2(v0, v3) │
00:05:57 #15628 [Verbose] > │ and method4 (v0 : int32, v1 : UH0) : US1 = │
00:05:57 #15629 [Verbose] > │ match v1 with │
00:05:57 #15630 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:05:57 #15631 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:05:57 #15632 [Verbose] > │ if v4 then │
00:05:57 #15633 [Verbose] > │ US1_0(v2) │
00:05:57 #15634 [Verbose] > │ else │
00:05:57 #15635 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:05:57 #15636 [Verbose] > │ let v7 : UH0 = v3 () │
00:05:57 #15637 [Verbose] > │ method4(v6, v7) │
00:05:57 #15638 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:57 #15639 [Verbose] > │ US1_1 │
00:05:57 #15640 [Verbose] > │ and method5 (v0 : UH1, v1 : UH1) : UH1 = │
00:05:57 #15641 [Verbose] > │ match v0 with │
00:05:57 #15642 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:57 #15643 [Verbose] > │ let v4 : UH1 = UH1_1(v2, v1) │
00:05:57 #15644 [Verbose] > │ method5(v3, v4) │
00:05:57 #15645 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:57 #15646 [Verbose] > │ v1 │
00:05:57 #15647 [Verbose] > │ and method3 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 = │
00:05:57 #15648 [Verbose] > │ let v3 : US1 = method4(v2, v0) │
00:05:57 #15649 [Verbose] > │ match v3 with │
00:05:57 #15650 [Verbose] > │ | US1_0(v4) -> (* Some *) │
00:05:57 #15651 [Verbose] > │ let v5 : bool = v4 < 5 │
00:05:57 #15652 [Verbose] > │ if v5 then │
00:05:57 #15653 [Verbose] > │ let v6 : UH1 = UH1_1(v4, v1) │
00:05:57 #15654 [Verbose] > │ let v7 : int32 = v2 + 1 │
00:05:57 #15655 [Verbose] > │ method3(v0, v6, v7) │
00:05:57 #15656 [Verbose] > │ else │
00:05:57 #15657 [Verbose] > │ let v9 : UH1 = UH1_0 │
00:05:57 #15658 [Verbose] > │ method5(v1, v9) │
00:05:57 #15659 [Verbose] > │ | _ -> │
00:05:57 #15660 [Verbose] > │ let v12 : UH1 = UH1_0 │
00:05:57 #15661 [Verbose] > │ method5(v1, v12) │
00:05:57 #15662 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 = │
00:05:57 #15663 [Verbose] > │ match v0 with │
00:05:57 #15664 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:57 #15665 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:05:57 #15666 [Verbose] > │ method6(v3, v4) │
00:05:57 #15667 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:57 #15668 [Verbose] > │ v1 │
00:05:57 #15669 [Verbose] > │ and method7 (v0 : bool) : bool = │
00:05:57 #15670 [Verbose] > │ v0 │
00:05:57 #15671 [Verbose] > │ and method0 () : unit = │
00:05:57 #15672 [Verbose] > │ let v0 : int32 = 0 │
00:05:57 #15673 [Verbose] > │ let v1 : UH0 = method1(v0) │
00:05:57 #15674 [Verbose] > │ let v2 : (unit -> UH0) = closure1(v1) │
00:05:57 #15675 [Verbose] > │ let v3 : (unit -> UH0) = method2(v1, v2) │
00:05:57 #15676 [Verbose] > │ let v4 : UH0 = v3 () │
00:05:57 #15677 [Verbose] > │ let v5 : UH1 = UH1_0 │
00:05:57 #15678 [Verbose] > │ let v6 : int32 = 0 │
00:05:57 #15679 [Verbose] > │ let v7 : UH1 = method3(v4, v5, v6) │
00:05:57 #15680 [Verbose] > │ let v8 : int32 = 0 │
00:05:57 #15681 [Verbose] > │ let v9 : int32 = method6(v7, v8) │
00:05:57 #15682 [Verbose] > │ let v10 : string = $"%A{v9}" │
00:05:57 #15683 [Verbose] > │ System.Console.WriteLine v10 │
00:05:57 #15684 [Verbose] > │ let v11 : bool = v9 = 10 │
00:05:57 #15685 [Verbose] > │ let v13 : bool = │
00:05:57 #15686 [Verbose] > │ if v11 then │
00:05:57 #15687 [Verbose] > │ true │
00:05:57 #15688 [Verbose] > │ else │
00:05:57 #15689 [Verbose] > │ method7(v11) │
00:05:57 #15690 [Verbose] > │ let v14 : string = $"__expect / actual: %A{v9} / expected: %A{10}" │
00:05:57 #15691 [Verbose] > │ let v15 : bool = v13 = false │
00:05:57 #15692 [Verbose] > │ if v15 then │
00:05:57 #15693 [Verbose] > │ failwith<unit> v14 │
00:05:57 #15694 [Verbose] > │ method0() │
00:05:57 #15695 [Verbose] > │ │
00:05:57 #15696 [Verbose] > │ print_and_return / x: 0 │
00:05:57 #15697 [Verbose] > │ print_and_return / x: 1 │
00:05:57 #15698 [Verbose] > │ print_and_return / x: 2 │
00:05:57 #15699 [Verbose] > │ print_and_return / x: 3 │
00:05:57 #15700 [Verbose] > │ print_and_return / x: 4 │
00:05:57 #15701 [Verbose] > │ print_and_return / x: 5 │
00:05:57 #15702 [Verbose] > │ 10 │
00:05:57 #15703 [Verbose] > │ │
00:05:57 #15704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:57 #15705 [Verbose] >
00:05:57 #15706 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:57 #15707 [Verbose] > // // test
00:05:57 #15708 [Verbose] >
00:05:57 #15709 [Verbose] > stream.new_finite_stream print_and_return 10i32
00:05:57 #15710 [Verbose] > |> stream.memoize
00:05:57 #15711 [Verbose] > |> fun list =>
00:05:57 #15712 [Verbose] > inl list = list ()
00:05:57 #15713 [Verbose] > fun n =>
00:05:57 #15714 [Verbose] > list |> stream.try_item n
00:05:57 #15715 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)
00:05:57 #15716 [Verbose] > |> listm'.sum
00:05:57 #15717 [Verbose] > |> _assert_eq 10
00:05:57 #15718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2959-5954-51f4f2a563a0\main.spi
00:05:57 #15719 [Verbose] >
00:05:57 #15720 [Verbose] > ╭─[ 614.78ms - stdout ]────────────────────────────────────────────────────────╮
00:05:57 #15721 [Verbose] > │ type UH0 = │
00:05:57 #15722 [Verbose] > │ | UH0_0 of int32 * (unit -> UH0) │
00:05:57 #15723 [Verbose] > │ | UH0_1 │
00:05:57 #15724 [Verbose] > │ and [<Struct>] US0 = │
00:05:57 #15725 [Verbose] > │ | US0_0 of f0_0 : (unit -> UH0) │
00:05:57 #15726 [Verbose] > │ | US0_1 of f1_0 : UH0 │
00:05:57 #15727 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:05:57 #15728 [Verbose] > │ and UH1 = │
00:05:57 #15729 [Verbose] > │ | UH1_0 │
00:05:57 #15730 [Verbose] > │ | UH1_1 of int32 * UH1 │
00:05:57 #15731 [Verbose] > │ and [<Struct>] US1 = │
00:05:57 #15732 [Verbose] > │ | US1_0 of f0_0 : int32 │
00:05:57 #15733 [Verbose] > │ | US1_1 │
00:05:57 #15734 [Verbose] > │ let rec closure10 () () : UH0 = │
00:05:57 #15735 [Verbose] > │ UH0_1 │
00:05:57 #15736 [Verbose] > │ and closure9 () () : UH0 = │
00:05:57 #15737 [Verbose] > │ printfn $"print_and_return / x: {9}" │
00:05:57 #15738 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:05:57 #15739 [Verbose] > │ UH0_0(9, v0) │
00:05:57 #15740 [Verbose] > │ and closure8 () () : UH0 = │
00:05:57 #15741 [Verbose] > │ printfn $"print_and_return / x: {8}" │
00:05:57 #15742 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:05:57 #15743 [Verbose] > │ UH0_0(8, v0) │
00:05:57 #15744 [Verbose] > │ and closure7 () () : UH0 = │
00:05:57 #15745 [Verbose] > │ printfn $"print_and_return / x: {7}" │
00:05:57 #15746 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:05:57 #15747 [Verbose] > │ UH0_0(7, v0) │
00:05:57 #15748 [Verbose] > │ and closure6 () () : UH0 = │
00:05:57 #15749 [Verbose] > │ printfn $"print_and_return / x: {6}" │
00:05:57 #15750 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:05:57 #15751 [Verbose] > │ UH0_0(6, v0) │
00:05:57 #15752 [Verbose] > │ and closure5 () () : UH0 = │
00:05:57 #15753 [Verbose] > │ printfn $"print_and_return / x: {5}" │
00:05:57 #15754 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:05:57 #15755 [Verbose] > │ UH0_0(5, v0) │
00:05:57 #15756 [Verbose] > │ and closure4 () () : UH0 = │
00:05:57 #15757 [Verbose] > │ printfn $"print_and_return / x: {4}" │
00:05:57 #15758 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:05:57 #15759 [Verbose] > │ UH0_0(4, v0) │
00:05:57 #15760 [Verbose] > │ and closure3 () () : UH0 = │
00:05:57 #15761 [Verbose] > │ printfn $"print_and_return / x: {3}" │
00:05:57 #15762 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:05:57 #15763 [Verbose] > │ UH0_0(3, v0) │
00:05:57 #15764 [Verbose] > │ and closure2 () () : UH0 = │
00:05:57 #15765 [Verbose] > │ printfn $"print_and_return / x: {2}" │
00:05:57 #15766 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:05:57 #15767 [Verbose] > │ UH0_0(2, v0) │
00:05:57 #15768 [Verbose] > │ and closure1 () () : UH0 = │
00:05:57 #15769 [Verbose] > │ printfn $"print_and_return / x: {1}" │
00:05:57 #15770 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:05:57 #15771 [Verbose] > │ UH0_0(1, v0) │
00:05:57 #15772 [Verbose] > │ and closure0 () () : UH0 = │
00:05:57 #15773 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:05:57 #15774 [Verbose] > │ UH0_0(0, v0) │
00:05:57 #15775 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 = │
00:05:57 #15776 [Verbose] > │ let v1 : US0 = v0.l0 │
00:05:57 #15777 [Verbose] > │ match v1 with │
00:05:57 #15778 [Verbose] > │ | US0_1(v2) -> (* Computed *) │
00:05:57 #15779 [Verbose] > │ v2 │
00:05:57 #15780 [Verbose] > │ | US0_0(v3) -> (* NotComputed *) │
00:05:57 #15781 [Verbose] > │ let v4 : UH0 = v3 () │
00:05:57 #15782 [Verbose] > │ let v13 : UH0 = │
00:05:57 #15783 [Verbose] > │ match v4 with │
00:05:57 #15784 [Verbose] > │ | UH0_0(v6, v7) -> (* StreamCons *) │
00:05:57 #15785 [Verbose] > │ let v8 : US0 = US0_0(v7) │
00:05:57 #15786 [Verbose] > │ let v9 : Mut0 = {l0 = v8} : Mut0 │
00:05:57 #15787 [Verbose] > │ let v10 : (unit -> UH0) = closure11(v9) │
00:05:57 #15788 [Verbose] > │ UH0_0(v6, v10) │
00:05:57 #15789 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:57 #15790 [Verbose] > │ UH0_1 │
00:05:57 #15791 [Verbose] > │ let v14 : US0 = US0_1(v13) │
00:05:57 #15792 [Verbose] > │ v0.l0 <- v14 │
00:05:57 #15793 [Verbose] > │ v13 │
00:05:57 #15794 [Verbose] > │ and method2 (v0 : int32, v1 : UH0) : US1 = │
00:05:57 #15795 [Verbose] > │ match v1 with │
00:05:57 #15796 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:05:57 #15797 [Verbose] > │ let v4 : bool = v0 <= 0 │
00:05:57 #15798 [Verbose] > │ if v4 then │
00:05:57 #15799 [Verbose] > │ US1_0(v2) │
00:05:57 #15800 [Verbose] > │ else │
00:05:57 #15801 [Verbose] > │ let v6 : int32 = v0 - 1 │
00:05:57 #15802 [Verbose] > │ let v7 : UH0 = v3 () │
00:05:57 #15803 [Verbose] > │ method2(v6, v7) │
00:05:57 #15804 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:57 #15805 [Verbose] > │ US1_1 │
00:05:57 #15806 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 = │
00:05:57 #15807 [Verbose] > │ match v0 with │
00:05:57 #15808 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:57 #15809 [Verbose] > │ let v4 : UH1 = UH1_1(v2, v1) │
00:05:57 #15810 [Verbose] > │ method3(v3, v4) │
00:05:57 #15811 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:57 #15812 [Verbose] > │ v1 │
00:05:57 #15813 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 = │
00:05:57 #15814 [Verbose] > │ let v3 : US1 = method2(v2, v0) │
00:05:57 #15815 [Verbose] > │ match v3 with │
00:05:57 #15816 [Verbose] > │ | US1_0(v4) -> (* Some *) │
00:05:57 #15817 [Verbose] > │ let v5 : bool = v4 < 5 │
00:05:57 #15818 [Verbose] > │ if v5 then │
00:05:57 #15819 [Verbose] > │ let v6 : UH1 = UH1_1(v4, v1) │
00:05:57 #15820 [Verbose] > │ let v7 : int32 = v2 + 1 │
00:05:57 #15821 [Verbose] > │ method1(v0, v6, v7) │
00:05:57 #15822 [Verbose] > │ else │
00:05:57 #15823 [Verbose] > │ let v9 : UH1 = UH1_0 │
00:05:57 #15824 [Verbose] > │ method3(v1, v9) │
00:05:57 #15825 [Verbose] > │ | _ -> │
00:05:57 #15826 [Verbose] > │ let v12 : UH1 = UH1_0 │
00:05:57 #15827 [Verbose] > │ method3(v1, v12) │
00:05:57 #15828 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 = │
00:05:57 #15829 [Verbose] > │ match v0 with │
00:05:57 #15830 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:57 #15831 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:05:57 #15832 [Verbose] > │ method4(v3, v4) │
00:05:57 #15833 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:57 #15834 [Verbose] > │ v1 │
00:05:57 #15835 [Verbose] > │ and method5 (v0 : bool) : bool = │
00:05:57 #15836 [Verbose] > │ v0 │
00:05:57 #15837 [Verbose] > │ and method0 () : unit = │
00:05:57 #15838 [Verbose] > │ printfn $"print_and_return / x: {0}" │
00:05:58 #15839 [Verbose] > │ let v0 : (unit -> UH0) = closure0() │
00:05:58 #15840 [Verbose] > │ let v1 : US0 = US0_0(v0) │
00:05:58 #15841 [Verbose] > │ let v2 : Mut0 = {l0 = v1} : Mut0 │
00:05:58 #15842 [Verbose] > │ let v3 : US0 = v2.l0 │
00:05:58 #15843 [Verbose] > │ let v18 : UH0 = │
00:05:58 #15844 [Verbose] > │ match v3 with │
00:05:58 #15845 [Verbose] > │ | US0_1(v4) -> (* Computed *) │
00:05:58 #15846 [Verbose] > │ v4 │
00:05:58 #15847 [Verbose] > │ | US0_0(v5) -> (* NotComputed *) │
00:05:58 #15848 [Verbose] > │ let v6 : UH0 = v5 () │
00:05:58 #15849 [Verbose] > │ let v15 : UH0 = │
00:05:58 #15850 [Verbose] > │ match v6 with │
00:05:58 #15851 [Verbose] > │ | UH0_0(v8, v9) -> (* StreamCons *) │
00:05:58 #15852 [Verbose] > │ let v10 : US0 = US0_0(v9) │
00:05:58 #15853 [Verbose] > │ let v11 : Mut0 = {l0 = v10} : Mut0 │
00:05:58 #15854 [Verbose] > │ let v12 : (unit -> UH0) = closure11(v11) │
00:05:58 #15855 [Verbose] > │ UH0_0(v8, v12) │
00:05:58 #15856 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:05:58 #15857 [Verbose] > │ UH0_1 │
00:05:58 #15858 [Verbose] > │ let v16 : US0 = US0_1(v15) │
00:05:58 #15859 [Verbose] > │ v2.l0 <- v16 │
00:05:58 #15860 [Verbose] > │ v15 │
00:05:58 #15861 [Verbose] > │ let v19 : UH1 = UH1_0 │
00:05:58 #15862 [Verbose] > │ let v20 : int32 = 0 │
00:05:58 #15863 [Verbose] > │ let v21 : UH1 = method1(v18, v19, v20) │
00:05:58 #15864 [Verbose] > │ let v22 : int32 = 0 │
00:05:58 #15865 [Verbose] > │ let v23 : int32 = method4(v21, v22) │
00:05:58 #15866 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:05:58 #15867 [Verbose] > │ System.Console.WriteLine v24 │
00:05:58 #15868 [Verbose] > │ let v25 : bool = v23 = 10 │
00:05:58 #15869 [Verbose] > │ let v27 : bool = │
00:05:58 #15870 [Verbose] > │ if v25 then │
00:05:58 #15871 [Verbose] > │ true │
00:05:58 #15872 [Verbose] > │ else │
00:05:58 #15873 [Verbose] > │ method5(v25) │
00:05:58 #15874 [Verbose] > │ let v28 : string = $"__expect / actual: %A{v23} / expected: %A{10}" │
00:05:58 #15875 [Verbose] > │ let v29 : bool = v27 = false │
00:05:58 #15876 [Verbose] > │ if v29 then │
00:05:58 #15877 [Verbose] > │ failwith<unit> v28 │
00:05:58 #15878 [Verbose] > │ method0() │
00:05:58 #15879 [Verbose] > │ │
00:05:58 #15880 [Verbose] > │ print_and_return / x: 0 │
00:05:58 #15881 [Verbose] > │ print_and_return / x: 1 │
00:05:58 #15882 [Verbose] > │ print_and_return / x: 2 │
00:05:58 #15883 [Verbose] > │ print_and_return / x: 3 │
00:05:58 #15884 [Verbose] > │ print_and_return / x: 4 │
00:05:58 #15885 [Verbose] > │ print_and_return / x: 5 │
00:05:58 #15886 [Verbose] > │ 10 │
00:05:58 #15887 [Verbose] > │ │
00:05:58 #15888 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:58 #15889 [Verbose] >
00:05:58 #15890 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:58 #15891 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:58 #15892 [Verbose] > │ ## memoize │
00:05:58 #15893 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:58 #15894 [Verbose] >
00:05:58 #15895 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:58 #15896 [Verbose] > inl memoize seq =
00:05:58 #15897 [Verbose] > inl state = mut [[]]
00:05:58 #15898 [Verbose] > fun n =>
00:05:58 #15899 [Verbose] > match *state |> listm'.try_find (fun (n', _) => n' = n) with
00:05:58 #15900 [Verbose] > | Some (_, v) => v
00:05:58 #15901 [Verbose] > | None =>
00:05:58 #15902 [Verbose] > inl new_state = seq n
00:05:58 #15903 [Verbose] > state <- (n, new_state) :: *state
00:05:58 #15904 [Verbose] > new_state
00:05:58 #15905 [Verbose] >
00:05:58 #15906 [Verbose] > inl memoize_ seq =
00:05:58 #15907 [Verbose] > inl state = mut [[]]
00:05:58 #15908 [Verbose] > fun n =>
00:05:58 #15909 [Verbose] > match *state |> listm'.try_find_ (fun (n', _) => n' = n) with
00:05:58 #15910 [Verbose] > | Some (_, v) => v
00:05:58 #15911 [Verbose] > | None =>
00:05:58 #15912 [Verbose] > inl new_state = seq n
00:05:58 #15913 [Verbose] > state <- (n, new_state) :: *state
00:05:58 #15914 [Verbose] > new_state
00:05:58 #15915 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3033-3333-3aa958c9515b\main.spi
00:05:58 #15916 [Verbose] >
00:05:58 #15917 [Verbose] > ╭─[ 218.93ms - stdout ]────────────────────────────────────────────────────────╮
00:05:58 #15918 [Verbose] > │ () │
00:05:58 #15919 [Verbose] > │ │
00:05:58 #15920 [Verbose] > │ │
00:05:58 #15921 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:58 #15922 [Verbose] >
00:05:58 #15923 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:58 #15924 [Verbose] > // // test
00:05:58 #15925 [Verbose] >
00:05:58 #15926 [Verbose] > inl seq =
00:05:58 #15927 [Verbose] > fun n =>
00:05:58 #15928 [Verbose] > n |> print_and_return |> Some
00:05:58 #15929 [Verbose] > |> memoize_
00:05:58 #15930 [Verbose] >
00:05:58 #15931 [Verbose] > seq
00:05:58 #15932 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)
00:05:58 #15933 [Verbose] > |> listm'.sum
00:05:58 #15934 [Verbose] > |> _assert_eq 10
00:05:58 #15935 [Verbose] >
00:05:58 #15936 [Verbose] > seq
00:05:58 #15937 [Verbose] > |> take_while_ (fun n _ => n < 5)
00:05:58 #15938 [Verbose] > |> listm'.sum
00:05:58 #15939 [Verbose] > |> _assert_eq 10
00:05:58 #15940 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3055-5527-5d8a3b4c6439\main.spi
00:05:58 #15941 [Verbose] >
00:05:58 #15942 [Verbose] > ╭─[ 493.03ms - stdout ]────────────────────────────────────────────────────────╮
00:05:58 #15943 [Verbose] > │ type [<Struct>] US0 = │
00:05:58 #15944 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:05:58 #15945 [Verbose] > │ | US0_1 │
00:05:58 #15946 [Verbose] > │ and UH0 = │
00:05:58 #15947 [Verbose] > │ | UH0_0 │
00:05:58 #15948 [Verbose] > │ | UH0_1 of int32 * US0 * UH0 │
00:05:58 #15949 [Verbose] > │ and Mut0 = {mutable l0 : UH0} │
00:05:58 #15950 [Verbose] > │ and UH1 = │
00:05:58 #15951 [Verbose] > │ | UH1_0 │
00:05:58 #15952 [Verbose] > │ | UH1_1 of int32 * UH1 │
00:05:58 #15953 [Verbose] > │ and [<Struct>] US1 = │
00:05:58 #15954 [Verbose] > │ | US1_0 of f0_0 : int32 * f0_1 : US0 │
00:05:58 #15955 [Verbose] > │ | US1_1 │
00:05:58 #15956 [Verbose] > │ let rec method2 (v0 : int32, v1 : UH0) : US1 = │
00:05:58 #15957 [Verbose] > │ match v1 with │
00:05:58 #15958 [Verbose] > │ | UH0_1(v3, v4, v5) -> (* Cons *) │
00:05:58 #15959 [Verbose] > │ let v6 : bool = v3 = v0 │
00:05:58 #15960 [Verbose] > │ if v6 then │
00:05:58 #15961 [Verbose] > │ US1_0(v3, v4) │
00:05:58 #15962 [Verbose] > │ else │
00:05:58 #15963 [Verbose] > │ method2(v0, v5) │
00:05:58 #15964 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:05:58 #15965 [Verbose] > │ US1_1 │
00:05:58 #15966 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 = │
00:05:58 #15967 [Verbose] > │ match v0 with │
00:05:58 #15968 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:58 #15969 [Verbose] > │ let v4 : UH1 = UH1_1(v2, v1) │
00:05:58 #15970 [Verbose] > │ method3(v3, v4) │
00:05:58 #15971 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:58 #15972 [Verbose] > │ v1 │
00:05:58 #15973 [Verbose] > │ and method1 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 = │
00:05:58 #15974 [Verbose] > │ let v3 : UH0 = v0.l0 │
00:05:58 #15975 [Verbose] > │ let v4 : US1 = method2(v2, v3) │
00:05:58 #15976 [Verbose] > │ let v12 : US0 = │
00:05:58 #15977 [Verbose] > │ match v4 with │
00:05:58 #15978 [Verbose] > │ | US1_1 -> (* None *) │
00:05:58 #15979 [Verbose] > │ printfn $"print_and_return / x: {v2}" │
00:05:58 #15980 [Verbose] > │ let v7 : UH0 = v0.l0 │
00:05:58 #15981 [Verbose] > │ let v8 : US0 = US0_0(v2) │
00:05:58 #15982 [Verbose] > │ let v9 : UH0 = UH0_1(v2, v8, v7) │
00:05:58 #15983 [Verbose] > │ v0.l0 <- v9 │
00:05:58 #15984 [Verbose] > │ US0_0(v2) │
00:05:58 #15985 [Verbose] > │ | US1_0(v5, v6) -> (* Some *) │
00:05:58 #15986 [Verbose] > │ v6 │
00:05:58 #15987 [Verbose] > │ match v12 with │
00:05:58 #15988 [Verbose] > │ | US0_0(v13) -> (* Some *) │
00:05:58 #15989 [Verbose] > │ let v14 : bool = v13 < 5 │
00:05:58 #15990 [Verbose] > │ if v14 then │
00:05:58 #15991 [Verbose] > │ let v15 : UH1 = UH1_1(v13, v1) │
00:05:58 #15992 [Verbose] > │ let v16 : int32 = v2 + 1 │
00:05:58 #15993 [Verbose] > │ method1(v0, v15, v16) │
00:05:58 #15994 [Verbose] > │ else │
00:05:58 #15995 [Verbose] > │ let v18 : UH1 = UH1_0 │
00:05:58 #15996 [Verbose] > │ method3(v1, v18) │
00:05:58 #15997 [Verbose] > │ | _ -> │
00:05:58 #15998 [Verbose] > │ let v21 : UH1 = UH1_0 │
00:05:58 #15999 [Verbose] > │ method3(v1, v21) │
00:05:58 #16000 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 = │
00:05:58 #16001 [Verbose] > │ match v0 with │
00:05:58 #16002 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:05:58 #16003 [Verbose] > │ let v4 : int32 = v1 + v2 │
00:05:58 #16004 [Verbose] > │ method4(v3, v4) │
00:05:58 #16005 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:05:58 #16006 [Verbose] > │ v1 │
00:05:58 #16007 [Verbose] > │ and method5 (v0 : bool) : bool = │
00:05:58 #16008 [Verbose] > │ v0 │
00:05:58 #16009 [Verbose] > │ and method6 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 = │
00:05:58 #16010 [Verbose] > │ let v3 : UH0 = v0.l0 │
00:05:58 #16011 [Verbose] > │ let v4 : US1 = method2(v2, v3) │
00:05:58 #16012 [Verbose] > │ let v12 : US0 = │
00:05:58 #16013 [Verbose] > │ match v4 with │
00:05:58 #16014 [Verbose] > │ | US1_1 -> (* None *) │
00:05:58 #16015 [Verbose] > │ printfn $"print_and_return / x: {v2}" │
00:05:58 #16016 [Verbose] > │ let v7 : UH0 = v0.l0 │
00:05:58 #16017 [Verbose] > │ let v8 : US0 = US0_0(v2) │
00:05:58 #16018 [Verbose] > │ let v9 : UH0 = UH0_1(v2, v8, v7) │
00:05:58 #16019 [Verbose] > │ v0.l0 <- v9 │
00:05:58 #16020 [Verbose] > │ US0_0(v2) │
00:05:58 #16021 [Verbose] > │ | US1_0(v5, v6) -> (* Some *) │
00:05:58 #16022 [Verbose] > │ v6 │
00:05:58 #16023 [Verbose] > │ match v12 with │
00:05:58 #16024 [Verbose] > │ | US0_0(v13) -> (* Some *) │
00:05:58 #16025 [Verbose] > │ let v14 : bool = v13 < 5 │
00:05:58 #16026 [Verbose] > │ if v14 then │
00:05:58 #16027 [Verbose] > │ let v15 : UH1 = UH1_1(v13, v1) │
00:05:58 #16028 [Verbose] > │ let v16 : int32 = v2 + 1 │
00:05:58 #16029 [Verbose] > │ method6(v0, v15, v16) │
00:05:58 #16030 [Verbose] > │ else │
00:05:58 #16031 [Verbose] > │ let v18 : UH1 = UH1_0 │
00:05:58 #16032 [Verbose] > │ method3(v1, v18) │
00:05:58 #16033 [Verbose] > │ | _ -> │
00:05:58 #16034 [Verbose] > │ let v21 : UH1 = UH1_0 │
00:05:58 #16035 [Verbose] > │ method3(v1, v21) │
00:05:58 #16036 [Verbose] > │ and method0 () : unit = │
00:05:58 #16037 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:05:58 #16038 [Verbose] > │ let v1 : Mut0 = {l0 = v0} : Mut0 │
00:05:58 #16039 [Verbose] > │ let v2 : UH1 = UH1_0 │
00:05:58 #16040 [Verbose] > │ let v3 : int32 = 0 │
00:05:58 #16041 [Verbose] > │ let v4 : UH1 = method1(v1, v2, v3) │
00:05:58 #16042 [Verbose] > │ let v5 : int32 = 0 │
00:05:58 #16043 [Verbose] > │ let v6 : int32 = method4(v4, v5) │
00:05:58 #16044 [Verbose] > │ let v7 : string = $"%A{v6}" │
00:05:58 #16045 [Verbose] > │ System.Console.WriteLine v7 │
00:05:58 #16046 [Verbose] > │ let v8 : bool = v6 = 10 │
00:05:58 #16047 [Verbose] > │ let v10 : bool = │
00:05:58 #16048 [Verbose] > │ if v8 then │
00:05:58 #16049 [Verbose] > │ true │
00:05:58 #16050 [Verbose] > │ else │
00:05:58 #16051 [Verbose] > │ method5(v8) │
00:05:58 #16052 [Verbose] > │ let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}" │
00:05:58 #16053 [Verbose] > │ let v12 : bool = v10 = false │
00:05:58 #16054 [Verbose] > │ if v12 then │
00:05:58 #16055 [Verbose] > │ failwith<unit> v11 │
00:05:58 #16056 [Verbose] > │ let v13 : UH1 = UH1_0 │
00:05:58 #16057 [Verbose] > │ let v14 : int32 = 0 │
00:05:58 #16058 [Verbose] > │ let v15 : UH1 = method6(v1, v13, v14) │
00:05:58 #16059 [Verbose] > │ let v16 : int32 = 0 │
00:05:58 #16060 [Verbose] > │ let v17 : int32 = method4(v15, v16) │
00:05:58 #16061 [Verbose] > │ let v18 : string = $"%A{v17}" │
00:05:58 #16062 [Verbose] > │ System.Console.WriteLine v18 │
00:05:58 #16063 [Verbose] > │ let v19 : bool = v17 = 10 │
00:05:58 #16064 [Verbose] > │ let v21 : bool = │
00:05:58 #16065 [Verbose] > │ if v19 then │
00:05:58 #16066 [Verbose] > │ true │
00:05:58 #16067 [Verbose] > │ else │
00:05:58 #16068 [Verbose] > │ method5(v19) │
00:05:58 #16069 [Verbose] > │ let v22 : string = $"__expect / actual: %A{v17} / expected: %A{10}" │
00:05:58 #16070 [Verbose] > │ let v23 : bool = v21 = false │
00:05:58 #16071 [Verbose] > │ if v23 then │
00:05:58 #16072 [Verbose] > │ failwith<unit> v22 │
00:05:58 #16073 [Verbose] > │ method0() │
00:05:58 #16074 [Verbose] > │ │
00:05:58 #16075 [Verbose] > │ print_and_return / x: 0 │
00:05:58 #16076 [Verbose] > │ print_and_return / x: 1 │
00:05:58 #16077 [Verbose] > │ print_and_return / x: 2 │
00:05:58 #16078 [Verbose] > │ print_and_return / x: 3 │
00:05:58 #16079 [Verbose] > │ print_and_return / x: 4 │
00:05:58 #16080 [Verbose] > │ print_and_return / x: 5 │
00:05:58 #16081 [Verbose] > │ 10 │
00:05:58 #16082 [Verbose] > │ 10 │
00:05:58 #16083 [Verbose] > │ │
00:05:58 #16084 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:58 #16085 [Verbose] >
00:05:58 #16086 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:05:58 #16087 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:05:58 #16088 [Verbose] > │ ## iterate │
00:05:58 #16089 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:58 #16090 [Verbose] >
00:05:58 #16091 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:58 #16092 [Verbose] > inl iterate f x0 num_steps =
00:05:58 #16093 [Verbose] > inl rec loop x n =
00:05:58 #16094 [Verbose] > if n <= 0
00:05:58 #16095 [Verbose] > then x
00:05:58 #16096 [Verbose] > else loop (f x) (n - 1)
00:05:58 #16097 [Verbose] > loop x0 num_steps
00:05:58 #16098 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3113-1317-1857e98eb910\main.spi
00:05:59 #16099 [Verbose] >
00:05:59 #16100 [Verbose] > ╭─[ 236.84ms - stdout ]────────────────────────────────────────────────────────╮
00:05:59 #16101 [Verbose] > │ () │
00:05:59 #16102 [Verbose] > │ │
00:05:59 #16103 [Verbose] > │ │
00:05:59 #16104 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:59 #16105 [Verbose] >
00:05:59 #16106 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:59 #16107 [Verbose] > // // test
00:05:59 #16108 [Verbose] >
00:05:59 #16109 [Verbose] > 10i32 |> iterate ((*) 2) 1i32
00:05:59 #16110 [Verbose] > |> _assert_eq 1024
00:05:59 #16111 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3137-3701-390dff35653a\main.spi
00:05:59 #16112 [Verbose] >
00:05:59 #16113 [Verbose] > ╭─[ 246.00ms - stdout ]────────────────────────────────────────────────────────╮
00:05:59 #16114 [Verbose] > │ let rec method0 () : unit = │
00:05:59 #16115 [Verbose] > │ let v0 : string = $"%A{1024}" │
00:05:59 #16116 [Verbose] > │ System.Console.WriteLine v0 │
00:05:59 #16117 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}" │
00:05:59 #16118 [Verbose] > │ () │
00:05:59 #16119 [Verbose] > │ method0() │
00:05:59 #16120 [Verbose] > │ │
00:05:59 #16121 [Verbose] > │ 1024 │
00:05:59 #16122 [Verbose] > │ │
00:05:59 #16123 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:59 #16124 [Verbose] >
00:05:59 #16125 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:59 #16126 [Verbose] > inl iterate_ f x0 num_steps =
00:05:59 #16127 [Verbose] > let rec loop x n =
00:05:59 #16128 [Verbose] > if n <= 0
00:05:59 #16129 [Verbose] > then x
00:05:59 #16130 [Verbose] > else loop (f x) (n - 1)
00:05:59 #16131 [Verbose] > loop x0 num_steps
00:05:59 #16132 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3162-6225-6e0a02d68128\main.spi
00:05:59 #16133 [Verbose] >
00:05:59 #16134 [Verbose] > ╭─[ 289.94ms - stdout ]────────────────────────────────────────────────────────╮
00:05:59 #16135 [Verbose] > │ () │
00:05:59 #16136 [Verbose] > │ │
00:05:59 #16137 [Verbose] > │ │
00:05:59 #16138 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:59 #16139 [Verbose] >
00:05:59 #16140 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:59 #16141 [Verbose] > // // test
00:05:59 #16142 [Verbose] >
00:05:59 #16143 [Verbose] > 10i32 |> iterate_ ((*) 2) 1i32
00:05:59 #16144 [Verbose] > |> _assert_eq 1024
00:05:59 #16145 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3191-9140-9ee5467fea81\main.spi
00:05:59 #16146 [Verbose] >
00:05:59 #16147 [Verbose] > ╭─[ 258.82ms - stdout ]────────────────────────────────────────────────────────╮
00:05:59 #16148 [Verbose] > │ let rec method1 (v0 : int32, v1 : int32) : int32 = │
00:05:59 #16149 [Verbose] > │ let v2 : bool = v1 <= 0 │
00:05:59 #16150 [Verbose] > │ if v2 then │
00:05:59 #16151 [Verbose] > │ v0 │
00:05:59 #16152 [Verbose] > │ else │
00:05:59 #16153 [Verbose] > │ let v3 : int32 = 2 * v0 │
00:05:59 #16154 [Verbose] > │ let v4 : int32 = v1 - 1 │
00:05:59 #16155 [Verbose] > │ method1(v3, v4) │
00:05:59 #16156 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:05:59 #16157 [Verbose] > │ v0 │
00:05:59 #16158 [Verbose] > │ and method0 () : unit = │
00:05:59 #16159 [Verbose] > │ let v0 : int32 = 1 │
00:05:59 #16160 [Verbose] > │ let v1 : int32 = 10 │
00:05:59 #16161 [Verbose] > │ let v2 : int32 = method1(v0, v1) │
00:05:59 #16162 [Verbose] > │ let v3 : string = $"%A{v2}" │
00:05:59 #16163 [Verbose] > │ System.Console.WriteLine v3 │
00:05:59 #16164 [Verbose] > │ let v4 : bool = v2 = 1024 │
00:05:59 #16165 [Verbose] > │ let v6 : bool = │
00:05:59 #16166 [Verbose] > │ if v4 then │
00:05:59 #16167 [Verbose] > │ true │
00:05:59 #16168 [Verbose] > │ else │
00:05:59 #16169 [Verbose] > │ method2(v4) │
00:05:59 #16170 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v2} / expected: %A{1024}" │
00:05:59 #16171 [Verbose] > │ let v8 : bool = v6 = false │
00:05:59 #16172 [Verbose] > │ if v8 then │
00:05:59 #16173 [Verbose] > │ failwith<unit> v7 │
00:05:59 #16174 [Verbose] > │ method0() │
00:05:59 #16175 [Verbose] > │ │
00:05:59 #16176 [Verbose] > │ 1024 │
00:05:59 #16177 [Verbose] > │ │
00:05:59 #16178 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:05:59 #16179 [Verbose] >
00:05:59 #16180 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:05:59 #16181 [Verbose] > inl iterate' f x0 num_steps =
00:05:59 #16182 [Verbose] > listm.init num_steps id
00:05:59 #16183 [Verbose] > |> listm.fold (fun x _ => f x) x0
00:06:00 #16184 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3219-1923-199d45e29121\main.spi
00:06:00 #16185 [Verbose] >
00:06:00 #16186 [Verbose] > ╭─[ 220.41ms - stdout ]────────────────────────────────────────────────────────╮
00:06:00 #16187 [Verbose] > │ () │
00:06:00 #16188 [Verbose] > │ │
00:06:00 #16189 [Verbose] > │ │
00:06:00 #16190 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:00 #16191 [Verbose] >
00:06:00 #16192 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:00 #16193 [Verbose] > // // test
00:06:00 #16194 [Verbose] >
00:06:00 #16195 [Verbose] > 10i32 |> iterate' ((*) 2) 1i32
00:06:00 #16196 [Verbose] > |> _assert_eq 1024
00:06:00 #16197 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3241-4147-4487b72990e2\main.spi
00:06:00 #16198 [Verbose] >
00:06:00 #16199 [Verbose] > ╭─[ 226.45ms - stdout ]────────────────────────────────────────────────────────╮
00:06:00 #16200 [Verbose] > │ let rec method0 () : unit = │
00:06:00 #16201 [Verbose] > │ let v0 : string = $"%A{1024}" │
00:06:00 #16202 [Verbose] > │ System.Console.WriteLine v0 │
00:06:00 #16203 [Verbose] > │ let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}" │
00:06:00 #16204 [Verbose] > │ () │
00:06:00 #16205 [Verbose] > │ method0() │
00:06:00 #16206 [Verbose] > │ │
00:06:00 #16207 [Verbose] > │ 1024 │
00:06:00 #16208 [Verbose] > │ │
00:06:00 #16209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:00 #16210 [Verbose] >
00:06:00 #16211 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:00 #16212 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:00 #16213 [Verbose] > │ ## find_last │
00:06:00 #16214 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:00 #16215 [Verbose] >
00:06:00 #16216 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:00 #16217 [Verbose] > inl find_last forall item result. fold_fn fn target : option result =
00:06:00 #16218 [Verbose] > fold_fn (fun (item : item) (result : option result) =>
00:06:00 #16219 [Verbose] > match result with
00:06:00 #16220 [Verbose] > | None => fn item
00:06:00 #16221 [Verbose] > | result => result
00:06:00 #16222 [Verbose] > ) target (None : option result)
00:06:00 #16223 [Verbose] >
00:06:00 #16224 [Verbose] > inl array_find_last forall item result. (fn : item -> option result) (target : a
00:06:00 #16225 [Verbose] > i32 item) : option result =
00:06:00 #16226 [Verbose] > find_last am.foldBack fn target
00:06:00 #16227 [Verbose] >
00:06:00 #16228 [Verbose] > inl list_find_last forall item result. (fn : item -> option result) (target :
00:06:00 #16229 [Verbose] > list item) : option result =
00:06:00 #16230 [Verbose] > find_last listm.foldBack fn target
00:06:00 #16231 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3264-6497-64eb6047304a\main.spi
00:06:00 #16232 [Verbose] >
00:06:00 #16233 [Verbose] > ╭─[ 216.68ms - stdout ]────────────────────────────────────────────────────────╮
00:06:00 #16234 [Verbose] > │ () │
00:06:00 #16235 [Verbose] > │ │
00:06:00 #16236 [Verbose] > │ │
00:06:00 #16237 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:02 #16238 [Verbose] > [NbConvertApp] Converting notebook seq.dib.ipynb to html
00:06:02 #16239 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:06:02 #16240 [Verbose] > validate(nb)
00:06:03 #16241 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:06:03 #16242 [Verbose] > return _pygments_highlight(
00:06:04 #16243 [Verbose] > [NbConvertApp] Writing 410189 bytes to seq.dib.html
00:06:05 #16244 [Debug] executeAsync / exitCode: 0 / output.Length: 137269
00:06:05 #16245 [Debug] main / executeCommand / exitCode: 0
00:06:05 #16246 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 util.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:06:09 #16247 [Verbose] >
00:06:09 #16248 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:09 #16249 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:09 #16250 [Verbose] > │ # util │
00:06:09 #16251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:09 #16252 [Verbose] >
00:06:09 #16253 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:09 #16254 [Verbose] > // // test
00:06:09 #16255 [Verbose] >
00:06:09 #16256 [Verbose] > open testing
00:06:12 #16257 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-4428-2821-21f1a1cab5de\main.spi
00:06:13 #16258 [Verbose] >
00:06:13 #16259 [Verbose] > ╭─[ 4.58s - stdout ]───────────────────────────────────────────────────────────╮
00:06:13 #16260 [Verbose] > │ () │
00:06:13 #16261 [Verbose] > │ │
00:06:13 #16262 [Verbose] > │ │
00:06:13 #16263 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:13 #16264 [Verbose] >
00:06:13 #16265 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:13 #16266 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:13 #16267 [Verbose] > │ ## ski │
00:06:13 #16268 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:13 #16269 [Verbose] >
00:06:13 #16270 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:13 #16271 [Verbose] > union rec ski =
00:06:13 #16272 [Verbose] > | I
00:06:13 #16273 [Verbose] > | K
00:06:13 #16274 [Verbose] > | S
00:06:13 #16275 [Verbose] > | App : ski * ski
00:06:13 #16276 [Verbose] >
00:06:13 #16277 [Verbose] > inl rec eval ski =
00:06:13 #16278 [Verbose] > match ski with
00:06:13 #16279 [Verbose] > | App (App (K, x), y) => eval x
00:06:13 #16280 [Verbose] > | App (App (App (S, x), y), z) => eval (App (App (x, z), App (y, z)))
00:06:13 #16281 [Verbose] > | App (I, x) => eval x
00:06:13 #16282 [Verbose] > | App (K, x) => App (K, eval x)
00:06:13 #16283 [Verbose] > | App (f, x) => eval (App (eval f, x))
00:06:13 #16284 [Verbose] > | _ => ski
00:06:13 #16285 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-4613-1336-122fedf2e000\main.spi
00:06:14 #16286 [Verbose] >
00:06:14 #16287 [Verbose] > ╭─[ 264.15ms - stdout ]────────────────────────────────────────────────────────╮
00:06:14 #16288 [Verbose] > │ () │
00:06:14 #16289 [Verbose] > │ │
00:06:14 #16290 [Verbose] > │ │
00:06:14 #16291 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:14 #16292 [Verbose] >
00:06:14 #16293 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:14 #16294 [Verbose] > // // test
00:06:14 #16295 [Verbose] >
00:06:14 #16296 [Verbose] > eval I
00:06:14 #16297 [Verbose] > |> _assert_eq I
00:06:14 #16298 [Verbose] >
00:06:14 #16299 [Verbose] > eval (App (I, I))
00:06:14 #16300 [Verbose] > |> _assert_eq I
00:06:14 #16301 [Verbose] >
00:06:14 #16302 [Verbose] > eval (App (I, App (I, I)))
00:06:14 #16303 [Verbose] > |> _assert_eq I
00:06:14 #16304 [Verbose] >
00:06:14 #16305 [Verbose] > eval (App (App (I, I), I))
00:06:14 #16306 [Verbose] > |> _assert_eq I
00:06:14 #16307 [Verbose] >
00:06:14 #16308 [Verbose] > eval (App (App (App (I, I), I), I))
00:06:14 #16309 [Verbose] > |> _assert_eq I
00:06:14 #16310 [Verbose] >
00:06:14 #16311 [Verbose] > eval K
00:06:14 #16312 [Verbose] > |> _assert_eq K
00:06:14 #16313 [Verbose] >
00:06:14 #16314 [Verbose] > eval (App (K, I))
00:06:14 #16315 [Verbose] > |> _assert_eq (App (K, I))
00:06:14 #16316 [Verbose] >
00:06:14 #16317 [Verbose] > eval (App (K, K))
00:06:14 #16318 [Verbose] > |> _assert_eq (App (K, K))
00:06:14 #16319 [Verbose] >
00:06:14 #16320 [Verbose] > eval (App (App (K, I), K))
00:06:14 #16321 [Verbose] > |> _assert_eq I
00:06:14 #16322 [Verbose] >
00:06:14 #16323 [Verbose] > eval (App (App (K, K), I))
00:06:14 #16324 [Verbose] > |> _assert_eq K
00:06:14 #16325 [Verbose] >
00:06:14 #16326 [Verbose] > eval (App (App (App (App (K, K), I), S), K))
00:06:14 #16327 [Verbose] > |> _assert_eq S
00:06:14 #16328 [Verbose] >
00:06:14 #16329 [Verbose] > eval S
00:06:14 #16330 [Verbose] > |> _assert_eq S
00:06:14 #16331 [Verbose] >
00:06:14 #16332 [Verbose] > eval (App (App (App (S, I), I), I))
00:06:14 #16333 [Verbose] > |> _assert_eq I
00:06:14 #16334 [Verbose] >
00:06:14 #16335 [Verbose] > eval (App (App (App (S, K), K), I))
00:06:14 #16336 [Verbose] > |> _assert_eq I
00:06:14 #16337 [Verbose] >
00:06:14 #16338 [Verbose] > eval (App (App (App (S, K), I), (App (App (K, I), S))))
00:06:14 #16339 [Verbose] > |> _assert_eq I
00:06:14 #16340 [Verbose] >
00:06:14 #16341 [Verbose] > eval (App (App (K, S), App (I, App (App (App (S, K), S), I))))
00:06:14 #16342 [Verbose] > |> _assert_eq S
00:06:14 #16343 [Verbose] >
00:06:14 #16344 [Verbose] > eval (App (App (App (S, K), I), K))
00:06:14 #16345 [Verbose] > |> _assert_eq K
00:06:14 #16346 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-4639-3961-3cfb0ce9b2ca\main.spi
00:06:16 #16347 [Verbose] >
00:06:16 #16348 [Verbose] > ╭─[ 1.89s - stdout ]───────────────────────────────────────────────────────────╮
00:06:16 #16349 [Verbose] > │ type UH0 = │
00:06:16 #16350 [Verbose] > │ | UH0_0 │
00:06:16 #16351 [Verbose] > │ | UH0_1 │
00:06:16 #16352 [Verbose] > │ | UH0_2 │
00:06:16 #16353 [Verbose] > │ | UH0_3 of UH0 * UH0 │
00:06:16 #16354 [Verbose] > │ let rec method0 () : unit = │
00:06:16 #16355 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:06:16 #16356 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:06:16 #16357 [Verbose] > │ System.Console.WriteLine v1 │
00:06:16 #16358 [Verbose] > │ let v5 : UH0 = UH0_0 │
00:06:16 #16359 [Verbose] > │ let v6 : UH0 = UH0_0 │
00:06:16 #16360 [Verbose] > │ let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}" │
00:06:16 #16361 [Verbose] > │ let v8 : UH0 = UH0_0 │
00:06:16 #16362 [Verbose] > │ let v9 : string = $"%A{v8}" │
00:06:16 #16363 [Verbose] > │ System.Console.WriteLine v9 │
00:06:16 #16364 [Verbose] > │ let v13 : UH0 = UH0_0 │
00:06:16 #16365 [Verbose] > │ let v14 : UH0 = UH0_0 │
00:06:16 #16366 [Verbose] > │ let v15 : string = $"__expect / actual: %A{v13} / expected: %A{v14}" │
00:06:16 #16367 [Verbose] > │ let v16 : UH0 = UH0_0 │
00:06:16 #16368 [Verbose] > │ let v17 : string = $"%A{v16}" │
00:06:16 #16369 [Verbose] > │ System.Console.WriteLine v17 │
00:06:16 #16370 [Verbose] > │ let v21 : UH0 = UH0_0 │
00:06:16 #16371 [Verbose] > │ let v22 : UH0 = UH0_0 │
00:06:16 #16372 [Verbose] > │ let v23 : string = $"__expect / actual: %A{v21} / expected: %A{v22}" │
00:06:16 #16373 [Verbose] > │ let v24 : UH0 = UH0_0 │
00:06:16 #16374 [Verbose] > │ let v25 : string = $"%A{v24}" │
00:06:16 #16375 [Verbose] > │ System.Console.WriteLine v25 │
00:06:16 #16376 [Verbose] > │ let v29 : UH0 = UH0_0 │
00:06:16 #16377 [Verbose] > │ let v30 : UH0 = UH0_0 │
00:06:16 #16378 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v29} / expected: %A{v30}" │
00:06:16 #16379 [Verbose] > │ let v32 : UH0 = UH0_0 │
00:06:16 #16380 [Verbose] > │ let v33 : string = $"%A{v32}" │
00:06:16 #16381 [Verbose] > │ System.Console.WriteLine v33 │
00:06:16 #16382 [Verbose] > │ let v37 : UH0 = UH0_0 │
00:06:16 #16383 [Verbose] > │ let v38 : UH0 = UH0_0 │
00:06:16 #16384 [Verbose] > │ let v39 : string = $"__expect / actual: %A{v37} / expected: %A{v38}" │
00:06:16 #16385 [Verbose] > │ let v40 : UH0 = UH0_1 │
00:06:16 #16386 [Verbose] > │ let v41 : string = $"%A{v40}" │
00:06:16 #16387 [Verbose] > │ System.Console.WriteLine v41 │
00:06:16 #16388 [Verbose] > │ let v45 : UH0 = UH0_1 │
00:06:16 #16389 [Verbose] > │ let v46 : UH0 = UH0_1 │
00:06:16 #16390 [Verbose] > │ let v47 : string = $"__expect / actual: %A{v45} / expected: %A{v46}" │
00:06:16 #16391 [Verbose] > │ let v48 : UH0 = UH0_1 │
00:06:16 #16392 [Verbose] > │ let v49 : UH0 = UH0_0 │
00:06:16 #16393 [Verbose] > │ let v50 : UH0 = UH0_3(v48, v49) │
00:06:16 #16394 [Verbose] > │ let v51 : string = $"%A{v50}" │
00:06:16 #16395 [Verbose] > │ System.Console.WriteLine v51 │
00:06:16 #16396 [Verbose] > │ let v63 : UH0 = UH0_1 │
00:06:16 #16397 [Verbose] > │ let v64 : UH0 = UH0_0 │
00:06:16 #16398 [Verbose] > │ let v65 : UH0 = UH0_3(v63, v64) │
00:06:16 #16399 [Verbose] > │ let v66 : UH0 = UH0_1 │
00:06:16 #16400 [Verbose] > │ let v67 : UH0 = UH0_0 │
00:06:16 #16401 [Verbose] > │ let v68 : UH0 = UH0_3(v66, v67) │
00:06:16 #16402 [Verbose] > │ let v69 : string = $"__expect / actual: %A{v65} / expected: %A{v68}" │
00:06:16 #16403 [Verbose] > │ let v70 : UH0 = UH0_1 │
00:06:16 #16404 [Verbose] > │ let v71 : UH0 = UH0_1 │
00:06:16 #16405 [Verbose] > │ let v72 : UH0 = UH0_3(v70, v71) │
00:06:16 #16406 [Verbose] > │ let v73 : string = $"%A{v72}" │
00:06:16 #16407 [Verbose] > │ System.Console.WriteLine v73 │
00:06:16 #16408 [Verbose] > │ let v85 : UH0 = UH0_1 │
00:06:16 #16409 [Verbose] > │ let v86 : UH0 = UH0_1 │
00:06:16 #16410 [Verbose] > │ let v87 : UH0 = UH0_3(v85, v86) │
00:06:16 #16411 [Verbose] > │ let v88 : UH0 = UH0_1 │
00:06:16 #16412 [Verbose] > │ let v89 : UH0 = UH0_1 │
00:06:16 #16413 [Verbose] > │ let v90 : UH0 = UH0_3(v88, v89) │
00:06:16 #16414 [Verbose] > │ let v91 : string = $"__expect / actual: %A{v87} / expected: %A{v90}" │
00:06:16 #16415 [Verbose] > │ let v92 : UH0 = UH0_0 │
00:06:16 #16416 [Verbose] > │ let v93 : string = $"%A{v92}" │
00:06:16 #16417 [Verbose] > │ System.Console.WriteLine v93 │
00:06:16 #16418 [Verbose] > │ let v97 : UH0 = UH0_0 │
00:06:16 #16419 [Verbose] > │ let v98 : UH0 = UH0_0 │
00:06:16 #16420 [Verbose] > │ let v99 : string = $"__expect / actual: %A{v97} / expected: %A{v98}" │
00:06:16 #16421 [Verbose] > │ let v100 : UH0 = UH0_1 │
00:06:16 #16422 [Verbose] > │ let v101 : string = $"%A{v100}" │
00:06:16 #16423 [Verbose] > │ System.Console.WriteLine v101 │
00:06:16 #16424 [Verbose] > │ let v105 : UH0 = UH0_1 │
00:06:16 #16425 [Verbose] > │ let v106 : UH0 = UH0_1 │
00:06:16 #16426 [Verbose] > │ let v107 : string = $"__expect / actual: %A{v105} / expected: %A{v106}" │
00:06:16 #16427 [Verbose] > │ let v108 : UH0 = UH0_2 │
00:06:16 #16428 [Verbose] > │ let v109 : string = $"%A{v108}" │
00:06:16 #16429 [Verbose] > │ System.Console.WriteLine v109 │
00:06:16 #16430 [Verbose] > │ let v113 : UH0 = UH0_2 │
00:06:16 #16431 [Verbose] > │ let v114 : UH0 = UH0_2 │
00:06:16 #16432 [Verbose] > │ let v115 : string = $"__expect / actual: %A{v113} / expected: %A{v114}" │
00:06:16 #16433 [Verbose] > │ let v116 : UH0 = UH0_2 │
00:06:16 #16434 [Verbose] > │ let v117 : string = $"%A{v116}" │
00:06:16 #16435 [Verbose] > │ System.Console.WriteLine v117 │
00:06:16 #16436 [Verbose] > │ let v121 : UH0 = UH0_2 │
00:06:16 #16437 [Verbose] > │ let v122 : UH0 = UH0_2 │
00:06:16 #16438 [Verbose] > │ let v123 : string = $"__expect / actual: %A{v121} / expected: %A{v122}" │
00:06:16 #16439 [Verbose] > │ let v124 : UH0 = UH0_0 │
00:06:16 #16440 [Verbose] > │ let v125 : string = $"%A{v124}" │
00:06:16 #16441 [Verbose] > │ System.Console.WriteLine v125 │
00:06:16 #16442 [Verbose] > │ let v129 : UH0 = UH0_0 │
00:06:16 #16443 [Verbose] > │ let v130 : UH0 = UH0_0 │
00:06:16 #16444 [Verbose] > │ let v131 : string = $"__expect / actual: %A{v129} / expected: %A{v130}" │
00:06:16 #16445 [Verbose] > │ let v132 : UH0 = UH0_0 │
00:06:16 #16446 [Verbose] > │ let v133 : string = $"%A{v132}" │
00:06:16 #16447 [Verbose] > │ System.Console.WriteLine v133 │
00:06:16 #16448 [Verbose] > │ let v137 : UH0 = UH0_0 │
00:06:16 #16449 [Verbose] > │ let v138 : UH0 = UH0_0 │
00:06:16 #16450 [Verbose] > │ let v139 : string = $"__expect / actual: %A{v137} / expected: %A{v138}" │
00:06:16 #16451 [Verbose] > │ let v140 : UH0 = UH0_0 │
00:06:16 #16452 [Verbose] > │ let v141 : string = $"%A{v140}" │
00:06:16 #16453 [Verbose] > │ System.Console.WriteLine v141 │
00:06:16 #16454 [Verbose] > │ let v145 : UH0 = UH0_0 │
00:06:16 #16455 [Verbose] > │ let v146 : UH0 = UH0_0 │
00:06:16 #16456 [Verbose] > │ let v147 : string = $"__expect / actual: %A{v145} / expected: %A{v146}" │
00:06:16 #16457 [Verbose] > │ let v148 : UH0 = UH0_2 │
00:06:16 #16458 [Verbose] > │ let v149 : string = $"%A{v148}" │
00:06:16 #16459 [Verbose] > │ System.Console.WriteLine v149 │
00:06:16 #16460 [Verbose] > │ let v153 : UH0 = UH0_2 │
00:06:16 #16461 [Verbose] > │ let v154 : UH0 = UH0_2 │
00:06:16 #16462 [Verbose] > │ let v155 : string = $"__expect / actual: %A{v153} / expected: %A{v154}" │
00:06:16 #16463 [Verbose] > │ let v156 : UH0 = UH0_1 │
00:06:16 #16464 [Verbose] > │ let v157 : string = $"%A{v156}" │
00:06:16 #16465 [Verbose] > │ System.Console.WriteLine v157 │
00:06:16 #16466 [Verbose] > │ let v161 : UH0 = UH0_1 │
00:06:16 #16467 [Verbose] > │ let v162 : UH0 = UH0_1 │
00:06:16 #16468 [Verbose] > │ let v163 : string = $"__expect / actual: %A{v161} / expected: %A{v162}" │
00:06:16 #16469 [Verbose] > │ () │
00:06:16 #16470 [Verbose] > │ method0() │
00:06:16 #16471 [Verbose] > │ │
00:06:16 #16472 [Verbose] > │ UH0_0 │
00:06:16 #16473 [Verbose] > │ UH0_0 │
00:06:16 #16474 [Verbose] > │ UH0_0 │
00:06:16 #16475 [Verbose] > │ UH0_0 │
00:06:16 #16476 [Verbose] > │ UH0_0 │
00:06:16 #16477 [Verbose] > │ UH0_1 │
00:06:16 #16478 [Verbose] > │ UH0_3 (UH0_1, UH0_0) │
00:06:16 #16479 [Verbose] > │ UH0_3 (UH0_1, UH0_1) │
00:06:16 #16480 [Verbose] > │ UH0_0 │
00:06:16 #16481 [Verbose] > │ UH0_1 │
00:06:16 #16482 [Verbose] > │ UH0_2 │
00:06:16 #16483 [Verbose] > │ UH0_2 │
00:06:16 #16484 [Verbose] > │ UH0_0 │
00:06:16 #16485 [Verbose] > │ UH0_0 │
00:06:16 #16486 [Verbose] > │ UH0_0 │
00:06:16 #16487 [Verbose] > │ UH0_2 │
00:06:16 #16488 [Verbose] > │ UH0_1 │
00:06:16 #16489 [Verbose] > │ │
00:06:16 #16490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:18 #16491 [Verbose] > [NbConvertApp] Converting notebook util.dib.ipynb to html
00:06:18 #16492 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:06:18 #16493 [Verbose] > validate(nb)
00:06:19 #16494 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:06:19 #16495 [Verbose] > return _pygments_highlight(
00:06:19 #16496 [Verbose] > [NbConvertApp] Writing 288561 bytes to util.dib.html
00:06:20 #16497 [Debug] executeAsync / exitCode: 0 / output.Length: 15199
00:06:20 #16498 [Debug] main / executeCommand / exitCode: 0
00:06:20 #16499 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 file_system.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:06:24 #16500 [Verbose] >
00:06:24 #16501 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:24 #16502 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:24 #16503 [Verbose] > │ # file_system │
00:06:24 #16504 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:24 #16505 [Verbose] >
00:06:24 #16506 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:24 #16507 [Verbose] > open rust_operators
00:06:24 #16508 [Verbose] > open sm'_operators
00:06:27 #16509 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-5917-1718-1c4c678ebc0f\main.spi
00:06:28 #16510 [Verbose] >
00:06:28 #16511 [Verbose] > ╭─[ 4.69s - stdout ]───────────────────────────────────────────────────────────╮
00:06:28 #16512 [Verbose] > │ () │
00:06:28 #16513 [Verbose] > │ │
00:06:28 #16514 [Verbose] > │ │
00:06:28 #16515 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:28 #16516 [Verbose] >
00:06:28 #16517 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:28 #16518 [Verbose] > // // test
00:06:28 #16519 [Verbose] >
00:06:28 #16520 [Verbose] > open testing
00:06:28 #16521 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0108-0809-03705b665999\main.spi
00:06:29 #16522 [Verbose] >
00:06:29 #16523 [Verbose] > ╭─[ 358.91ms - stdout ]────────────────────────────────────────────────────────╮
00:06:29 #16524 [Verbose] > │ () │
00:06:29 #16525 [Verbose] > │ │
00:06:29 #16526 [Verbose] > │ │
00:06:29 #16527 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:29 #16528 [Verbose] >
00:06:29 #16529 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:29 #16530 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:29 #16531 [Verbose] > │ ## types │
00:06:29 #16532 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:29 #16533 [Verbose] >
00:06:29 #16534 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:29 #16535 [Verbose] > inl types () =
00:06:29 #16536 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::path::Path\")>]] type
00:06:29 #16537 [Verbose] > std_path_Path = class end"
00:06:29 #16538 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::path::PathBuf\")>]] type
00:06:29 #16539 [Verbose] > std_path_PathBuf = class end"
00:06:29 #16540 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0144-4474-418b7af3cb62\main.spi
00:06:29 #16541 [Verbose] >
00:06:29 #16542 [Verbose] > ╭─[ 205.33ms - stdout ]────────────────────────────────────────────────────────╮
00:06:29 #16543 [Verbose] > │ () │
00:06:29 #16544 [Verbose] > │ │
00:06:29 #16545 [Verbose] > │ │
00:06:29 #16546 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:29 #16547 [Verbose] >
00:06:29 #16548 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:29 #16549 [Verbose] > inl types () =
00:06:29 #16550 [Verbose] > global "#if FABLE_COMPILER // file_system.types"
00:06:29 #16551 [Verbose] > sm'.types ()
00:06:29 #16552 [Verbose] > rust.types ()
00:06:29 #16553 [Verbose] > types ()
00:06:29 #16554 [Verbose] > global "#endif // file_system.types"
00:06:29 #16555 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0165-6506-633e4c20e584\main.spi
00:06:29 #16556 [Verbose] >
00:06:29 #16557 [Verbose] > ╭─[ 217.71ms - stdout ]────────────────────────────────────────────────────────╮
00:06:29 #16558 [Verbose] > │ () │
00:06:29 #16559 [Verbose] > │ │
00:06:29 #16560 [Verbose] > │ │
00:06:29 #16561 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:29 #16562 [Verbose] >
00:06:29 #16563 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:29 #16564 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:29 #16565 [Verbose] > │ ## path │
00:06:29 #16566 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:29 #16567 [Verbose] >
00:06:29 #16568 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:29 #16569 [Verbose] > nominal path = $'std_path_Path'
00:06:29 #16570 [Verbose] > nominal path_buf = $'std_path_PathBuf'
00:06:29 #16571 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0187-8749-8c11eba48a75\main.spi
00:06:29 #16572 [Verbose] >
00:06:29 #16573 [Verbose] > ╭─[ 215.15ms - stdout ]────────────────────────────────────────────────────────╮
00:06:29 #16574 [Verbose] > │ () │
00:06:29 #16575 [Verbose] > │ │
00:06:29 #16576 [Verbose] > │ │
00:06:29 #16577 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:29 #16578 [Verbose] >
00:06:29 #16579 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:29 #16580 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:29 #16581 [Verbose] > │ ## new_path_buf │
00:06:29 #16582 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:29 #16583 [Verbose] >
00:06:29 #16584 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:29 #16585 [Verbose] > inl new_path_buf (path : string) : path_buf =
00:06:29 #16586 [Verbose] > inl path = path |> sm'.to_std_string
00:06:29 #16587 [Verbose] > !\\(path, $'"std::path::PathBuf::from($0)"')
00:06:29 #16588 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0210-1021-126ea27c24ea\main.spi
00:06:30 #16589 [Verbose] >
00:06:30 #16590 [Verbose] > ╭─[ 201.60ms - stdout ]────────────────────────────────────────────────────────╮
00:06:30 #16591 [Verbose] > │ () │
00:06:30 #16592 [Verbose] > │ │
00:06:30 #16593 [Verbose] > │ │
00:06:30 #16594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16595 [Verbose] >
00:06:30 #16596 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:30 #16597 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:30 #16598 [Verbose] > │ ## path_buf_from │
00:06:30 #16599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16600 [Verbose] >
00:06:30 #16601 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:30 #16602 [Verbose] > inl path_buf_from (path : rust.box path) : path_buf =
00:06:30 #16603 [Verbose] > !\\(path, $'"std::path::PathBuf::from($0)"')
00:06:30 #16604 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0230-3091-3f17f61efcbf\main.spi
00:06:30 #16605 [Verbose] >
00:06:30 #16606 [Verbose] > ╭─[ 212.45ms - stdout ]────────────────────────────────────────────────────────╮
00:06:30 #16607 [Verbose] > │ () │
00:06:30 #16608 [Verbose] > │ │
00:06:30 #16609 [Verbose] > │ │
00:06:30 #16610 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16611 [Verbose] >
00:06:30 #16612 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:30 #16613 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:30 #16614 [Verbose] > │ ## path_join │
00:06:30 #16615 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16616 [Verbose] >
00:06:30 #16617 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:30 #16618 [Verbose] > inl path_join (s : string) (path_buf : path_buf) : path_buf =
00:06:30 #16619 [Verbose] > !\\((path_buf, s |> sm'.to_std_string), $'"$0.join($1)"')
00:06:30 #16620 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0252-5264-569160c1a408\main.spi
00:06:30 #16621 [Verbose] >
00:06:30 #16622 [Verbose] > ╭─[ 213.60ms - stdout ]────────────────────────────────────────────────────────╮
00:06:30 #16623 [Verbose] > │ () │
00:06:30 #16624 [Verbose] > │ │
00:06:30 #16625 [Verbose] > │ │
00:06:30 #16626 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16627 [Verbose] >
00:06:30 #16628 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:30 #16629 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:30 #16630 [Verbose] > │ ## path_display │
00:06:30 #16631 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16632 [Verbose] >
00:06:30 #16633 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:30 #16634 [Verbose] > inl path_display (path : rust.ref' path) : sm'.std_string =
00:06:30 #16635 [Verbose] > !\\(path, $'"$0.display().to_string()"')
00:06:30 #16636 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0274-7448-76548faef4d5\main.spi
00:06:30 #16637 [Verbose] >
00:06:30 #16638 [Verbose] > ╭─[ 215.17ms - stdout ]────────────────────────────────────────────────────────╮
00:06:30 #16639 [Verbose] > │ () │
00:06:30 #16640 [Verbose] > │ │
00:06:30 #16641 [Verbose] > │ │
00:06:30 #16642 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16643 [Verbose] >
00:06:30 #16644 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:30 #16645 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:30 #16646 [Verbose] > │ ## path_buf_file_name │
00:06:30 #16647 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16648 [Verbose] >
00:06:30 #16649 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:30 #16650 [Verbose] > inl path_buf_file_name (path : path_buf) : optionm'.option' (rust.ref'
00:06:30 #16651 [Verbose] > sm'.os_str) =
00:06:30 #16652 [Verbose] > !\($'"!path.file_name()"')
00:06:30 #16653 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0297-9714-9aa0b282c318\main.spi
00:06:30 #16654 [Verbose] >
00:06:30 #16655 [Verbose] > ╭─[ 213.27ms - stdout ]────────────────────────────────────────────────────────╮
00:06:30 #16656 [Verbose] > │ () │
00:06:30 #16657 [Verbose] > │ │
00:06:30 #16658 [Verbose] > │ │
00:06:30 #16659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16660 [Verbose] >
00:06:30 #16661 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:30 #16662 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:30 #16663 [Verbose] > │ ## path_buf_display │
00:06:30 #16664 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:30 #16665 [Verbose] >
00:06:30 #16666 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:30 #16667 [Verbose] > inl path_buf_display (path : path_buf) : sm'.std_string =
00:06:30 #16668 [Verbose] > !\\(path, $'"$0.display().to_string()"')
00:06:31 #16669 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0318-1884-155718f102b1\main.spi
00:06:31 #16670 [Verbose] >
00:06:31 #16671 [Verbose] > ╭─[ 240.64ms - stdout ]────────────────────────────────────────────────────────╮
00:06:31 #16672 [Verbose] > │ () │
00:06:31 #16673 [Verbose] > │ │
00:06:31 #16674 [Verbose] > │ │
00:06:31 #16675 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16676 [Verbose] >
00:06:31 #16677 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:31 #16678 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:31 #16679 [Verbose] > │ ## path_exists │
00:06:31 #16680 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16681 [Verbose] >
00:06:31 #16682 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:31 #16683 [Verbose] > inl path_buf_exists (path_buf : path_buf) : bool =
00:06:31 #16684 [Verbose] > !\($'"!path_buf.exists()"')
00:06:31 #16685 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0343-4346-4ffa9c5c6ea7\main.spi
00:06:31 #16686 [Verbose] >
00:06:31 #16687 [Verbose] > ╭─[ 223.13ms - stdout ]────────────────────────────────────────────────────────╮
00:06:31 #16688 [Verbose] > │ () │
00:06:31 #16689 [Verbose] > │ │
00:06:31 #16690 [Verbose] > │ │
00:06:31 #16691 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16692 [Verbose] >
00:06:31 #16693 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:31 #16694 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:31 #16695 [Verbose] > │ ## path_is_dir │
00:06:31 #16696 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16697 [Verbose] >
00:06:31 #16698 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:31 #16699 [Verbose] > inl path_buf_is_dir (path_buf : path_buf) : bool =
00:06:31 #16700 [Verbose] > !\($'"!path_buf.is_dir()"')
00:06:31 #16701 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0366-6631-6a0fc79e4d37\main.spi
00:06:31 #16702 [Verbose] >
00:06:31 #16703 [Verbose] > ╭─[ 361.34ms - stdout ]────────────────────────────────────────────────────────╮
00:06:31 #16704 [Verbose] > │ () │
00:06:31 #16705 [Verbose] > │ │
00:06:31 #16706 [Verbose] > │ │
00:06:31 #16707 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16708 [Verbose] >
00:06:31 #16709 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:31 #16710 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:31 #16711 [Verbose] > │ ## path_is_file │
00:06:31 #16712 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16713 [Verbose] >
00:06:31 #16714 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:31 #16715 [Verbose] > inl path_buf_is_file (path_buf : path_buf) : bool =
00:06:31 #16716 [Verbose] > !\($'"!path_buf.is_file()"')
00:06:31 #16717 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0402-0295-0ae233e28430\main.spi
00:06:31 #16718 [Verbose] >
00:06:31 #16719 [Verbose] > ╭─[ 211.25ms - stdout ]────────────────────────────────────────────────────────╮
00:06:31 #16720 [Verbose] > │ () │
00:06:31 #16721 [Verbose] > │ │
00:06:31 #16722 [Verbose] > │ │
00:06:31 #16723 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16724 [Verbose] >
00:06:31 #16725 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:31 #16726 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:31 #16727 [Verbose] > │ ## path_parent │
00:06:31 #16728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:31 #16729 [Verbose] >
00:06:31 #16730 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:31 #16731 [Verbose] > inl path_buf_parent (path_buf : path_buf) : optionm'.option' path_buf =
00:06:31 #16732 [Verbose] > !\\(path_buf, $'"$0.parent().map(std::path::PathBuf::from)"')
00:06:32 #16733 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0424-2462-27c2e9cc280a\main.spi
00:06:32 #16734 [Verbose] >
00:06:32 #16735 [Verbose] > ╭─[ 221.75ms - stdout ]────────────────────────────────────────────────────────╮
00:06:32 #16736 [Verbose] > │ () │
00:06:32 #16737 [Verbose] > │ │
00:06:32 #16738 [Verbose] > │ │
00:06:32 #16739 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:32 #16740 [Verbose] >
00:06:32 #16741 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:32 #16742 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:32 #16743 [Verbose] > │ ## (< />) │
00:06:32 #16744 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:32 #16745 [Verbose] >
00:06:32 #16746 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:32 #16747 [Verbose] > inl (</>) (a : string) (b : string) : string =
00:06:32 #16748 [Verbose] > run_target function
00:06:32 #16749 [Verbose] > | Fsharp (Native) => fun () =>
00:06:32 #16750 [Verbose] > $'System.IO.Path.Combine (!a, !b)'
00:06:32 #16751 [Verbose] > | Rust (Native) => fun () =>
00:06:32 #16752 [Verbose] > a |> new_path_buf |> path_join b |> path_buf_display |>
00:06:32 #16753 [Verbose] > sm'.from_std_string
00:06:32 #16754 [Verbose] > | target => fun () => null ()
00:06:32 #16755 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0447-4760-4d7eb2168204\main.spi
00:06:32 #16756 [Verbose] >
00:06:32 #16757 [Verbose] > ╭─[ 205.09ms - stdout ]────────────────────────────────────────────────────────╮
00:06:32 #16758 [Verbose] > │ () │
00:06:32 #16759 [Verbose] > │ │
00:06:32 #16760 [Verbose] > │ │
00:06:32 #16761 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:32 #16762 [Verbose] >
00:06:32 #16763 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:32 #16764 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:32 #16765 [Verbose] > │ ## get_temp_path │
00:06:32 #16766 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:32 #16767 [Verbose] >
00:06:32 #16768 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:32 #16769 [Verbose] > inl get_temp_path () : string =
00:06:32 #16770 [Verbose] > $'System.IO.Path.GetTempPath' ()
00:06:32 #16771 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0468-6849-6d18ef19df57\main.spi
00:06:32 #16772 [Verbose] >
00:06:32 #16773 [Verbose] > ╭─[ 195.14ms - stdout ]────────────────────────────────────────────────────────╮
00:06:32 #16774 [Verbose] > │ () │
00:06:32 #16775 [Verbose] > │ │
00:06:32 #16776 [Verbose] > │ │
00:06:32 #16777 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:32 #16778 [Verbose] >
00:06:32 #16779 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:32 #16780 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:32 #16781 [Verbose] > │ ## create_temp_directory_name │
00:06:32 #16782 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:32 #16783 [Verbose] >
00:06:32 #16784 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:32 #16785 [Verbose] > inl create_temp_directory_name () =
00:06:32 #16786 [Verbose] > run_target function
00:06:32 #16787 [Verbose] > | Fsharp (Native) => fun () =>
00:06:32 #16788 [Verbose] > inl root =
00:06:32 #16789 [Verbose] > $'System.Reflection.Assembly.GetEntryAssembly().GetName().Name' : string
00:06:32 #16790 [Verbose] >
00:06:32 #16791 [Verbose] > get_temp_path ()
00:06:32 #16792 [Verbose] > </> ($'$"\!{!root}"' : string)
00:06:32 #16793 [Verbose] > </> (date_time.new_guid_from_date_time $'System.DateTime.Now' |>
00:06:32 #16794 [Verbose] > sm'.obj_to_string)
00:06:32 #16795 [Verbose] > | target => fun () => null ()
00:06:32 #16796 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0488-8845-82df3a7dc6ee\main.spi
00:06:32 #16797 [Verbose] >
00:06:32 #16798 [Verbose] > ╭─[ 224.74ms - stdout ]────────────────────────────────────────────────────────╮
00:06:32 #16799 [Verbose] > │ () │
00:06:32 #16800 [Verbose] > │ │
00:06:32 #16801 [Verbose] > │ │
00:06:32 #16802 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:32 #16803 [Verbose] >
00:06:32 #16804 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:32 #16805 [Verbose] > // // test
00:06:32 #16806 [Verbose] >
00:06:32 #16807 [Verbose] > create_temp_directory_name ()
00:06:32 #16808 [Verbose] > |> _contains ($'System.IO.Path.DirectorySeparatorChar' : char)
00:06:32 #16809 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0511-1158-17a2a678b5db\main.spi
00:06:34 #16810 [Verbose] >
00:06:34 #16811 [Verbose] > ╭─[ 1.96s - stdout ]───────────────────────────────────────────────────────────╮
00:06:34 #16812 [Verbose] > │ type [<Struct>] US0 = │
00:06:34 #16813 [Verbose] > │ | US0_0 of f0_0 : char │
00:06:34 #16814 [Verbose] > │ | US0_1 │
00:06:34 #16815 [Verbose] > │ let rec method1 (v0 : string) : string = │
00:06:34 #16816 [Verbose] > │ v0 │
00:06:34 #16817 [Verbose] > │ and closure0 (v0 : char) (v1 : char) : bool = │
00:06:34 #16818 [Verbose] > │ let v2 : bool = v0 = v1 │
00:06:34 #16819 [Verbose] > │ v2 │
00:06:34 #16820 [Verbose] > │ and closure1 () (v0 : char) : US0 = │
00:06:34 #16821 [Verbose] > │ US0_0(v0) │
00:06:34 #16822 [Verbose] > │ and method2 () : (char -> US0) = │
00:06:34 #16823 [Verbose] > │ closure1() │
00:06:34 #16824 [Verbose] > │ and method3 (v0 : bool) : bool = │
00:06:34 #16825 [Verbose] > │ v0 │
00:06:34 #16826 [Verbose] > │ and method0 () : unit = │
00:06:34 #16827 [Verbose] > │ let v0 : string option = None │
00:06:34 #16828 [Verbose] > │ let mutable _v0 = v0 │
00:06:34 #16829 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:34 #16830 [Verbose] > │ let v1 : string = null |> unbox<string> │
00:06:34 #16831 [Verbose] > │ v1 │
00:06:34 #16832 [Verbose] > │ #endif │
00:06:34 #16833 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:34 #16834 [Verbose] > │ let v2 : string = null |> unbox<string> │
00:06:34 #16835 [Verbose] > │ v2 │
00:06:34 #16836 [Verbose] > │ #endif │
00:06:34 #16837 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:34 #16838 [Verbose] > │ let v3 : string = null |> unbox<string> │
00:06:34 #16839 [Verbose] > │ v3 │
00:06:34 #16840 [Verbose] > │ #endif │
00:06:34 #16841 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:34 #16842 [Verbose] > │ let v4 : string = │
00:06:34 #16843 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name │
00:06:34 #16844 [Verbose] > │ let v5 : (unit -> string) = System.IO.Path.GetTempPath │
00:06:34 #16845 [Verbose] > │ let v6 : string = v5 () │
00:06:34 #16846 [Verbose] > │ let v7 : string = $"!{v4}" │
00:06:34 #16847 [Verbose] > │ let v8 : string option = None │
00:06:34 #16848 [Verbose] > │ let mutable _v8 = v8 │
00:06:34 #16849 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:34 #16850 [Verbose] > │ let v9 : string = method1(v6) │
00:06:34 #16851 [Verbose] > │ let v10 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:34 #16852 [Verbose] > │ let v11 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v9 v10 │
00:06:34 #16853 [Verbose] > │ let v12 : string = "String::from($0)" │
00:06:34 #16854 [Verbose] > │ let v13 : std_string_String = Fable.Core.RustInterop.emitRustExpr v11 │
00:06:34 #16855 [Verbose] > │ v12 │
00:06:34 #16856 [Verbose] > │ let v14 : string = "std::path::PathBuf::from($0)" │
00:06:34 #16857 [Verbose] > │ let v15 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v13 v14 │
00:06:34 #16858 [Verbose] > │ let v16 : string = method1(v7) │
00:06:34 #16859 [Verbose] > │ let v17 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:34 #16860 [Verbose] > │ let v18 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v16 v17 │
00:06:34 #16861 [Verbose] > │ let v19 : string = "String::from($0)" │
00:06:34 #16862 [Verbose] > │ let v20 : std_string_String = Fable.Core.RustInterop.emitRustExpr v18 │
00:06:34 #16863 [Verbose] > │ v19 │
00:06:34 #16864 [Verbose] > │ let v21 : string = "$0.join($1)" │
00:06:34 #16865 [Verbose] > │ let v22 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:34 #16866 [Verbose] > │ (v15, v20) v21 │
00:06:34 #16867 [Verbose] > │ let v23 : string = "$0.display().to_string()" │
00:06:34 #16868 [Verbose] > │ let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22 │
00:06:34 #16869 [Verbose] > │ v23 │
00:06:34 #16870 [Verbose] > │ let v25 : string = "fable_library_rust::String_::fromString($0)" │
00:06:34 #16871 [Verbose] > │ let v26 : string = Fable.Core.RustInterop.emitRustExpr v24 v25 │
00:06:34 #16872 [Verbose] > │ v26 │
00:06:34 #16873 [Verbose] > │ #endif │
00:06:34 #16874 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:34 #16875 [Verbose] > │ let v27 : string = null |> unbox<string> │
00:06:34 #16876 [Verbose] > │ v27 │
00:06:34 #16877 [Verbose] > │ #endif │
00:06:34 #16878 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:34 #16879 [Verbose] > │ let v28 : string = null |> unbox<string> │
00:06:34 #16880 [Verbose] > │ v28 │
00:06:34 #16881 [Verbose] > │ #endif │
00:06:34 #16882 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:34 #16883 [Verbose] > │ let v29 : string = System.IO.Path.Combine (v6, v7) │
00:06:34 #16884 [Verbose] > │ v29 │
00:06:34 #16885 [Verbose] > │ #endif │
00:06:34 #16886 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:34 #16887 [Verbose] > │ let v30 : string = null |> unbox<string> │
00:06:34 #16888 [Verbose] > │ v30 │
00:06:34 #16889 [Verbose] > │ #endif │
00:06:34 #16890 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:34 #16891 [Verbose] > │ let v31 : string = null |> unbox<string> │
00:06:34 #16892 [Verbose] > │ v31 │
00:06:34 #16893 [Verbose] > │ #endif │
00:06:34 #16894 [Verbose] > │ |> fun x -> _v8 <- Some x │
00:06:34 #16895 [Verbose] > │ let v32 : string = _v8 |> Option.get │
00:06:34 #16896 [Verbose] > │ let v33 : System.DateTime = System.DateTime.Now │
00:06:34 #16897 [Verbose] > │ let v34 : System.Guid = System.Guid.NewGuid () │
00:06:34 #16898 [Verbose] > │ let v35 : (System.Guid -> string) = _.ToString() │
00:06:34 #16899 [Verbose] > │ let v36 : string = v35 v34 │
00:06:34 #16900 [Verbose] > │ let v37 : string = v33.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:06:34 #16901 [Verbose] > │ let v38 : System.Guid = System.Guid $"{v37}{v36.[v37.Length..]}" │
00:06:34 #16902 [Verbose] > │ let v39 : (System.Guid -> string) = _.ToString() │
00:06:34 #16903 [Verbose] > │ let v40 : string = v39 v38 │
00:06:34 #16904 [Verbose] > │ let v41 : string option = None │
00:06:34 #16905 [Verbose] > │ let mutable _v41 = v41 │
00:06:34 #16906 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:34 #16907 [Verbose] > │ let v42 : string = method1(v32) │
00:06:34 #16908 [Verbose] > │ let v43 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:34 #16909 [Verbose] > │ let v44 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v42 v43 │
00:06:34 #16910 [Verbose] > │ let v45 : string = "String::from($0)" │
00:06:34 #16911 [Verbose] > │ let v46 : std_string_String = Fable.Core.RustInterop.emitRustExpr v44 │
00:06:34 #16912 [Verbose] > │ v45 │
00:06:34 #16913 [Verbose] > │ let v47 : string = "std::path::PathBuf::from($0)" │
00:06:34 #16914 [Verbose] > │ let v48 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v46 v47 │
00:06:34 #16915 [Verbose] > │ let v49 : string = method1(v40) │
00:06:34 #16916 [Verbose] > │ let v50 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:34 #16917 [Verbose] > │ let v51 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v49 v50 │
00:06:34 #16918 [Verbose] > │ let v52 : string = "String::from($0)" │
00:06:34 #16919 [Verbose] > │ let v53 : std_string_String = Fable.Core.RustInterop.emitRustExpr v51 │
00:06:34 #16920 [Verbose] > │ v52 │
00:06:34 #16921 [Verbose] > │ let v54 : string = "$0.join($1)" │
00:06:34 #16922 [Verbose] > │ let v55 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:34 #16923 [Verbose] > │ (v48, v53) v54 │
00:06:34 #16924 [Verbose] > │ let v56 : string = "$0.display().to_string()" │
00:06:34 #16925 [Verbose] > │ let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55 │
00:06:34 #16926 [Verbose] > │ v56 │
00:06:34 #16927 [Verbose] > │ let v58 : string = "fable_library_rust::String_::fromString($0)" │
00:06:34 #16928 [Verbose] > │ let v59 : string = Fable.Core.RustInterop.emitRustExpr v57 v58 │
00:06:34 #16929 [Verbose] > │ v59 │
00:06:34 #16930 [Verbose] > │ #endif │
00:06:34 #16931 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:34 #16932 [Verbose] > │ let v60 : string = null |> unbox<string> │
00:06:34 #16933 [Verbose] > │ v60 │
00:06:34 #16934 [Verbose] > │ #endif │
00:06:34 #16935 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:34 #16936 [Verbose] > │ let v61 : string = null |> unbox<string> │
00:06:34 #16937 [Verbose] > │ v61 │
00:06:34 #16938 [Verbose] > │ #endif │
00:06:34 #16939 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:34 #16940 [Verbose] > │ let v62 : string = System.IO.Path.Combine (v32, v40) │
00:06:34 #16941 [Verbose] > │ v62 │
00:06:34 #16942 [Verbose] > │ #endif │
00:06:34 #16943 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:34 #16944 [Verbose] > │ let v63 : string = null |> unbox<string> │
00:06:34 #16945 [Verbose] > │ v63 │
00:06:34 #16946 [Verbose] > │ #endif │
00:06:34 #16947 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:34 #16948 [Verbose] > │ let v64 : string = null |> unbox<string> │
00:06:34 #16949 [Verbose] > │ v64 │
00:06:34 #16950 [Verbose] > │ #endif │
00:06:34 #16951 [Verbose] > │ |> fun x -> _v41 <- Some x │
00:06:34 #16952 [Verbose] > │ let v65 : string = _v41 |> Option.get │
00:06:34 #16953 [Verbose] > │ v65 │
00:06:34 #16954 [Verbose] > │ #endif │
00:06:34 #16955 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:34 #16956 [Verbose] > │ let v66 : string = null |> unbox<string> │
00:06:34 #16957 [Verbose] > │ v66 │
00:06:34 #16958 [Verbose] > │ #endif │
00:06:34 #16959 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:34 #16960 [Verbose] > │ let v67 : string = null |> unbox<string> │
00:06:34 #16961 [Verbose] > │ v67 │
00:06:34 #16962 [Verbose] > │ #endif │
00:06:34 #16963 [Verbose] > │ |> fun x -> _v0 <- Some x │
00:06:34 #16964 [Verbose] > │ let v68 : string = _v0 |> Option.get │
00:06:34 #16965 [Verbose] > │ let v69 : char = System.IO.Path.DirectorySeparatorChar │
00:06:34 #16966 [Verbose] > │ let v70 : string = $"%A{v68}" │
00:06:34 #16967 [Verbose] > │ System.Console.WriteLine v70 │
00:06:34 #16968 [Verbose] > │ let v71 : ((char -> bool) -> (string -> char option)) = Seq.tryFind │
00:06:34 #16969 [Verbose] > │ let v72 : (char -> bool) = closure0(v69) │
00:06:34 #16970 [Verbose] > │ let v73 : (string -> char option) = v71 v72 │
00:06:34 #16971 [Verbose] > │ let v74 : char option = v73 v68 │
00:06:34 #16972 [Verbose] > │ let v75 : (char -> US0) = method2() │
00:06:34 #16973 [Verbose] > │ let v76 : US0 = US0_1 │
00:06:34 #16974 [Verbose] > │ let v77 : US0 = v74 |> Option.map v75 |> Option.defaultValue v76 │
00:06:34 #16975 [Verbose] > │ let v79 : bool = │
00:06:34 #16976 [Verbose] > │ match v77 with │
00:06:34 #16977 [Verbose] > │ | US0_1 -> (* None *) │
00:06:34 #16978 [Verbose] > │ true │
00:06:34 #16979 [Verbose] > │ | _ -> │
00:06:34 #16980 [Verbose] > │ false │
00:06:34 #16981 [Verbose] > │ let v80 : bool = v79 <> true │
00:06:34 #16982 [Verbose] > │ let v82 : bool = │
00:06:34 #16983 [Verbose] > │ if v80 then │
00:06:34 #16984 [Verbose] > │ true │
00:06:34 #16985 [Verbose] > │ else │
00:06:34 #16986 [Verbose] > │ method3(v80) │
00:06:34 #16987 [Verbose] > │ let v83 : string = $"__expect / actual: %A{v68} / expected: %A{v69}" │
00:06:34 #16988 [Verbose] > │ let v84 : bool = v82 = false │
00:06:34 #16989 [Verbose] > │ if v84 then │
00:06:34 #16990 [Verbose] > │ failwith<unit> v83 │
00:06:34 #16991 [Verbose] > │ method0() │
00:06:34 #16992 [Verbose] > │ │
00:06:34 #16993 [Verbose] > │ "C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0706-0642-0266 │
00:06:34 #16994 [Verbose] > │ c270c12e" │
00:06:34 #16995 [Verbose] > │ │
00:06:34 #16996 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:34 #16997 [Verbose] >
00:06:34 #16998 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:34 #16999 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:34 #17000 [Verbose] > │ ## directory_info │
00:06:34 #17001 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:34 #17002 [Verbose] >
00:06:34 #17003 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:34 #17004 [Verbose] > nominal directory_info = $'System.IO.DirectoryInfo'
00:06:34 #17005 [Verbose] >
00:06:34 #17006 [Verbose] > inl directory_info (path : string) : directory_info =
00:06:34 #17007 [Verbose] > path |> $'`directory_info '
00:06:35 #17008 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0716-1664-17b39bfa7259\main.spi
00:06:35 #17009 [Verbose] >
00:06:35 #17010 [Verbose] > ╭─[ 245.99ms - stdout ]────────────────────────────────────────────────────────╮
00:06:35 #17011 [Verbose] > │ () │
00:06:35 #17012 [Verbose] > │ │
00:06:35 #17013 [Verbose] > │ │
00:06:35 #17014 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17015 [Verbose] >
00:06:35 #17016 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:35 #17017 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:35 #17018 [Verbose] > │ ## directory_info_exists │
00:06:35 #17019 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17020 [Verbose] >
00:06:35 #17021 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:35 #17022 [Verbose] > inl directory_info_exists (info : directory_info) : bool =
00:06:35 #17023 [Verbose] > run_target function
00:06:35 #17024 [Verbose] > | Fsharp (Native) => fun () =>
00:06:35 #17025 [Verbose] > $'!info.Exists'
00:06:35 #17026 [Verbose] > | target => fun () => null ()
00:06:35 #17027 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0742-4242-4b920c9586a8\main.spi
00:06:35 #17028 [Verbose] >
00:06:35 #17029 [Verbose] > ╭─[ 274.01ms - stdout ]────────────────────────────────────────────────────────╮
00:06:35 #17030 [Verbose] > │ () │
00:06:35 #17031 [Verbose] > │ │
00:06:35 #17032 [Verbose] > │ │
00:06:35 #17033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17034 [Verbose] >
00:06:35 #17035 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:35 #17036 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:35 #17037 [Verbose] > │ ## directory_info_creation_time │
00:06:35 #17038 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17039 [Verbose] >
00:06:35 #17040 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:35 #17041 [Verbose] > inl directory_info_creation_time (info : directory_info) : date_time.date_time =
00:06:35 #17042 [Verbose] > run_target function
00:06:35 #17043 [Verbose] > | Fsharp (Native) => fun () =>
00:06:35 #17044 [Verbose] > $'!info.CreationTime'
00:06:35 #17045 [Verbose] > | target => fun () => null ()
00:06:35 #17046 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0770-7035-7ef6a5408fa7\main.spi
00:06:35 #17047 [Verbose] >
00:06:35 #17048 [Verbose] > ╭─[ 210.00ms - stdout ]────────────────────────────────────────────────────────╮
00:06:35 #17049 [Verbose] > │ () │
00:06:35 #17050 [Verbose] > │ │
00:06:35 #17051 [Verbose] > │ │
00:06:35 #17052 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17053 [Verbose] >
00:06:35 #17054 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:35 #17055 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:35 #17056 [Verbose] > │ ## directory_info_name │
00:06:35 #17057 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17058 [Verbose] >
00:06:35 #17059 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:35 #17060 [Verbose] > inl directory_info_name (info : directory_info) : string =
00:06:35 #17061 [Verbose] > run_target function
00:06:35 #17062 [Verbose] > | Fsharp (Native) => fun () =>
00:06:35 #17063 [Verbose] > $'!info.Name'
00:06:35 #17064 [Verbose] > | target => fun () => null ()
00:06:35 #17065 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0791-9173-9498bf7f8ca9\main.spi
00:06:35 #17066 [Verbose] >
00:06:35 #17067 [Verbose] > ╭─[ 233.24ms - stdout ]────────────────────────────────────────────────────────╮
00:06:35 #17068 [Verbose] > │ () │
00:06:35 #17069 [Verbose] > │ │
00:06:35 #17070 [Verbose] > │ │
00:06:35 #17071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17072 [Verbose] >
00:06:35 #17073 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:35 #17074 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:35 #17075 [Verbose] > │ ## directory_info_full_name │
00:06:35 #17076 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:35 #17077 [Verbose] >
00:06:35 #17078 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:35 #17079 [Verbose] > inl directory_info_full_name (info : directory_info) : string =
00:06:35 #17080 [Verbose] > run_target function
00:06:35 #17081 [Verbose] > | Fsharp (Native) => fun () =>
00:06:35 #17082 [Verbose] > $'!info.FullName'
00:06:35 #17083 [Verbose] > | target => fun () => null ()
00:06:36 #17084 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0815-1587-143b751f552a\main.spi
00:06:36 #17085 [Verbose] >
00:06:36 #17086 [Verbose] > ╭─[ 226.00ms - stdout ]────────────────────────────────────────────────────────╮
00:06:36 #17087 [Verbose] > │ () │
00:06:36 #17088 [Verbose] > │ │
00:06:36 #17089 [Verbose] > │ │
00:06:36 #17090 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17091 [Verbose] >
00:06:36 #17092 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:36 #17093 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:36 #17094 [Verbose] > │ ## create_directory │
00:06:36 #17095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17096 [Verbose] >
00:06:36 #17097 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:36 #17098 [Verbose] > inl create_directory (path : string) : directory_info =
00:06:36 #17099 [Verbose] > run_target function
00:06:36 #17100 [Verbose] > | Fsharp (Native) => fun () =>
00:06:36 #17101 [Verbose] > path |> $'System.IO.Directory.CreateDirectory'
00:06:36 #17102 [Verbose] > | target => fun () => null ()
00:06:36 #17103 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0838-3894-3ded02d45a7c\main.spi
00:06:36 #17104 [Verbose] >
00:06:36 #17105 [Verbose] > ╭─[ 195.94ms - stdout ]────────────────────────────────────────────────────────╮
00:06:36 #17106 [Verbose] > │ () │
00:06:36 #17107 [Verbose] > │ │
00:06:36 #17108 [Verbose] > │ │
00:06:36 #17109 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17110 [Verbose] >
00:06:36 #17111 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:36 #17112 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:36 #17113 [Verbose] > │ ## directory_exists │
00:06:36 #17114 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17115 [Verbose] >
00:06:36 #17116 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:36 #17117 [Verbose] > inl directory_exists (path : string) : bool =
00:06:36 #17118 [Verbose] > run_target function
00:06:36 #17119 [Verbose] > | Fsharp (Native) => fun () =>
00:06:36 #17120 [Verbose] > path |> $'System.IO.Directory.Exists'
00:06:36 #17121 [Verbose] > | Rust (Native) => fun () =>
00:06:36 #17122 [Verbose] > inl path = path |> new_path_buf
00:06:36 #17123 [Verbose] > (path |> path_buf_exists) && (path |> path_buf_is_dir)
00:06:36 #17124 [Verbose] > | target => fun () => null ()
00:06:36 #17125 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0859-5923-5511f50e48da\main.spi
00:06:36 #17126 [Verbose] >
00:06:36 #17127 [Verbose] > ╭─[ 306.29ms - stdout ]────────────────────────────────────────────────────────╮
00:06:36 #17128 [Verbose] > │ () │
00:06:36 #17129 [Verbose] > │ │
00:06:36 #17130 [Verbose] > │ │
00:06:36 #17131 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17132 [Verbose] >
00:06:36 #17133 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:36 #17134 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:36 #17135 [Verbose] > │ ## directory_get_parent │
00:06:36 #17136 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17137 [Verbose] >
00:06:36 #17138 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:36 #17139 [Verbose] > inl directory_get_parent (path : string) : optionm'.option' string =
00:06:36 #17140 [Verbose] > run_target function
00:06:36 #17141 [Verbose] > | Fsharp (Native) => fun () =>
00:06:36 #17142 [Verbose] > inl parent : directory_info = path |>
00:06:36 #17143 [Verbose] > $'System.IO.Directory.GetParent'
00:06:36 #17144 [Verbose] > if parent =. null ()
00:06:36 #17145 [Verbose] > then None
00:06:36 #17146 [Verbose] > else parent |> directory_info_full_name |> Some
00:06:36 #17147 [Verbose] > | Rust (Native) => fun () =>
00:06:36 #17148 [Verbose] > path
00:06:36 #17149 [Verbose] > |> new_path_buf
00:06:36 #17150 [Verbose] > |> path_buf_parent
00:06:36 #17151 [Verbose] > |> optionm'.try'
00:06:36 #17152 [Verbose] > |> path_buf_display
00:06:36 #17153 [Verbose] > |> sm'.from_std_string
00:06:36 #17154 [Verbose] > |> Some
00:06:36 #17155 [Verbose] > | target => fun () => null ()
00:06:36 #17156 [Verbose] > |> optionm'.box
00:06:36 #17157 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0890-9047-9f352b66c6aa\main.spi
00:06:36 #17158 [Verbose] >
00:06:36 #17159 [Verbose] > ╭─[ 229.73ms - stdout ]────────────────────────────────────────────────────────╮
00:06:36 #17160 [Verbose] > │ () │
00:06:36 #17161 [Verbose] > │ │
00:06:36 #17162 [Verbose] > │ │
00:06:36 #17163 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17164 [Verbose] >
00:06:36 #17165 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:36 #17166 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:36 #17167 [Verbose] > │ ## file_exists │
00:06:36 #17168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:36 #17169 [Verbose] >
00:06:36 #17170 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:36 #17171 [Verbose] > inl file_exists (path : string) : bool =
00:06:36 #17172 [Verbose] > run_target function
00:06:36 #17173 [Verbose] > | Fsharp (Native) => fun () =>
00:06:36 #17174 [Verbose] > path |> $'System.IO.File.Exists'
00:06:36 #17175 [Verbose] > | Rust (Native) => fun () =>
00:06:36 #17176 [Verbose] > inl path_buf = path |> new_path_buf
00:06:36 #17177 [Verbose] > (path_buf |> path_buf_exists) && (path_buf |> path_buf_is_file)
00:06:36 #17178 [Verbose] > | target => fun () => null ()
00:06:36 #17179 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0913-1394-1fbd924b1b66\main.spi
00:06:37 #17180 [Verbose] >
00:06:37 #17181 [Verbose] > ╭─[ 226.87ms - stdout ]────────────────────────────────────────────────────────╮
00:06:37 #17182 [Verbose] > │ () │
00:06:37 #17183 [Verbose] > │ │
00:06:37 #17184 [Verbose] > │ │
00:06:37 #17185 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:37 #17186 [Verbose] >
00:06:37 #17187 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:37 #17188 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:37 #17189 [Verbose] > │ ## create_temp_directory │
00:06:37 #17190 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:37 #17191 [Verbose] >
00:06:37 #17192 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:37 #17193 [Verbose] > inl create_temp_directory () =
00:06:37 #17194 [Verbose] > run_target function
00:06:37 #17195 [Verbose] > | Fsharp (Native) => fun () =>
00:06:37 #17196 [Verbose] > inl temp_folder = create_temp_directory_name ()
00:06:37 #17197 [Verbose] > inl result = temp_folder |> create_directory
00:06:37 #17198 [Verbose] >
00:06:37 #17199 [Verbose] > inl exists' = result |> directory_info_exists
00:06:37 #17200 [Verbose] > if not exists' then
00:06:37 #17201 [Verbose] > inl creation_time = result |> directory_info_creation_time
00:06:37 #17202 [Verbose] > inl result = ($'{| Exists = !exists'; CreationTime =
00:06:37 #17203 [Verbose] > !creation_time |}' : any) |> sm'.format_debug
00:06:37 #17204 [Verbose] > inl get_locals () : string =
00:06:37 #17205 [Verbose] > $'$"temp_folder: {!temp_folder} / result: {!result}
00:06:37 #17206 [Verbose] > {!get_locals ()}"'
00:06:37 #17207 [Verbose] > // trace Debug (fun () => "createTempDirectory") get_locals
00:06:37 #17208 [Verbose] > console.write_line ($'$"create_temp_directory / {!get_locals
00:06:37 #17209 [Verbose] > ()}"' : string)
00:06:37 #17210 [Verbose] >
00:06:37 #17211 [Verbose] > temp_folder
00:06:37 #17212 [Verbose] > | target => fun () => null ()
00:06:37 #17213 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0937-3712-362cdfe91af6\main.spi
00:06:37 #17214 [Verbose] >
00:06:37 #17215 [Verbose] > ╭─[ 212.45ms - stdout ]────────────────────────────────────────────────────────╮
00:06:37 #17216 [Verbose] > │ () │
00:06:37 #17217 [Verbose] > │ │
00:06:37 #17218 [Verbose] > │ │
00:06:37 #17219 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:37 #17220 [Verbose] >
00:06:37 #17221 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:37 #17222 [Verbose] > // // test
00:06:37 #17223 [Verbose] >
00:06:37 #17224 [Verbose] > create_temp_directory ()
00:06:37 #17225 [Verbose] > |> directory_exists
00:06:37 #17226 [Verbose] > |> _assert_eq true
00:06:37 #17227 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0958-5856-53cba593d9c4\main.spi
00:06:37 #17228 [Verbose] >
00:06:37 #17229 [Verbose] > ╭─[ 473.82ms - stdout ]────────────────────────────────────────────────────────╮
00:06:37 #17230 [Verbose] > │ let rec method1 (v0 : string) : string = │
00:06:37 #17231 [Verbose] > │ v0 │
00:06:37 #17232 [Verbose] > │ and closure1 () () : string = │
00:06:37 #17233 [Verbose] > │ let v0 : string = "" │
00:06:37 #17234 [Verbose] > │ v0 │
00:06:37 #17235 [Verbose] > │ and closure0 (v0 : string, v1 : string) () : string = │
00:06:37 #17236 [Verbose] > │ let v2 : (unit -> string) = closure1() │
00:06:37 #17237 [Verbose] > │ let v3 : string = $"temp_folder: {v0} / result: {v1} {v2 ()}" │
00:06:37 #17238 [Verbose] > │ v3 │
00:06:37 #17239 [Verbose] > │ and method2 (v0 : bool) : bool = │
00:06:37 #17240 [Verbose] > │ v0 │
00:06:37 #17241 [Verbose] > │ and method0 () : unit = │
00:06:37 #17242 [Verbose] > │ let v0 : string option = None │
00:06:37 #17243 [Verbose] > │ let mutable _v0 = v0 │
00:06:37 #17244 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17245 [Verbose] > │ let v1 : string = null |> unbox<string> │
00:06:37 #17246 [Verbose] > │ v1 │
00:06:37 #17247 [Verbose] > │ #endif │
00:06:37 #17248 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17249 [Verbose] > │ let v2 : string = null |> unbox<string> │
00:06:37 #17250 [Verbose] > │ v2 │
00:06:37 #17251 [Verbose] > │ #endif │
00:06:37 #17252 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17253 [Verbose] > │ let v3 : string = null |> unbox<string> │
00:06:37 #17254 [Verbose] > │ v3 │
00:06:37 #17255 [Verbose] > │ #endif │
00:06:37 #17256 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17257 [Verbose] > │ let v4 : string option = None │
00:06:37 #17258 [Verbose] > │ let mutable _v4 = v4 │
00:06:37 #17259 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17260 [Verbose] > │ let v5 : string = null |> unbox<string> │
00:06:37 #17261 [Verbose] > │ v5 │
00:06:37 #17262 [Verbose] > │ #endif │
00:06:37 #17263 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17264 [Verbose] > │ let v6 : string = null |> unbox<string> │
00:06:37 #17265 [Verbose] > │ v6 │
00:06:37 #17266 [Verbose] > │ #endif │
00:06:37 #17267 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17268 [Verbose] > │ let v7 : string = null |> unbox<string> │
00:06:37 #17269 [Verbose] > │ v7 │
00:06:37 #17270 [Verbose] > │ #endif │
00:06:37 #17271 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17272 [Verbose] > │ let v8 : string = │
00:06:37 #17273 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name │
00:06:37 #17274 [Verbose] > │ let v9 : (unit -> string) = System.IO.Path.GetTempPath │
00:06:37 #17275 [Verbose] > │ let v10 : string = v9 () │
00:06:37 #17276 [Verbose] > │ let v11 : string = $"!{v8}" │
00:06:37 #17277 [Verbose] > │ let v12 : string option = None │
00:06:37 #17278 [Verbose] > │ let mutable _v12 = v12 │
00:06:37 #17279 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17280 [Verbose] > │ let v13 : string = method1(v10) │
00:06:37 #17281 [Verbose] > │ let v14 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:37 #17282 [Verbose] > │ let v15 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v13 v14 │
00:06:37 #17283 [Verbose] > │ let v16 : string = "String::from($0)" │
00:06:37 #17284 [Verbose] > │ let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15 │
00:06:37 #17285 [Verbose] > │ v16 │
00:06:37 #17286 [Verbose] > │ let v18 : string = "std::path::PathBuf::from($0)" │
00:06:37 #17287 [Verbose] > │ let v19 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v17 v18 │
00:06:37 #17288 [Verbose] > │ let v20 : string = method1(v11) │
00:06:37 #17289 [Verbose] > │ let v21 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:37 #17290 [Verbose] > │ let v22 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v20 v21 │
00:06:37 #17291 [Verbose] > │ let v23 : string = "String::from($0)" │
00:06:37 #17292 [Verbose] > │ let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22 │
00:06:37 #17293 [Verbose] > │ v23 │
00:06:37 #17294 [Verbose] > │ let v25 : string = "$0.join($1)" │
00:06:37 #17295 [Verbose] > │ let v26 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:37 #17296 [Verbose] > │ (v19, v24) v25 │
00:06:37 #17297 [Verbose] > │ let v27 : string = "$0.display().to_string()" │
00:06:37 #17298 [Verbose] > │ let v28 : std_string_String = Fable.Core.RustInterop.emitRustExpr v26 │
00:06:37 #17299 [Verbose] > │ v27 │
00:06:37 #17300 [Verbose] > │ let v29 : string = "fable_library_rust::String_::fromString($0)" │
00:06:37 #17301 [Verbose] > │ let v30 : string = Fable.Core.RustInterop.emitRustExpr v28 v29 │
00:06:37 #17302 [Verbose] > │ v30 │
00:06:37 #17303 [Verbose] > │ #endif │
00:06:37 #17304 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17305 [Verbose] > │ let v31 : string = null |> unbox<string> │
00:06:37 #17306 [Verbose] > │ v31 │
00:06:37 #17307 [Verbose] > │ #endif │
00:06:37 #17308 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17309 [Verbose] > │ let v32 : string = null |> unbox<string> │
00:06:37 #17310 [Verbose] > │ v32 │
00:06:37 #17311 [Verbose] > │ #endif │
00:06:37 #17312 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17313 [Verbose] > │ let v33 : string = System.IO.Path.Combine (v10, v11) │
00:06:37 #17314 [Verbose] > │ v33 │
00:06:37 #17315 [Verbose] > │ #endif │
00:06:37 #17316 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17317 [Verbose] > │ let v34 : string = null |> unbox<string> │
00:06:37 #17318 [Verbose] > │ v34 │
00:06:37 #17319 [Verbose] > │ #endif │
00:06:37 #17320 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17321 [Verbose] > │ let v35 : string = null |> unbox<string> │
00:06:37 #17322 [Verbose] > │ v35 │
00:06:37 #17323 [Verbose] > │ #endif │
00:06:37 #17324 [Verbose] > │ |> fun x -> _v12 <- Some x │
00:06:37 #17325 [Verbose] > │ let v36 : string = _v12 |> Option.get │
00:06:37 #17326 [Verbose] > │ let v37 : System.DateTime = System.DateTime.Now │
00:06:37 #17327 [Verbose] > │ let v38 : System.Guid = System.Guid.NewGuid () │
00:06:37 #17328 [Verbose] > │ let v39 : (System.Guid -> string) = _.ToString() │
00:06:37 #17329 [Verbose] > │ let v40 : string = v39 v38 │
00:06:37 #17330 [Verbose] > │ let v41 : string = v37.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:06:37 #17331 [Verbose] > │ let v42 : System.Guid = System.Guid $"{v41}{v40.[v41.Length..]}" │
00:06:37 #17332 [Verbose] > │ let v43 : (System.Guid -> string) = _.ToString() │
00:06:37 #17333 [Verbose] > │ let v44 : string = v43 v42 │
00:06:37 #17334 [Verbose] > │ let v45 : string option = None │
00:06:37 #17335 [Verbose] > │ let mutable _v45 = v45 │
00:06:37 #17336 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17337 [Verbose] > │ let v46 : string = method1(v36) │
00:06:37 #17338 [Verbose] > │ let v47 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:37 #17339 [Verbose] > │ let v48 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v46 v47 │
00:06:37 #17340 [Verbose] > │ let v49 : string = "String::from($0)" │
00:06:37 #17341 [Verbose] > │ let v50 : std_string_String = Fable.Core.RustInterop.emitRustExpr v48 │
00:06:37 #17342 [Verbose] > │ v49 │
00:06:37 #17343 [Verbose] > │ let v51 : string = "std::path::PathBuf::from($0)" │
00:06:37 #17344 [Verbose] > │ let v52 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v50 v51 │
00:06:37 #17345 [Verbose] > │ let v53 : string = method1(v44) │
00:06:37 #17346 [Verbose] > │ let v54 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:37 #17347 [Verbose] > │ let v55 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v53 v54 │
00:06:37 #17348 [Verbose] > │ let v56 : string = "String::from($0)" │
00:06:37 #17349 [Verbose] > │ let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55 │
00:06:37 #17350 [Verbose] > │ v56 │
00:06:37 #17351 [Verbose] > │ let v58 : string = "$0.join($1)" │
00:06:37 #17352 [Verbose] > │ let v59 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:37 #17353 [Verbose] > │ (v52, v57) v58 │
00:06:37 #17354 [Verbose] > │ let v60 : string = "$0.display().to_string()" │
00:06:37 #17355 [Verbose] > │ let v61 : std_string_String = Fable.Core.RustInterop.emitRustExpr v59 │
00:06:37 #17356 [Verbose] > │ v60 │
00:06:37 #17357 [Verbose] > │ let v62 : string = "fable_library_rust::String_::fromString($0)" │
00:06:37 #17358 [Verbose] > │ let v63 : string = Fable.Core.RustInterop.emitRustExpr v61 v62 │
00:06:37 #17359 [Verbose] > │ v63 │
00:06:37 #17360 [Verbose] > │ #endif │
00:06:37 #17361 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17362 [Verbose] > │ let v64 : string = null |> unbox<string> │
00:06:37 #17363 [Verbose] > │ v64 │
00:06:37 #17364 [Verbose] > │ #endif │
00:06:37 #17365 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17366 [Verbose] > │ let v65 : string = null |> unbox<string> │
00:06:37 #17367 [Verbose] > │ v65 │
00:06:37 #17368 [Verbose] > │ #endif │
00:06:37 #17369 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17370 [Verbose] > │ let v66 : string = System.IO.Path.Combine (v36, v44) │
00:06:37 #17371 [Verbose] > │ v66 │
00:06:37 #17372 [Verbose] > │ #endif │
00:06:37 #17373 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17374 [Verbose] > │ let v67 : string = null |> unbox<string> │
00:06:37 #17375 [Verbose] > │ v67 │
00:06:37 #17376 [Verbose] > │ #endif │
00:06:37 #17377 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17378 [Verbose] > │ let v68 : string = null |> unbox<string> │
00:06:37 #17379 [Verbose] > │ v68 │
00:06:37 #17380 [Verbose] > │ #endif │
00:06:37 #17381 [Verbose] > │ |> fun x -> _v45 <- Some x │
00:06:37 #17382 [Verbose] > │ let v69 : string = _v45 |> Option.get │
00:06:37 #17383 [Verbose] > │ v69 │
00:06:37 #17384 [Verbose] > │ #endif │
00:06:37 #17385 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17386 [Verbose] > │ let v70 : string = null |> unbox<string> │
00:06:37 #17387 [Verbose] > │ v70 │
00:06:37 #17388 [Verbose] > │ #endif │
00:06:37 #17389 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17390 [Verbose] > │ let v71 : string = null |> unbox<string> │
00:06:37 #17391 [Verbose] > │ v71 │
00:06:37 #17392 [Verbose] > │ #endif │
00:06:37 #17393 [Verbose] > │ |> fun x -> _v4 <- Some x │
00:06:37 #17394 [Verbose] > │ let v72 : string = _v4 |> Option.get │
00:06:37 #17395 [Verbose] > │ let v73 : System.IO.DirectoryInfo option = None │
00:06:37 #17396 [Verbose] > │ let mutable _v73 = v73 │
00:06:37 #17397 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17398 [Verbose] > │ let v74 : System.IO.DirectoryInfo = null |> │
00:06:37 #17399 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:37 #17400 [Verbose] > │ v74 │
00:06:37 #17401 [Verbose] > │ #endif │
00:06:37 #17402 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17403 [Verbose] > │ let v75 : System.IO.DirectoryInfo = null |> │
00:06:37 #17404 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:37 #17405 [Verbose] > │ v75 │
00:06:37 #17406 [Verbose] > │ #endif │
00:06:37 #17407 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17408 [Verbose] > │ let v76 : System.IO.DirectoryInfo = null |> │
00:06:37 #17409 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:37 #17410 [Verbose] > │ v76 │
00:06:37 #17411 [Verbose] > │ #endif │
00:06:37 #17412 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17413 [Verbose] > │ let v77 : (string -> System.IO.DirectoryInfo) = │
00:06:37 #17414 [Verbose] > │ System.IO.Directory.CreateDirectory │
00:06:37 #17415 [Verbose] > │ let v78 : System.IO.DirectoryInfo = v77 v72 │
00:06:37 #17416 [Verbose] > │ v78 │
00:06:37 #17417 [Verbose] > │ #endif │
00:06:37 #17418 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17419 [Verbose] > │ let v79 : System.IO.DirectoryInfo = null |> │
00:06:37 #17420 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:37 #17421 [Verbose] > │ v79 │
00:06:37 #17422 [Verbose] > │ #endif │
00:06:37 #17423 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17424 [Verbose] > │ let v80 : System.IO.DirectoryInfo = null |> │
00:06:37 #17425 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:37 #17426 [Verbose] > │ v80 │
00:06:37 #17427 [Verbose] > │ #endif │
00:06:37 #17428 [Verbose] > │ |> fun x -> _v73 <- Some x │
00:06:37 #17429 [Verbose] > │ let v81 : System.IO.DirectoryInfo = _v73 |> Option.get │
00:06:37 #17430 [Verbose] > │ let v82 : bool option = None │
00:06:37 #17431 [Verbose] > │ let mutable _v82 = v82 │
00:06:37 #17432 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17433 [Verbose] > │ let v83 : bool = null |> unbox<bool> │
00:06:37 #17434 [Verbose] > │ v83 │
00:06:37 #17435 [Verbose] > │ #endif │
00:06:37 #17436 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17437 [Verbose] > │ let v84 : bool = null |> unbox<bool> │
00:06:37 #17438 [Verbose] > │ v84 │
00:06:37 #17439 [Verbose] > │ #endif │
00:06:37 #17440 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17441 [Verbose] > │ let v85 : bool = null |> unbox<bool> │
00:06:37 #17442 [Verbose] > │ v85 │
00:06:37 #17443 [Verbose] > │ #endif │
00:06:37 #17444 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17445 [Verbose] > │ let v86 : bool = v81.Exists │
00:06:37 #17446 [Verbose] > │ v86 │
00:06:37 #17447 [Verbose] > │ #endif │
00:06:37 #17448 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17449 [Verbose] > │ let v87 : bool = null |> unbox<bool> │
00:06:37 #17450 [Verbose] > │ v87 │
00:06:37 #17451 [Verbose] > │ #endif │
00:06:37 #17452 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17453 [Verbose] > │ let v88 : bool = null |> unbox<bool> │
00:06:37 #17454 [Verbose] > │ v88 │
00:06:37 #17455 [Verbose] > │ #endif │
00:06:37 #17456 [Verbose] > │ |> fun x -> _v82 <- Some x │
00:06:37 #17457 [Verbose] > │ let v89 : bool = _v82 |> Option.get │
00:06:37 #17458 [Verbose] > │ let v90 : bool = v89 = false │
00:06:37 #17459 [Verbose] > │ if v90 then │
00:06:37 #17460 [Verbose] > │ let v91 : System.DateTime option = None │
00:06:37 #17461 [Verbose] > │ let mutable _v91 = v91 │
00:06:37 #17462 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17463 [Verbose] > │ let v92 : System.DateTime = null |> unbox<System.DateTime> │
00:06:37 #17464 [Verbose] > │ v92 │
00:06:37 #17465 [Verbose] > │ #endif │
00:06:37 #17466 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17467 [Verbose] > │ let v93 : System.DateTime = null |> unbox<System.DateTime> │
00:06:37 #17468 [Verbose] > │ v93 │
00:06:37 #17469 [Verbose] > │ #endif │
00:06:37 #17470 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17471 [Verbose] > │ let v94 : System.DateTime = null |> unbox<System.DateTime> │
00:06:37 #17472 [Verbose] > │ v94 │
00:06:37 #17473 [Verbose] > │ #endif │
00:06:37 #17474 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17475 [Verbose] > │ let v95 : System.DateTime = v81.CreationTime │
00:06:37 #17476 [Verbose] > │ v95 │
00:06:37 #17477 [Verbose] > │ #endif │
00:06:37 #17478 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17479 [Verbose] > │ let v96 : System.DateTime = null |> unbox<System.DateTime> │
00:06:37 #17480 [Verbose] > │ v96 │
00:06:37 #17481 [Verbose] > │ #endif │
00:06:37 #17482 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17483 [Verbose] > │ let v97 : System.DateTime = null |> unbox<System.DateTime> │
00:06:37 #17484 [Verbose] > │ v97 │
00:06:37 #17485 [Verbose] > │ #endif │
00:06:37 #17486 [Verbose] > │ |> fun x -> _v91 <- Some x │
00:06:37 #17487 [Verbose] > │ let v98 : System.DateTime = _v91 |> Option.get │
00:06:37 #17488 [Verbose] > │ let v99 : obj = {| Exists = v89; CreationTime = v98 |} │
00:06:37 #17489 [Verbose] > │ let v100 : string = $"%A{v99}" │
00:06:37 #17490 [Verbose] > │ let v101 : (unit -> string) = closure0(v72, v100) │
00:06:37 #17491 [Verbose] > │ let v102 : string = $"create_temp_directory / {v101 ()}" │
00:06:37 #17492 [Verbose] > │ System.Console.WriteLine v102 │
00:06:37 #17493 [Verbose] > │ () │
00:06:37 #17494 [Verbose] > │ v72 │
00:06:37 #17495 [Verbose] > │ #endif │
00:06:37 #17496 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17497 [Verbose] > │ let v103 : string = null |> unbox<string> │
00:06:37 #17498 [Verbose] > │ v103 │
00:06:37 #17499 [Verbose] > │ #endif │
00:06:37 #17500 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17501 [Verbose] > │ let v104 : string = null |> unbox<string> │
00:06:37 #17502 [Verbose] > │ v104 │
00:06:37 #17503 [Verbose] > │ #endif │
00:06:37 #17504 [Verbose] > │ |> fun x -> _v0 <- Some x │
00:06:37 #17505 [Verbose] > │ let v105 : string = _v0 |> Option.get │
00:06:37 #17506 [Verbose] > │ let v106 : bool option = None │
00:06:37 #17507 [Verbose] > │ let mutable _v106 = v106 │
00:06:37 #17508 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:37 #17509 [Verbose] > │ let v107 : string = method1(v105) │
00:06:37 #17510 [Verbose] > │ let v108 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:37 #17511 [Verbose] > │ let v109 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v107 v108 │
00:06:37 #17512 [Verbose] > │ let v110 : string = "String::from($0)" │
00:06:37 #17513 [Verbose] > │ let v111 : std_string_String = Fable.Core.RustInterop.emitRustExpr v109 │
00:06:37 #17514 [Verbose] > │ v110 │
00:06:37 #17515 [Verbose] > │ let v112 : string = "std::path::PathBuf::from($0)" │
00:06:37 #17516 [Verbose] > │ let v113 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v111 │
00:06:37 #17517 [Verbose] > │ v112 │
00:06:37 #17518 [Verbose] > │ let v114 : string = "v113.exists()" │
00:06:37 #17519 [Verbose] > │ let v115 : bool = Fable.Core.RustInterop.emitRustExpr () v114 │
00:06:37 #17520 [Verbose] > │ let v118 : bool = │
00:06:37 #17521 [Verbose] > │ if v115 then │
00:06:37 #17522 [Verbose] > │ let v116 : string = "v113.is_dir()" │
00:06:37 #17523 [Verbose] > │ let v117 : bool = Fable.Core.RustInterop.emitRustExpr () v116 │
00:06:37 #17524 [Verbose] > │ v117 │
00:06:37 #17525 [Verbose] > │ else │
00:06:37 #17526 [Verbose] > │ false │
00:06:37 #17527 [Verbose] > │ v118 │
00:06:37 #17528 [Verbose] > │ #endif │
00:06:37 #17529 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:37 #17530 [Verbose] > │ let v119 : bool = null |> unbox<bool> │
00:06:37 #17531 [Verbose] > │ v119 │
00:06:37 #17532 [Verbose] > │ #endif │
00:06:37 #17533 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:37 #17534 [Verbose] > │ let v120 : bool = null |> unbox<bool> │
00:06:37 #17535 [Verbose] > │ v120 │
00:06:37 #17536 [Verbose] > │ #endif │
00:06:37 #17537 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17538 [Verbose] > │ let v121 : (string -> bool) = System.IO.Directory.Exists │
00:06:37 #17539 [Verbose] > │ let v122 : bool = v121 v105 │
00:06:37 #17540 [Verbose] > │ v122 │
00:06:37 #17541 [Verbose] > │ #endif │
00:06:37 #17542 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:37 #17543 [Verbose] > │ let v123 : bool = null |> unbox<bool> │
00:06:37 #17544 [Verbose] > │ v123 │
00:06:37 #17545 [Verbose] > │ #endif │
00:06:37 #17546 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:37 #17547 [Verbose] > │ let v124 : bool = null |> unbox<bool> │
00:06:37 #17548 [Verbose] > │ v124 │
00:06:37 #17549 [Verbose] > │ #endif │
00:06:37 #17550 [Verbose] > │ |> fun x -> _v106 <- Some x │
00:06:37 #17551 [Verbose] > │ let v125 : bool = _v106 |> Option.get │
00:06:37 #17552 [Verbose] > │ let v126 : string = $"%A{v125}" │
00:06:37 #17553 [Verbose] > │ System.Console.WriteLine v126 │
00:06:37 #17554 [Verbose] > │ let v128 : bool = │
00:06:37 #17555 [Verbose] > │ if v125 then │
00:06:37 #17556 [Verbose] > │ true │
00:06:37 #17557 [Verbose] > │ else │
00:06:37 #17558 [Verbose] > │ method2(v125) │
00:06:37 #17559 [Verbose] > │ let v129 : string = $"__expect / actual: %A{v125} / expected: %A{true}" │
00:06:37 #17560 [Verbose] > │ let v130 : bool = v128 = false │
00:06:37 #17561 [Verbose] > │ if v130 then │
00:06:37 #17562 [Verbose] > │ failwith<unit> v129 │
00:06:37 #17563 [Verbose] > │ method0() │
00:06:37 #17564 [Verbose] > │ │
00:06:37 #17565 [Verbose] > │ true │
00:06:37 #17566 [Verbose] > │ │
00:06:37 #17567 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:37 #17568 [Verbose] >
00:06:37 #17569 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:37 #17570 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:37 #17571 [Verbose] > │ ## get_source_directory │
00:06:37 #17572 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:37 #17573 [Verbose] >
00:06:37 #17574 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:37 #17575 [Verbose] > inl get_source_directory () =
00:06:37 #17576 [Verbose] > $'__SOURCE_DIRECTORY__' : string
00:06:38 #17577 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1026-2666-2b41289faffb\main.spi
00:06:38 #17578 [Verbose] >
00:06:38 #17579 [Verbose] > ╭─[ 213.93ms - stdout ]────────────────────────────────────────────────────────╮
00:06:38 #17580 [Verbose] > │ () │
00:06:38 #17581 [Verbose] > │ │
00:06:38 #17582 [Verbose] > │ │
00:06:38 #17583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:38 #17584 [Verbose] >
00:06:38 #17585 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:38 #17586 [Verbose] > // // test
00:06:38 #17587 [Verbose] >
00:06:38 #17588 [Verbose] > get_source_directory ()
00:06:38 #17589 [Verbose] > |> directory_info
00:06:38 #17590 [Verbose] > |> directory_info_name
00:06:38 #17591 [Verbose] > |> _assert_eq "spiral"
00:06:38 #17592 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1048-4810-460813c681eb\main.spi
00:06:38 #17593 [Verbose] >
00:06:38 #17594 [Verbose] > ╭─[ 366.05ms - stdout ]────────────────────────────────────────────────────────╮
00:06:38 #17595 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:06:38 #17596 [Verbose] > │ v0 │
00:06:38 #17597 [Verbose] > │ and method0 () : unit = │
00:06:38 #17598 [Verbose] > │ let v0 : string = __SOURCE_DIRECTORY__ │
00:06:38 #17599 [Verbose] > │ let v1 : (string -> System.IO.DirectoryInfo) = System.IO.DirectoryInfo │
00:06:38 #17600 [Verbose] > │ let v2 : System.IO.DirectoryInfo = v1 v0 │
00:06:38 #17601 [Verbose] > │ let v3 : string option = None │
00:06:38 #17602 [Verbose] > │ let mutable _v3 = v3 │
00:06:38 #17603 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:38 #17604 [Verbose] > │ let v4 : string = null |> unbox<string> │
00:06:38 #17605 [Verbose] > │ v4 │
00:06:38 #17606 [Verbose] > │ #endif │
00:06:38 #17607 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:38 #17608 [Verbose] > │ let v5 : string = null |> unbox<string> │
00:06:38 #17609 [Verbose] > │ v5 │
00:06:38 #17610 [Verbose] > │ #endif │
00:06:38 #17611 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:38 #17612 [Verbose] > │ let v6 : string = null |> unbox<string> │
00:06:38 #17613 [Verbose] > │ v6 │
00:06:38 #17614 [Verbose] > │ #endif │
00:06:38 #17615 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:38 #17616 [Verbose] > │ let v7 : string = v2.Name │
00:06:38 #17617 [Verbose] > │ v7 │
00:06:38 #17618 [Verbose] > │ #endif │
00:06:38 #17619 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:38 #17620 [Verbose] > │ let v8 : string = null |> unbox<string> │
00:06:38 #17621 [Verbose] > │ v8 │
00:06:38 #17622 [Verbose] > │ #endif │
00:06:38 #17623 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:38 #17624 [Verbose] > │ let v9 : string = null |> unbox<string> │
00:06:38 #17625 [Verbose] > │ v9 │
00:06:38 #17626 [Verbose] > │ #endif │
00:06:38 #17627 [Verbose] > │ |> fun x -> _v3 <- Some x │
00:06:38 #17628 [Verbose] > │ let v10 : string = _v3 |> Option.get │
00:06:38 #17629 [Verbose] > │ let v11 : string = $"%A{v10}" │
00:06:38 #17630 [Verbose] > │ System.Console.WriteLine v11 │
00:06:38 #17631 [Verbose] > │ let v13 : bool = v10 = "spiral" │
00:06:38 #17632 [Verbose] > │ let v15 : bool = │
00:06:38 #17633 [Verbose] > │ if v13 then │
00:06:38 #17634 [Verbose] > │ true │
00:06:38 #17635 [Verbose] > │ else │
00:06:38 #17636 [Verbose] > │ method1(v13) │
00:06:38 #17637 [Verbose] > │ let v16 : string = "spiral" │
00:06:38 #17638 [Verbose] > │ let v17 : string = $"__expect / actual: %A{v10} / expected: %A{v16}" │
00:06:38 #17639 [Verbose] > │ let v18 : bool = v15 = false │
00:06:38 #17640 [Verbose] > │ if v18 then │
00:06:38 #17641 [Verbose] > │ failwith<unit> v17 │
00:06:38 #17642 [Verbose] > │ method0() │
00:06:38 #17643 [Verbose] > │ │
00:06:38 #17644 [Verbose] > │ "spiral" │
00:06:38 #17645 [Verbose] > │ │
00:06:38 #17646 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:38 #17647 [Verbose] >
00:06:38 #17648 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:38 #17649 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:38 #17650 [Verbose] > │ ## find_parent │
00:06:38 #17651 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:38 #17652 [Verbose] >
00:06:38 #17653 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:38 #17654 [Verbose] > inl find_parent name is_file root_dir =
00:06:38 #17655 [Verbose] > let rec loop dir =
00:06:38 #17656 [Verbose] > if dir </> name |> (if is_file then file_exists else directory_exists)
00:06:38 #17657 [Verbose] > then dir
00:06:38 #17658 [Verbose] > else
00:06:38 #17659 [Verbose] > match dir |> (join directory_get_parent) |> optionm'.unbox with
00:06:38 #17660 [Verbose] > | Some parent => parent |> loop
00:06:38 #17661 [Verbose] > | None => failwith $'$"""No parent for {if !is_file then "file" else
00:06:38 #17662 [Verbose] > "dir"} \'{!name}\' at \'{!root_dir}\'"""'
00:06:38 #17663 [Verbose] > loop root_dir
00:06:38 #17664 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1088-8837-8de08f7aca47\main.spi
00:06:38 #17665 [Verbose] >
00:06:38 #17666 [Verbose] > ╭─[ 223.25ms - stdout ]────────────────────────────────────────────────────────╮
00:06:38 #17667 [Verbose] > │ () │
00:06:38 #17668 [Verbose] > │ │
00:06:38 #17669 [Verbose] > │ │
00:06:38 #17670 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:38 #17671 [Verbose] >
00:06:38 #17672 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:38 #17673 [Verbose] > // // test
00:06:38 #17674 [Verbose] > // // print_code=false
00:06:38 #17675 [Verbose] >
00:06:38 #17676 [Verbose] > a ;[[ ".paket", false; "paket.dependencies", true ]]
00:06:38 #17677 [Verbose] > |> am.map fun (file, is_file) =>
00:06:38 #17678 [Verbose] > get_source_directory ()
00:06:38 #17679 [Verbose] > |> find_parent file is_file
00:06:38 #17680 [Verbose] > |> directory_info
00:06:38 #17681 [Verbose] > |> directory_info_name
00:06:38 #17682 [Verbose] > |> am'.distinct
00:06:38 #17683 [Verbose] > |> _assert_eq (a ;[[ "polyglot" ]] : _ i32 _)
00:06:38 #17684 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1111-1127-15bd6ca024e4\main.spi
00:06:39 #17685 [Verbose] >
00:06:39 #17686 [Verbose] > ╭─[ 676.95ms - stdout ]────────────────────────────────────────────────────────╮
00:06:39 #17687 [Verbose] > │ [|"polyglot"|] │
00:06:39 #17688 [Verbose] > │ │
00:06:39 #17689 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:39 #17690 [Verbose] >
00:06:39 #17691 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:39 #17692 [Verbose] > // // test
00:06:39 #17693 [Verbose] > // // rust=
00:06:39 #17694 [Verbose] > // // print_code=false
00:06:39 #17695 [Verbose] >
00:06:39 #17696 [Verbose] > types ()
00:06:39 #17697 [Verbose] > a ;[[ ".paket", false; "paket.dependencies", true ]]
00:06:39 #17698 [Verbose] > |> am.map fun (file, is_file) =>
00:06:39 #17699 [Verbose] > fun () => join
00:06:39 #17700 [Verbose] > get_source_directory ()
00:06:39 #17701 [Verbose] > |> find_parent file is_file
00:06:39 #17702 [Verbose] > |> new_path_buf
00:06:39 #17703 [Verbose] > |> path_buf_file_name
00:06:39 #17704 [Verbose] > |> optionm'.try'
00:06:39 #17705 [Verbose] > |> sm'.to_os_string
00:06:39 #17706 [Verbose] > |> sm'.os_to_str
00:06:39 #17707 [Verbose] > |> optionm'.try'
00:06:39 #17708 [Verbose] > |> sm'.ref_to_std_string
00:06:39 #17709 [Verbose] > |> sm'.from_std_string
00:06:39 #17710 [Verbose] > |> Some
00:06:39 #17711 [Verbose] > |> optionm'.box
00:06:39 #17712 [Verbose] > |> fun x => x () |> optionm'.unbox
00:06:39 #17713 [Verbose] > |> optionm'.default_value ""
00:06:39 #17714 [Verbose] > |> am'.distinct
00:06:39 #17715 [Verbose] > |> fun result =>
00:06:39 #17716 [Verbose] > result |> am'.length |> _assert_eq 1i32
00:06:39 #17717 [Verbose] > index result 0i32 |> _assert_eq "polyglot"
00:06:39 #17718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1179-7915-78c1a2c01914\main.spi
00:06:48 #17719 [Verbose] >
00:06:48 #17720 [Verbose] > ╭─[ 9.35s - return value ]─────────────────────────────────────────────────────╮
00:06:48 #17721 [Verbose] > │ 1 │
00:06:48 #17722 [Verbose] > │ "polyglot" │
00:06:48 #17723 [Verbose] > │ │
00:06:48 #17724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:48 #17725 [Verbose] >
00:06:48 #17726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:48 #17727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:48 #17728 [Verbose] > │ ## main │
00:06:48 #17729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:48 #17730 [Verbose] >
00:06:48 #17731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:48 #17732 [Verbose] > inl main () =
00:06:48 #17733 [Verbose] > types ()
00:06:48 #17734 [Verbose] > $"let create_temp_directory_name () = !create_temp_directory_name ()" : ()
00:06:48 #17735 [Verbose] > $"let create_temp_directory () = !create_temp_directory ()" : ()
00:06:48 #17736 [Verbose] > $"let get_source_directory () = !get_source_directory ()" : ()
00:06:48 #17737 [Verbose] > $"let find_parent x = !find_parent x" : ()
00:06:48 #17738 [Verbose] > inl combine x = (</>) x
00:06:48 #17739 [Verbose] > $"let (</>) x = !combine x" : ()
00:06:49 #17740 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-2116-1619-10d71519fca2\main.spi
00:06:49 #17741 [Verbose] >
00:06:49 #17742 [Verbose] > ╭─[ 537.26ms - stdout ]────────────────────────────────────────────────────────╮
00:06:49 #17743 [Verbose] > │ #if FABLE_COMPILER // file_system.types │
00:06:49 #17744 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:06:49 #17745 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type │
00:06:49 #17746 [Verbose] > │ base64_DecodeError = class end │
00:06:49 #17747 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type │
00:06:49 #17748 [Verbose] > │ borsh_io_Error = class end │
00:06:49 #17749 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type │
00:06:49 #17750 [Verbose] > │ js_sys_JsString = class end │
00:06:49 #17751 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type │
00:06:49 #17752 [Verbose] > │ serde_json_Error = class end │
00:06:49 #17753 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type │
00:06:49 #17754 [Verbose] > │ serde_json_Value = class end │
00:06:49 #17755 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type │
00:06:49 #17756 [Verbose] > │ serde_wasm_bindgen_Error = class end │
00:06:49 #17757 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr │
00:06:49 #17758 [Verbose] > │ = class end │
00:06:49 #17759 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type │
00:06:49 #17760 [Verbose] > │ std_ffi_OsString = class end │
00:06:49 #17761 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type │
00:06:49 #17762 [Verbose] > │ std_str_Utf8Error = class end │
00:06:49 #17763 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:06:49 #17764 [Verbose] > │ std_string_String = class end │
00:06:49 #17765 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class │
00:06:49 #17766 [Verbose] > │ end │
00:06:49 #17767 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = │
00:06:49 #17768 [Verbose] > │ class end │
00:06:49 #17769 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end │
00:06:49 #17770 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end │
00:06:49 #17771 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end │
00:06:49 #17772 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end │
00:06:49 #17773 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = │
00:06:49 #17774 [Verbose] > │ class end │
00:06:49 #17775 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:06:49 #17776 [Verbose] > │ class end │
00:06:49 #17777 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end │
00:06:49 #17778 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end │
00:06:49 #17779 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:06:49 #17780 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> = │
00:06:49 #17781 [Verbose] > │ class end │
00:06:49 #17782 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> = │
00:06:49 #17783 [Verbose] > │ class end │
00:06:49 #17784 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any = │
00:06:49 #17785 [Verbose] > │ class end │
00:06:49 #17786 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type │
00:06:49 #17787 [Verbose] > │ std_cell_RefCell<'T> = class end │
00:06:49 #17788 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type │
00:06:49 #17789 [Verbose] > │ std_pin_Pin<'T> = class end │
00:06:49 #17790 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T> │
00:06:49 #17791 [Verbose] > │ = class end │
00:06:49 #17792 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type │
00:06:49 #17793 [Verbose] > │ std_rc_Weak<'T> = class end │
00:06:49 #17794 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type │
00:06:49 #17795 [Verbose] > │ std_sync_Arc<'T> = class end │
00:06:49 #17796 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::path::Path")>] type std_path_Path │
00:06:49 #17797 [Verbose] > │ = class end │
00:06:49 #17798 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::path::PathBuf")>] type │
00:06:49 #17799 [Verbose] > │ std_path_PathBuf = class end │
00:06:49 #17800 [Verbose] > │ #endif // file_system.types │
00:06:49 #17801 [Verbose] > │ type [<Struct>] US0 = │
00:06:49 #17802 [Verbose] > │ | US0_0 of f0_0 : string │
00:06:49 #17803 [Verbose] > │ | US0_1 │
00:06:49 #17804 [Verbose] > │ let rec method0 (v0 : string) : string = │
00:06:49 #17805 [Verbose] > │ v0 │
00:06:49 #17806 [Verbose] > │ and closure0 () () : string = │
00:06:49 #17807 [Verbose] > │ let v0 : string option = None │
00:06:49 #17808 [Verbose] > │ let mutable _v0 = v0 │
00:06:49 #17809 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #17810 [Verbose] > │ let v1 : string = null |> unbox<string> │
00:06:49 #17811 [Verbose] > │ v1 │
00:06:49 #17812 [Verbose] > │ #endif │
00:06:49 #17813 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #17814 [Verbose] > │ let v2 : string = null |> unbox<string> │
00:06:49 #17815 [Verbose] > │ v2 │
00:06:49 #17816 [Verbose] > │ #endif │
00:06:49 #17817 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #17818 [Verbose] > │ let v3 : string = null |> unbox<string> │
00:06:49 #17819 [Verbose] > │ v3 │
00:06:49 #17820 [Verbose] > │ #endif │
00:06:49 #17821 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17822 [Verbose] > │ let v4 : string = │
00:06:49 #17823 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name │
00:06:49 #17824 [Verbose] > │ let v5 : (unit -> string) = System.IO.Path.GetTempPath │
00:06:49 #17825 [Verbose] > │ let v6 : string = v5 () │
00:06:49 #17826 [Verbose] > │ let v7 : string = $"!{v4}" │
00:06:49 #17827 [Verbose] > │ let v8 : string option = None │
00:06:49 #17828 [Verbose] > │ let mutable _v8 = v8 │
00:06:49 #17829 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #17830 [Verbose] > │ let v9 : string = method0(v6) │
00:06:49 #17831 [Verbose] > │ let v10 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #17832 [Verbose] > │ let v11 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v9 v10 │
00:06:49 #17833 [Verbose] > │ let v12 : string = "String::from($0)" │
00:06:49 #17834 [Verbose] > │ let v13 : std_string_String = Fable.Core.RustInterop.emitRustExpr v11 │
00:06:49 #17835 [Verbose] > │ v12 │
00:06:49 #17836 [Verbose] > │ let v14 : string = "std::path::PathBuf::from($0)" │
00:06:49 #17837 [Verbose] > │ let v15 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v13 v14 │
00:06:49 #17838 [Verbose] > │ let v16 : string = method0(v7) │
00:06:49 #17839 [Verbose] > │ let v17 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #17840 [Verbose] > │ let v18 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v16 v17 │
00:06:49 #17841 [Verbose] > │ let v19 : string = "String::from($0)" │
00:06:49 #17842 [Verbose] > │ let v20 : std_string_String = Fable.Core.RustInterop.emitRustExpr v18 │
00:06:49 #17843 [Verbose] > │ v19 │
00:06:49 #17844 [Verbose] > │ let v21 : string = "$0.join($1)" │
00:06:49 #17845 [Verbose] > │ let v22 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:49 #17846 [Verbose] > │ (v15, v20) v21 │
00:06:49 #17847 [Verbose] > │ let v23 : string = "$0.display().to_string()" │
00:06:49 #17848 [Verbose] > │ let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22 │
00:06:49 #17849 [Verbose] > │ v23 │
00:06:49 #17850 [Verbose] > │ let v25 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #17851 [Verbose] > │ let v26 : string = Fable.Core.RustInterop.emitRustExpr v24 v25 │
00:06:49 #17852 [Verbose] > │ v26 │
00:06:49 #17853 [Verbose] > │ #endif │
00:06:49 #17854 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #17855 [Verbose] > │ let v27 : string = null |> unbox<string> │
00:06:49 #17856 [Verbose] > │ v27 │
00:06:49 #17857 [Verbose] > │ #endif │
00:06:49 #17858 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #17859 [Verbose] > │ let v28 : string = null |> unbox<string> │
00:06:49 #17860 [Verbose] > │ v28 │
00:06:49 #17861 [Verbose] > │ #endif │
00:06:49 #17862 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17863 [Verbose] > │ let v29 : string = System.IO.Path.Combine (v6, v7) │
00:06:49 #17864 [Verbose] > │ v29 │
00:06:49 #17865 [Verbose] > │ #endif │
00:06:49 #17866 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17867 [Verbose] > │ let v30 : string = null |> unbox<string> │
00:06:49 #17868 [Verbose] > │ v30 │
00:06:49 #17869 [Verbose] > │ #endif │
00:06:49 #17870 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #17871 [Verbose] > │ let v31 : string = null |> unbox<string> │
00:06:49 #17872 [Verbose] > │ v31 │
00:06:49 #17873 [Verbose] > │ #endif │
00:06:49 #17874 [Verbose] > │ |> fun x -> _v8 <- Some x │
00:06:49 #17875 [Verbose] > │ let v32 : string = _v8 |> Option.get │
00:06:49 #17876 [Verbose] > │ let v33 : System.DateTime = System.DateTime.Now │
00:06:49 #17877 [Verbose] > │ let v34 : System.Guid = System.Guid.NewGuid () │
00:06:49 #17878 [Verbose] > │ let v35 : (System.Guid -> string) = _.ToString() │
00:06:49 #17879 [Verbose] > │ let v36 : string = v35 v34 │
00:06:49 #17880 [Verbose] > │ let v37 : string = v33.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:06:49 #17881 [Verbose] > │ let v38 : System.Guid = System.Guid $"{v37}{v36.[v37.Length..]}" │
00:06:49 #17882 [Verbose] > │ let v39 : (System.Guid -> string) = _.ToString() │
00:06:49 #17883 [Verbose] > │ let v40 : string = v39 v38 │
00:06:49 #17884 [Verbose] > │ let v41 : string option = None │
00:06:49 #17885 [Verbose] > │ let mutable _v41 = v41 │
00:06:49 #17886 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #17887 [Verbose] > │ let v42 : string = method0(v32) │
00:06:49 #17888 [Verbose] > │ let v43 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #17889 [Verbose] > │ let v44 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v42 v43 │
00:06:49 #17890 [Verbose] > │ let v45 : string = "String::from($0)" │
00:06:49 #17891 [Verbose] > │ let v46 : std_string_String = Fable.Core.RustInterop.emitRustExpr v44 │
00:06:49 #17892 [Verbose] > │ v45 │
00:06:49 #17893 [Verbose] > │ let v47 : string = "std::path::PathBuf::from($0)" │
00:06:49 #17894 [Verbose] > │ let v48 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v46 v47 │
00:06:49 #17895 [Verbose] > │ let v49 : string = method0(v40) │
00:06:49 #17896 [Verbose] > │ let v50 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #17897 [Verbose] > │ let v51 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v49 v50 │
00:06:49 #17898 [Verbose] > │ let v52 : string = "String::from($0)" │
00:06:49 #17899 [Verbose] > │ let v53 : std_string_String = Fable.Core.RustInterop.emitRustExpr v51 │
00:06:49 #17900 [Verbose] > │ v52 │
00:06:49 #17901 [Verbose] > │ let v54 : string = "$0.join($1)" │
00:06:49 #17902 [Verbose] > │ let v55 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:49 #17903 [Verbose] > │ (v48, v53) v54 │
00:06:49 #17904 [Verbose] > │ let v56 : string = "$0.display().to_string()" │
00:06:49 #17905 [Verbose] > │ let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55 │
00:06:49 #17906 [Verbose] > │ v56 │
00:06:49 #17907 [Verbose] > │ let v58 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #17908 [Verbose] > │ let v59 : string = Fable.Core.RustInterop.emitRustExpr v57 v58 │
00:06:49 #17909 [Verbose] > │ v59 │
00:06:49 #17910 [Verbose] > │ #endif │
00:06:49 #17911 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #17912 [Verbose] > │ let v60 : string = null |> unbox<string> │
00:06:49 #17913 [Verbose] > │ v60 │
00:06:49 #17914 [Verbose] > │ #endif │
00:06:49 #17915 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #17916 [Verbose] > │ let v61 : string = null |> unbox<string> │
00:06:49 #17917 [Verbose] > │ v61 │
00:06:49 #17918 [Verbose] > │ #endif │
00:06:49 #17919 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17920 [Verbose] > │ let v62 : string = System.IO.Path.Combine (v32, v40) │
00:06:49 #17921 [Verbose] > │ v62 │
00:06:49 #17922 [Verbose] > │ #endif │
00:06:49 #17923 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17924 [Verbose] > │ let v63 : string = null |> unbox<string> │
00:06:49 #17925 [Verbose] > │ v63 │
00:06:49 #17926 [Verbose] > │ #endif │
00:06:49 #17927 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #17928 [Verbose] > │ let v64 : string = null |> unbox<string> │
00:06:49 #17929 [Verbose] > │ v64 │
00:06:49 #17930 [Verbose] > │ #endif │
00:06:49 #17931 [Verbose] > │ |> fun x -> _v41 <- Some x │
00:06:49 #17932 [Verbose] > │ let v65 : string = _v41 |> Option.get │
00:06:49 #17933 [Verbose] > │ v65 │
00:06:49 #17934 [Verbose] > │ #endif │
00:06:49 #17935 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17936 [Verbose] > │ let v66 : string = null |> unbox<string> │
00:06:49 #17937 [Verbose] > │ v66 │
00:06:49 #17938 [Verbose] > │ #endif │
00:06:49 #17939 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #17940 [Verbose] > │ let v67 : string = null |> unbox<string> │
00:06:49 #17941 [Verbose] > │ v67 │
00:06:49 #17942 [Verbose] > │ #endif │
00:06:49 #17943 [Verbose] > │ |> fun x -> _v0 <- Some x │
00:06:49 #17944 [Verbose] > │ let v68 : string = _v0 |> Option.get │
00:06:49 #17945 [Verbose] > │ v68 │
00:06:49 #17946 [Verbose] > │ and closure3 () () : string = │
00:06:49 #17947 [Verbose] > │ let v0 : string = "" │
00:06:49 #17948 [Verbose] > │ v0 │
00:06:49 #17949 [Verbose] > │ and closure2 (v0 : string, v1 : string) () : string = │
00:06:49 #17950 [Verbose] > │ let v2 : (unit -> string) = closure3() │
00:06:49 #17951 [Verbose] > │ let v3 : string = $"temp_folder: {v0} / result: {v1} {v2 ()}" │
00:06:49 #17952 [Verbose] > │ v3 │
00:06:49 #17953 [Verbose] > │ and closure1 () () : string = │
00:06:49 #17954 [Verbose] > │ let v0 : string option = None │
00:06:49 #17955 [Verbose] > │ let mutable _v0 = v0 │
00:06:49 #17956 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #17957 [Verbose] > │ let v1 : string = null |> unbox<string> │
00:06:49 #17958 [Verbose] > │ v1 │
00:06:49 #17959 [Verbose] > │ #endif │
00:06:49 #17960 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #17961 [Verbose] > │ let v2 : string = null |> unbox<string> │
00:06:49 #17962 [Verbose] > │ v2 │
00:06:49 #17963 [Verbose] > │ #endif │
00:06:49 #17964 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #17965 [Verbose] > │ let v3 : string = null |> unbox<string> │
00:06:49 #17966 [Verbose] > │ v3 │
00:06:49 #17967 [Verbose] > │ #endif │
00:06:49 #17968 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17969 [Verbose] > │ let v4 : string option = None │
00:06:49 #17970 [Verbose] > │ let mutable _v4 = v4 │
00:06:49 #17971 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #17972 [Verbose] > │ let v5 : string = null |> unbox<string> │
00:06:49 #17973 [Verbose] > │ v5 │
00:06:49 #17974 [Verbose] > │ #endif │
00:06:49 #17975 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #17976 [Verbose] > │ let v6 : string = null |> unbox<string> │
00:06:49 #17977 [Verbose] > │ v6 │
00:06:49 #17978 [Verbose] > │ #endif │
00:06:49 #17979 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #17980 [Verbose] > │ let v7 : string = null |> unbox<string> │
00:06:49 #17981 [Verbose] > │ v7 │
00:06:49 #17982 [Verbose] > │ #endif │
00:06:49 #17983 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #17984 [Verbose] > │ let v8 : string = │
00:06:49 #17985 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name │
00:06:49 #17986 [Verbose] > │ let v9 : (unit -> string) = System.IO.Path.GetTempPath │
00:06:49 #17987 [Verbose] > │ let v10 : string = v9 () │
00:06:49 #17988 [Verbose] > │ let v11 : string = $"!{v8}" │
00:06:49 #17989 [Verbose] > │ let v12 : string option = None │
00:06:49 #17990 [Verbose] > │ let mutable _v12 = v12 │
00:06:49 #17991 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #17992 [Verbose] > │ let v13 : string = method0(v10) │
00:06:49 #17993 [Verbose] > │ let v14 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #17994 [Verbose] > │ let v15 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v13 v14 │
00:06:49 #17995 [Verbose] > │ let v16 : string = "String::from($0)" │
00:06:49 #17996 [Verbose] > │ let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15 │
00:06:49 #17997 [Verbose] > │ v16 │
00:06:49 #17998 [Verbose] > │ let v18 : string = "std::path::PathBuf::from($0)" │
00:06:49 #17999 [Verbose] > │ let v19 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v17 v18 │
00:06:49 #18000 [Verbose] > │ let v20 : string = method0(v11) │
00:06:49 #18001 [Verbose] > │ let v21 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18002 [Verbose] > │ let v22 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v20 v21 │
00:06:49 #18003 [Verbose] > │ let v23 : string = "String::from($0)" │
00:06:49 #18004 [Verbose] > │ let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22 │
00:06:49 #18005 [Verbose] > │ v23 │
00:06:49 #18006 [Verbose] > │ let v25 : string = "$0.join($1)" │
00:06:49 #18007 [Verbose] > │ let v26 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:49 #18008 [Verbose] > │ (v19, v24) v25 │
00:06:49 #18009 [Verbose] > │ let v27 : string = "$0.display().to_string()" │
00:06:49 #18010 [Verbose] > │ let v28 : std_string_String = Fable.Core.RustInterop.emitRustExpr v26 │
00:06:49 #18011 [Verbose] > │ v27 │
00:06:49 #18012 [Verbose] > │ let v29 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #18013 [Verbose] > │ let v30 : string = Fable.Core.RustInterop.emitRustExpr v28 v29 │
00:06:49 #18014 [Verbose] > │ v30 │
00:06:49 #18015 [Verbose] > │ #endif │
00:06:49 #18016 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18017 [Verbose] > │ let v31 : string = null |> unbox<string> │
00:06:49 #18018 [Verbose] > │ v31 │
00:06:49 #18019 [Verbose] > │ #endif │
00:06:49 #18020 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18021 [Verbose] > │ let v32 : string = null |> unbox<string> │
00:06:49 #18022 [Verbose] > │ v32 │
00:06:49 #18023 [Verbose] > │ #endif │
00:06:49 #18024 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18025 [Verbose] > │ let v33 : string = System.IO.Path.Combine (v10, v11) │
00:06:49 #18026 [Verbose] > │ v33 │
00:06:49 #18027 [Verbose] > │ #endif │
00:06:49 #18028 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18029 [Verbose] > │ let v34 : string = null |> unbox<string> │
00:06:49 #18030 [Verbose] > │ v34 │
00:06:49 #18031 [Verbose] > │ #endif │
00:06:49 #18032 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18033 [Verbose] > │ let v35 : string = null |> unbox<string> │
00:06:49 #18034 [Verbose] > │ v35 │
00:06:49 #18035 [Verbose] > │ #endif │
00:06:49 #18036 [Verbose] > │ |> fun x -> _v12 <- Some x │
00:06:49 #18037 [Verbose] > │ let v36 : string = _v12 |> Option.get │
00:06:49 #18038 [Verbose] > │ let v37 : System.DateTime = System.DateTime.Now │
00:06:49 #18039 [Verbose] > │ let v38 : System.Guid = System.Guid.NewGuid () │
00:06:49 #18040 [Verbose] > │ let v39 : (System.Guid -> string) = _.ToString() │
00:06:49 #18041 [Verbose] > │ let v40 : string = v39 v38 │
00:06:49 #18042 [Verbose] > │ let v41 : string = v37.ToString "yyyyMMdd-HHmm-ssff-ffff-f" │
00:06:49 #18043 [Verbose] > │ let v42 : System.Guid = System.Guid $"{v41}{v40.[v41.Length..]}" │
00:06:49 #18044 [Verbose] > │ let v43 : (System.Guid -> string) = _.ToString() │
00:06:49 #18045 [Verbose] > │ let v44 : string = v43 v42 │
00:06:49 #18046 [Verbose] > │ let v45 : string option = None │
00:06:49 #18047 [Verbose] > │ let mutable _v45 = v45 │
00:06:49 #18048 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18049 [Verbose] > │ let v46 : string = method0(v36) │
00:06:49 #18050 [Verbose] > │ let v47 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18051 [Verbose] > │ let v48 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v46 v47 │
00:06:49 #18052 [Verbose] > │ let v49 : string = "String::from($0)" │
00:06:49 #18053 [Verbose] > │ let v50 : std_string_String = Fable.Core.RustInterop.emitRustExpr v48 │
00:06:49 #18054 [Verbose] > │ v49 │
00:06:49 #18055 [Verbose] > │ let v51 : string = "std::path::PathBuf::from($0)" │
00:06:49 #18056 [Verbose] > │ let v52 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v50 v51 │
00:06:49 #18057 [Verbose] > │ let v53 : string = method0(v44) │
00:06:49 #18058 [Verbose] > │ let v54 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18059 [Verbose] > │ let v55 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v53 v54 │
00:06:49 #18060 [Verbose] > │ let v56 : string = "String::from($0)" │
00:06:49 #18061 [Verbose] > │ let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55 │
00:06:49 #18062 [Verbose] > │ v56 │
00:06:49 #18063 [Verbose] > │ let v58 : string = "$0.join($1)" │
00:06:49 #18064 [Verbose] > │ let v59 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:49 #18065 [Verbose] > │ (v52, v57) v58 │
00:06:49 #18066 [Verbose] > │ let v60 : string = "$0.display().to_string()" │
00:06:49 #18067 [Verbose] > │ let v61 : std_string_String = Fable.Core.RustInterop.emitRustExpr v59 │
00:06:49 #18068 [Verbose] > │ v60 │
00:06:49 #18069 [Verbose] > │ let v62 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #18070 [Verbose] > │ let v63 : string = Fable.Core.RustInterop.emitRustExpr v61 v62 │
00:06:49 #18071 [Verbose] > │ v63 │
00:06:49 #18072 [Verbose] > │ #endif │
00:06:49 #18073 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18074 [Verbose] > │ let v64 : string = null |> unbox<string> │
00:06:49 #18075 [Verbose] > │ v64 │
00:06:49 #18076 [Verbose] > │ #endif │
00:06:49 #18077 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18078 [Verbose] > │ let v65 : string = null |> unbox<string> │
00:06:49 #18079 [Verbose] > │ v65 │
00:06:49 #18080 [Verbose] > │ #endif │
00:06:49 #18081 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18082 [Verbose] > │ let v66 : string = System.IO.Path.Combine (v36, v44) │
00:06:49 #18083 [Verbose] > │ v66 │
00:06:49 #18084 [Verbose] > │ #endif │
00:06:49 #18085 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18086 [Verbose] > │ let v67 : string = null |> unbox<string> │
00:06:49 #18087 [Verbose] > │ v67 │
00:06:49 #18088 [Verbose] > │ #endif │
00:06:49 #18089 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18090 [Verbose] > │ let v68 : string = null |> unbox<string> │
00:06:49 #18091 [Verbose] > │ v68 │
00:06:49 #18092 [Verbose] > │ #endif │
00:06:49 #18093 [Verbose] > │ |> fun x -> _v45 <- Some x │
00:06:49 #18094 [Verbose] > │ let v69 : string = _v45 |> Option.get │
00:06:49 #18095 [Verbose] > │ v69 │
00:06:49 #18096 [Verbose] > │ #endif │
00:06:49 #18097 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18098 [Verbose] > │ let v70 : string = null |> unbox<string> │
00:06:49 #18099 [Verbose] > │ v70 │
00:06:49 #18100 [Verbose] > │ #endif │
00:06:49 #18101 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18102 [Verbose] > │ let v71 : string = null |> unbox<string> │
00:06:49 #18103 [Verbose] > │ v71 │
00:06:49 #18104 [Verbose] > │ #endif │
00:06:49 #18105 [Verbose] > │ |> fun x -> _v4 <- Some x │
00:06:49 #18106 [Verbose] > │ let v72 : string = _v4 |> Option.get │
00:06:49 #18107 [Verbose] > │ let v73 : System.IO.DirectoryInfo option = None │
00:06:49 #18108 [Verbose] > │ let mutable _v73 = v73 │
00:06:49 #18109 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18110 [Verbose] > │ let v74 : System.IO.DirectoryInfo = null |> │
00:06:49 #18111 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:49 #18112 [Verbose] > │ v74 │
00:06:49 #18113 [Verbose] > │ #endif │
00:06:49 #18114 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18115 [Verbose] > │ let v75 : System.IO.DirectoryInfo = null |> │
00:06:49 #18116 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:49 #18117 [Verbose] > │ v75 │
00:06:49 #18118 [Verbose] > │ #endif │
00:06:49 #18119 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18120 [Verbose] > │ let v76 : System.IO.DirectoryInfo = null |> │
00:06:49 #18121 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:49 #18122 [Verbose] > │ v76 │
00:06:49 #18123 [Verbose] > │ #endif │
00:06:49 #18124 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18125 [Verbose] > │ let v77 : (string -> System.IO.DirectoryInfo) = │
00:06:49 #18126 [Verbose] > │ System.IO.Directory.CreateDirectory │
00:06:49 #18127 [Verbose] > │ let v78 : System.IO.DirectoryInfo = v77 v72 │
00:06:49 #18128 [Verbose] > │ v78 │
00:06:49 #18129 [Verbose] > │ #endif │
00:06:49 #18130 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18131 [Verbose] > │ let v79 : System.IO.DirectoryInfo = null |> │
00:06:49 #18132 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:49 #18133 [Verbose] > │ v79 │
00:06:49 #18134 [Verbose] > │ #endif │
00:06:49 #18135 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18136 [Verbose] > │ let v80 : System.IO.DirectoryInfo = null |> │
00:06:49 #18137 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:49 #18138 [Verbose] > │ v80 │
00:06:49 #18139 [Verbose] > │ #endif │
00:06:49 #18140 [Verbose] > │ |> fun x -> _v73 <- Some x │
00:06:49 #18141 [Verbose] > │ let v81 : System.IO.DirectoryInfo = _v73 |> Option.get │
00:06:49 #18142 [Verbose] > │ let v82 : bool option = None │
00:06:49 #18143 [Verbose] > │ let mutable _v82 = v82 │
00:06:49 #18144 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18145 [Verbose] > │ let v83 : bool = null |> unbox<bool> │
00:06:49 #18146 [Verbose] > │ v83 │
00:06:49 #18147 [Verbose] > │ #endif │
00:06:49 #18148 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18149 [Verbose] > │ let v84 : bool = null |> unbox<bool> │
00:06:49 #18150 [Verbose] > │ v84 │
00:06:49 #18151 [Verbose] > │ #endif │
00:06:49 #18152 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18153 [Verbose] > │ let v85 : bool = null |> unbox<bool> │
00:06:49 #18154 [Verbose] > │ v85 │
00:06:49 #18155 [Verbose] > │ #endif │
00:06:49 #18156 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18157 [Verbose] > │ let v86 : bool = v81.Exists │
00:06:49 #18158 [Verbose] > │ v86 │
00:06:49 #18159 [Verbose] > │ #endif │
00:06:49 #18160 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18161 [Verbose] > │ let v87 : bool = null |> unbox<bool> │
00:06:49 #18162 [Verbose] > │ v87 │
00:06:49 #18163 [Verbose] > │ #endif │
00:06:49 #18164 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18165 [Verbose] > │ let v88 : bool = null |> unbox<bool> │
00:06:49 #18166 [Verbose] > │ v88 │
00:06:49 #18167 [Verbose] > │ #endif │
00:06:49 #18168 [Verbose] > │ |> fun x -> _v82 <- Some x │
00:06:49 #18169 [Verbose] > │ let v89 : bool = _v82 |> Option.get │
00:06:49 #18170 [Verbose] > │ let v90 : bool = v89 = false │
00:06:49 #18171 [Verbose] > │ if v90 then │
00:06:49 #18172 [Verbose] > │ let v91 : System.DateTime option = None │
00:06:49 #18173 [Verbose] > │ let mutable _v91 = v91 │
00:06:49 #18174 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18175 [Verbose] > │ let v92 : System.DateTime = null |> unbox<System.DateTime> │
00:06:49 #18176 [Verbose] > │ v92 │
00:06:49 #18177 [Verbose] > │ #endif │
00:06:49 #18178 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18179 [Verbose] > │ let v93 : System.DateTime = null |> unbox<System.DateTime> │
00:06:49 #18180 [Verbose] > │ v93 │
00:06:49 #18181 [Verbose] > │ #endif │
00:06:49 #18182 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18183 [Verbose] > │ let v94 : System.DateTime = null |> unbox<System.DateTime> │
00:06:49 #18184 [Verbose] > │ v94 │
00:06:49 #18185 [Verbose] > │ #endif │
00:06:49 #18186 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18187 [Verbose] > │ let v95 : System.DateTime = v81.CreationTime │
00:06:49 #18188 [Verbose] > │ v95 │
00:06:49 #18189 [Verbose] > │ #endif │
00:06:49 #18190 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18191 [Verbose] > │ let v96 : System.DateTime = null |> unbox<System.DateTime> │
00:06:49 #18192 [Verbose] > │ v96 │
00:06:49 #18193 [Verbose] > │ #endif │
00:06:49 #18194 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18195 [Verbose] > │ let v97 : System.DateTime = null |> unbox<System.DateTime> │
00:06:49 #18196 [Verbose] > │ v97 │
00:06:49 #18197 [Verbose] > │ #endif │
00:06:49 #18198 [Verbose] > │ |> fun x -> _v91 <- Some x │
00:06:49 #18199 [Verbose] > │ let v98 : System.DateTime = _v91 |> Option.get │
00:06:49 #18200 [Verbose] > │ let v99 : obj = {| Exists = v89; CreationTime = v98 |} │
00:06:49 #18201 [Verbose] > │ let v100 : string = $"%A{v99}" │
00:06:49 #18202 [Verbose] > │ let v101 : (unit -> string) = closure2(v72, v100) │
00:06:49 #18203 [Verbose] > │ let v102 : string = $"create_temp_directory / {v101 ()}" │
00:06:49 #18204 [Verbose] > │ System.Console.WriteLine v102 │
00:06:49 #18205 [Verbose] > │ () │
00:06:49 #18206 [Verbose] > │ v72 │
00:06:49 #18207 [Verbose] > │ #endif │
00:06:49 #18208 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18209 [Verbose] > │ let v103 : string = null |> unbox<string> │
00:06:49 #18210 [Verbose] > │ v103 │
00:06:49 #18211 [Verbose] > │ #endif │
00:06:49 #18212 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18213 [Verbose] > │ let v104 : string = null |> unbox<string> │
00:06:49 #18214 [Verbose] > │ v104 │
00:06:49 #18215 [Verbose] > │ #endif │
00:06:49 #18216 [Verbose] > │ |> fun x -> _v0 <- Some x │
00:06:49 #18217 [Verbose] > │ let v105 : string = _v0 |> Option.get │
00:06:49 #18218 [Verbose] > │ v105 │
00:06:49 #18219 [Verbose] > │ and closure4 () () : string = │
00:06:49 #18220 [Verbose] > │ let v0 : string = __SOURCE_DIRECTORY__ │
00:06:49 #18221 [Verbose] > │ v0 │
00:06:49 #18222 [Verbose] > │ and closure8 () (v0 : string) : bool = │
00:06:49 #18223 [Verbose] > │ let v1 : bool option = None │
00:06:49 #18224 [Verbose] > │ let mutable _v1 = v1 │
00:06:49 #18225 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18226 [Verbose] > │ let v2 : string = method0(v0) │
00:06:49 #18227 [Verbose] > │ let v3 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18228 [Verbose] > │ let v4 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v2 v3 │
00:06:49 #18229 [Verbose] > │ let v5 : string = "String::from($0)" │
00:06:49 #18230 [Verbose] > │ let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5 │
00:06:49 #18231 [Verbose] > │ let v7 : string = "std::path::PathBuf::from($0)" │
00:06:49 #18232 [Verbose] > │ let v8 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v6 v7 │
00:06:49 #18233 [Verbose] > │ let v9 : string = "v8.exists()" │
00:06:49 #18234 [Verbose] > │ let v10 : bool = Fable.Core.RustInterop.emitRustExpr () v9 │
00:06:49 #18235 [Verbose] > │ let v13 : bool = │
00:06:49 #18236 [Verbose] > │ if v10 then │
00:06:49 #18237 [Verbose] > │ let v11 : string = "v8.is_file()" │
00:06:49 #18238 [Verbose] > │ let v12 : bool = Fable.Core.RustInterop.emitRustExpr () v11 │
00:06:49 #18239 [Verbose] > │ v12 │
00:06:49 #18240 [Verbose] > │ else │
00:06:49 #18241 [Verbose] > │ false │
00:06:49 #18242 [Verbose] > │ v13 │
00:06:49 #18243 [Verbose] > │ #endif │
00:06:49 #18244 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18245 [Verbose] > │ let v14 : bool = null |> unbox<bool> │
00:06:49 #18246 [Verbose] > │ v14 │
00:06:49 #18247 [Verbose] > │ #endif │
00:06:49 #18248 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18249 [Verbose] > │ let v15 : bool = null |> unbox<bool> │
00:06:49 #18250 [Verbose] > │ v15 │
00:06:49 #18251 [Verbose] > │ #endif │
00:06:49 #18252 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18253 [Verbose] > │ let v16 : (string -> bool) = System.IO.File.Exists │
00:06:49 #18254 [Verbose] > │ let v17 : bool = v16 v0 │
00:06:49 #18255 [Verbose] > │ v17 │
00:06:49 #18256 [Verbose] > │ #endif │
00:06:49 #18257 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18258 [Verbose] > │ let v18 : bool = null |> unbox<bool> │
00:06:49 #18259 [Verbose] > │ v18 │
00:06:49 #18260 [Verbose] > │ #endif │
00:06:49 #18261 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18262 [Verbose] > │ let v19 : bool = null |> unbox<bool> │
00:06:49 #18263 [Verbose] > │ v19 │
00:06:49 #18264 [Verbose] > │ #endif │
00:06:49 #18265 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:06:49 #18266 [Verbose] > │ let v20 : bool = _v1 |> Option.get │
00:06:49 #18267 [Verbose] > │ v20 │
00:06:49 #18268 [Verbose] > │ and closure9 () (v0 : string) : bool = │
00:06:49 #18269 [Verbose] > │ let v1 : bool option = None │
00:06:49 #18270 [Verbose] > │ let mutable _v1 = v1 │
00:06:49 #18271 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18272 [Verbose] > │ let v2 : string = method0(v0) │
00:06:49 #18273 [Verbose] > │ let v3 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18274 [Verbose] > │ let v4 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v2 v3 │
00:06:49 #18275 [Verbose] > │ let v5 : string = "String::from($0)" │
00:06:49 #18276 [Verbose] > │ let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5 │
00:06:49 #18277 [Verbose] > │ let v7 : string = "std::path::PathBuf::from($0)" │
00:06:49 #18278 [Verbose] > │ let v8 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v6 v7 │
00:06:49 #18279 [Verbose] > │ let v9 : string = "v8.exists()" │
00:06:49 #18280 [Verbose] > │ let v10 : bool = Fable.Core.RustInterop.emitRustExpr () v9 │
00:06:49 #18281 [Verbose] > │ let v13 : bool = │
00:06:49 #18282 [Verbose] > │ if v10 then │
00:06:49 #18283 [Verbose] > │ let v11 : string = "v8.is_dir()" │
00:06:49 #18284 [Verbose] > │ let v12 : bool = Fable.Core.RustInterop.emitRustExpr () v11 │
00:06:49 #18285 [Verbose] > │ v12 │
00:06:49 #18286 [Verbose] > │ else │
00:06:49 #18287 [Verbose] > │ false │
00:06:49 #18288 [Verbose] > │ v13 │
00:06:49 #18289 [Verbose] > │ #endif │
00:06:49 #18290 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18291 [Verbose] > │ let v14 : bool = null |> unbox<bool> │
00:06:49 #18292 [Verbose] > │ v14 │
00:06:49 #18293 [Verbose] > │ #endif │
00:06:49 #18294 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18295 [Verbose] > │ let v15 : bool = null |> unbox<bool> │
00:06:49 #18296 [Verbose] > │ v15 │
00:06:49 #18297 [Verbose] > │ #endif │
00:06:49 #18298 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18299 [Verbose] > │ let v16 : (string -> bool) = System.IO.Directory.Exists │
00:06:49 #18300 [Verbose] > │ let v17 : bool = v16 v0 │
00:06:49 #18301 [Verbose] > │ v17 │
00:06:49 #18302 [Verbose] > │ #endif │
00:06:49 #18303 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18304 [Verbose] > │ let v18 : bool = null |> unbox<bool> │
00:06:49 #18305 [Verbose] > │ v18 │
00:06:49 #18306 [Verbose] > │ #endif │
00:06:49 #18307 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18308 [Verbose] > │ let v19 : bool = null |> unbox<bool> │
00:06:49 #18309 [Verbose] > │ v19 │
00:06:49 #18310 [Verbose] > │ #endif │
00:06:49 #18311 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:06:49 #18312 [Verbose] > │ let v20 : bool = _v1 |> Option.get │
00:06:49 #18313 [Verbose] > │ v20 │
00:06:49 #18314 [Verbose] > │ and closure10 () (v0 : string) : string option = │
00:06:49 #18315 [Verbose] > │ let v1 : US0 option = None │
00:06:49 #18316 [Verbose] > │ let mutable _v1 = v1 │
00:06:49 #18317 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18318 [Verbose] > │ let v2 : string = method0(v0) │
00:06:49 #18319 [Verbose] > │ let v3 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18320 [Verbose] > │ let v4 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v2 v3 │
00:06:49 #18321 [Verbose] > │ let v5 : string = "String::from($0)" │
00:06:49 #18322 [Verbose] > │ let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5 │
00:06:49 #18323 [Verbose] > │ let v7 : string = "std::path::PathBuf::from($0)" │
00:06:49 #18324 [Verbose] > │ let v8 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v6 v7 │
00:06:49 #18325 [Verbose] > │ let v9 : string = "$0.parent().map(std::path::PathBuf::from)" │
00:06:49 #18326 [Verbose] > │ let v10 : std_path_PathBuf option = Fable.Core.RustInterop.emitRustExpr │
00:06:49 #18327 [Verbose] > │ v8 v9 │
00:06:49 #18328 [Verbose] > │ let v11 : string = "v10?" │
00:06:49 #18329 [Verbose] > │ let v12 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr () v11 │
00:06:49 #18330 [Verbose] > │ let v13 : string = "$0.display().to_string()" │
00:06:49 #18331 [Verbose] > │ let v14 : std_string_String = Fable.Core.RustInterop.emitRustExpr v12 │
00:06:49 #18332 [Verbose] > │ v13 │
00:06:49 #18333 [Verbose] > │ let v15 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #18334 [Verbose] > │ let v16 : string = Fable.Core.RustInterop.emitRustExpr v14 v15 │
00:06:49 #18335 [Verbose] > │ let v17 : US0 = US0_0(v16) │
00:06:49 #18336 [Verbose] > │ v17 │
00:06:49 #18337 [Verbose] > │ #endif │
00:06:49 #18338 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18339 [Verbose] > │ let v18 : US0 = null |> unbox<US0> │
00:06:49 #18340 [Verbose] > │ v18 │
00:06:49 #18341 [Verbose] > │ #endif │
00:06:49 #18342 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18343 [Verbose] > │ let v19 : US0 = null |> unbox<US0> │
00:06:49 #18344 [Verbose] > │ v19 │
00:06:49 #18345 [Verbose] > │ #endif │
00:06:49 #18346 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18347 [Verbose] > │ let v20 : (string -> System.IO.DirectoryInfo) = │
00:06:49 #18348 [Verbose] > │ System.IO.Directory.GetParent │
00:06:49 #18349 [Verbose] > │ let v21 : System.IO.DirectoryInfo = v20 v0 │
00:06:49 #18350 [Verbose] > │ let v22 : System.IO.DirectoryInfo = null |> │
00:06:49 #18351 [Verbose] > │ unbox<System.IO.DirectoryInfo> │
00:06:49 #18352 [Verbose] > │ let v23 : bool = v21 = v22 │
00:06:49 #18353 [Verbose] > │ let v34 : US0 = │
00:06:49 #18354 [Verbose] > │ if v23 then │
00:06:49 #18355 [Verbose] > │ US0_1 │
00:06:49 #18356 [Verbose] > │ else │
00:06:49 #18357 [Verbose] > │ let v25 : string option = None │
00:06:49 #18358 [Verbose] > │ let mutable _v25 = v25 │
00:06:49 #18359 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18360 [Verbose] > │ let v26 : string = null |> unbox<string> │
00:06:49 #18361 [Verbose] > │ v26 │
00:06:49 #18362 [Verbose] > │ #endif │
00:06:49 #18363 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18364 [Verbose] > │ let v27 : string = null |> unbox<string> │
00:06:49 #18365 [Verbose] > │ v27 │
00:06:49 #18366 [Verbose] > │ #endif │
00:06:49 #18367 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18368 [Verbose] > │ let v28 : string = null |> unbox<string> │
00:06:49 #18369 [Verbose] > │ v28 │
00:06:49 #18370 [Verbose] > │ #endif │
00:06:49 #18371 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18372 [Verbose] > │ let v29 : string = v21.FullName │
00:06:49 #18373 [Verbose] > │ v29 │
00:06:49 #18374 [Verbose] > │ #endif │
00:06:49 #18375 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18376 [Verbose] > │ let v30 : string = null |> unbox<string> │
00:06:49 #18377 [Verbose] > │ v30 │
00:06:49 #18378 [Verbose] > │ #endif │
00:06:49 #18379 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18380 [Verbose] > │ let v31 : string = null |> unbox<string> │
00:06:49 #18381 [Verbose] > │ v31 │
00:06:49 #18382 [Verbose] > │ #endif │
00:06:49 #18383 [Verbose] > │ |> fun x -> _v25 <- Some x │
00:06:49 #18384 [Verbose] > │ let v32 : string = _v25 |> Option.get │
00:06:49 #18385 [Verbose] > │ US0_0(v32) │
00:06:49 #18386 [Verbose] > │ v34 │
00:06:49 #18387 [Verbose] > │ #endif │
00:06:49 #18388 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18389 [Verbose] > │ let v35 : US0 = null |> unbox<US0> │
00:06:49 #18390 [Verbose] > │ v35 │
00:06:49 #18391 [Verbose] > │ #endif │
00:06:49 #18392 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18393 [Verbose] > │ let v36 : US0 = null |> unbox<US0> │
00:06:49 #18394 [Verbose] > │ v36 │
00:06:49 #18395 [Verbose] > │ #endif │
00:06:49 #18396 [Verbose] > │ |> fun x -> _v1 <- Some x │
00:06:49 #18397 [Verbose] > │ let v37 : US0 = _v1 |> Option.get │
00:06:49 #18398 [Verbose] > │ match v37 with │
00:06:49 #18399 [Verbose] > │ | US0_1 -> (* None *) │
00:06:49 #18400 [Verbose] > │ let v40 : string option = None │
00:06:49 #18401 [Verbose] > │ v40 │
00:06:49 #18402 [Verbose] > │ | US0_0(v38) -> (* Some *) │
00:06:49 #18403 [Verbose] > │ let v39 : string option = Some v38 │
00:06:49 #18404 [Verbose] > │ v39 │
00:06:49 #18405 [Verbose] > │ and method2 () : (string -> string option) = │
00:06:49 #18406 [Verbose] > │ closure10() │
00:06:49 #18407 [Verbose] > │ and closure11 () (v0 : string) : US0 = │
00:06:49 #18408 [Verbose] > │ US0_0(v0) │
00:06:49 #18409 [Verbose] > │ and method3 () : (string -> US0) = │
00:06:49 #18410 [Verbose] > │ closure11() │
00:06:49 #18411 [Verbose] > │ and method4 (v0 : string, v1 : bool, v2 : string, v3 : string) : string = │
00:06:49 #18412 [Verbose] > │ let v4 : string option = None │
00:06:49 #18413 [Verbose] > │ let mutable _v4 = v4 │
00:06:49 #18414 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18415 [Verbose] > │ let v5 : string = method0(v3) │
00:06:49 #18416 [Verbose] > │ let v6 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18417 [Verbose] > │ let v7 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v5 v6 │
00:06:49 #18418 [Verbose] > │ let v8 : string = "String::from($0)" │
00:06:49 #18419 [Verbose] > │ let v9 : std_string_String = Fable.Core.RustInterop.emitRustExpr v7 v8 │
00:06:49 #18420 [Verbose] > │ let v10 : string = "std::path::PathBuf::from($0)" │
00:06:49 #18421 [Verbose] > │ let v11 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v9 v10 │
00:06:49 #18422 [Verbose] > │ let v12 : string = method0(v0) │
00:06:49 #18423 [Verbose] > │ let v13 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18424 [Verbose] > │ let v14 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v12 v13 │
00:06:49 #18425 [Verbose] > │ let v15 : string = "String::from($0)" │
00:06:49 #18426 [Verbose] > │ let v16 : std_string_String = Fable.Core.RustInterop.emitRustExpr v14 │
00:06:49 #18427 [Verbose] > │ v15 │
00:06:49 #18428 [Verbose] > │ let v17 : string = "$0.join($1)" │
00:06:49 #18429 [Verbose] > │ let v18 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:49 #18430 [Verbose] > │ (v11, v16) v17 │
00:06:49 #18431 [Verbose] > │ let v19 : string = "$0.display().to_string()" │
00:06:49 #18432 [Verbose] > │ let v20 : std_string_String = Fable.Core.RustInterop.emitRustExpr v18 │
00:06:49 #18433 [Verbose] > │ v19 │
00:06:49 #18434 [Verbose] > │ let v21 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #18435 [Verbose] > │ let v22 : string = Fable.Core.RustInterop.emitRustExpr v20 v21 │
00:06:49 #18436 [Verbose] > │ v22 │
00:06:49 #18437 [Verbose] > │ #endif │
00:06:49 #18438 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18439 [Verbose] > │ let v23 : string = null |> unbox<string> │
00:06:49 #18440 [Verbose] > │ v23 │
00:06:49 #18441 [Verbose] > │ #endif │
00:06:49 #18442 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18443 [Verbose] > │ let v24 : string = null |> unbox<string> │
00:06:49 #18444 [Verbose] > │ v24 │
00:06:49 #18445 [Verbose] > │ #endif │
00:06:49 #18446 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18447 [Verbose] > │ let v25 : string = System.IO.Path.Combine (v3, v0) │
00:06:49 #18448 [Verbose] > │ v25 │
00:06:49 #18449 [Verbose] > │ #endif │
00:06:49 #18450 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18451 [Verbose] > │ let v26 : string = null |> unbox<string> │
00:06:49 #18452 [Verbose] > │ v26 │
00:06:49 #18453 [Verbose] > │ #endif │
00:06:49 #18454 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18455 [Verbose] > │ let v27 : string = null |> unbox<string> │
00:06:49 #18456 [Verbose] > │ v27 │
00:06:49 #18457 [Verbose] > │ #endif │
00:06:49 #18458 [Verbose] > │ |> fun x -> _v4 <- Some x │
00:06:49 #18459 [Verbose] > │ let v28 : string = _v4 |> Option.get │
00:06:49 #18460 [Verbose] > │ let v31 : (string -> bool) = │
00:06:49 #18461 [Verbose] > │ if v1 then │
00:06:49 #18462 [Verbose] > │ closure8() │
00:06:49 #18463 [Verbose] > │ else │
00:06:49 #18464 [Verbose] > │ closure9() │
00:06:49 #18465 [Verbose] > │ let v32 : bool = v31 v28 │
00:06:49 #18466 [Verbose] > │ if v32 then │
00:06:49 #18467 [Verbose] > │ v3 │
00:06:49 #18468 [Verbose] > │ else │
00:06:49 #18469 [Verbose] > │ let v33 : (string -> string option) = method2() │
00:06:49 #18470 [Verbose] > │ let v34 : string option = v33 v3 │
00:06:49 #18471 [Verbose] > │ let v35 : (string -> US0) = method3() │
00:06:49 #18472 [Verbose] > │ let v36 : US0 = US0_1 │
00:06:49 #18473 [Verbose] > │ let v37 : US0 = v34 |> Option.map v35 |> Option.defaultValue v36 │
00:06:49 #18474 [Verbose] > │ match v37 with │
00:06:49 #18475 [Verbose] > │ | US0_1 -> (* None *) │
00:06:49 #18476 [Verbose] > │ let v40 : string = $"""No parent for {if v1 then "file" else │
00:06:49 #18477 [Verbose] > │ "dir"} '{v0}' at '{v2}'""" │
00:06:49 #18478 [Verbose] > │ failwith<string> v40 │
00:06:49 #18479 [Verbose] > │ | US0_0(v38) -> (* Some *) │
00:06:49 #18480 [Verbose] > │ method4(v0, v1, v2, v38) │
00:06:49 #18481 [Verbose] > │ and method1 (v0 : string, v1 : bool, v2 : string) : string = │
00:06:49 #18482 [Verbose] > │ let v3 : string option = None │
00:06:49 #18483 [Verbose] > │ let mutable _v3 = v3 │
00:06:49 #18484 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18485 [Verbose] > │ let v4 : string = method0(v2) │
00:06:49 #18486 [Verbose] > │ let v5 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18487 [Verbose] > │ let v6 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v4 v5 │
00:06:49 #18488 [Verbose] > │ let v7 : string = "String::from($0)" │
00:06:49 #18489 [Verbose] > │ let v8 : std_string_String = Fable.Core.RustInterop.emitRustExpr v6 v7 │
00:06:49 #18490 [Verbose] > │ let v9 : string = "std::path::PathBuf::from($0)" │
00:06:49 #18491 [Verbose] > │ let v10 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v8 v9 │
00:06:49 #18492 [Verbose] > │ let v11 : string = method0(v0) │
00:06:49 #18493 [Verbose] > │ let v12 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18494 [Verbose] > │ let v13 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v11 v12 │
00:06:49 #18495 [Verbose] > │ let v14 : string = "String::from($0)" │
00:06:49 #18496 [Verbose] > │ let v15 : std_string_String = Fable.Core.RustInterop.emitRustExpr v13 │
00:06:49 #18497 [Verbose] > │ v14 │
00:06:49 #18498 [Verbose] > │ let v16 : string = "$0.join($1)" │
00:06:49 #18499 [Verbose] > │ let v17 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:49 #18500 [Verbose] > │ (v10, v15) v16 │
00:06:49 #18501 [Verbose] > │ let v18 : string = "$0.display().to_string()" │
00:06:49 #18502 [Verbose] > │ let v19 : std_string_String = Fable.Core.RustInterop.emitRustExpr v17 │
00:06:49 #18503 [Verbose] > │ v18 │
00:06:49 #18504 [Verbose] > │ let v20 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #18505 [Verbose] > │ let v21 : string = Fable.Core.RustInterop.emitRustExpr v19 v20 │
00:06:49 #18506 [Verbose] > │ v21 │
00:06:49 #18507 [Verbose] > │ #endif │
00:06:49 #18508 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18509 [Verbose] > │ let v22 : string = null |> unbox<string> │
00:06:49 #18510 [Verbose] > │ v22 │
00:06:49 #18511 [Verbose] > │ #endif │
00:06:49 #18512 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18513 [Verbose] > │ let v23 : string = null |> unbox<string> │
00:06:49 #18514 [Verbose] > │ v23 │
00:06:49 #18515 [Verbose] > │ #endif │
00:06:49 #18516 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18517 [Verbose] > │ let v24 : string = System.IO.Path.Combine (v2, v0) │
00:06:49 #18518 [Verbose] > │ v24 │
00:06:49 #18519 [Verbose] > │ #endif │
00:06:49 #18520 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18521 [Verbose] > │ let v25 : string = null |> unbox<string> │
00:06:49 #18522 [Verbose] > │ v25 │
00:06:49 #18523 [Verbose] > │ #endif │
00:06:49 #18524 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18525 [Verbose] > │ let v26 : string = null |> unbox<string> │
00:06:49 #18526 [Verbose] > │ v26 │
00:06:49 #18527 [Verbose] > │ #endif │
00:06:49 #18528 [Verbose] > │ |> fun x -> _v3 <- Some x │
00:06:49 #18529 [Verbose] > │ let v27 : string = _v3 |> Option.get │
00:06:49 #18530 [Verbose] > │ let v30 : (string -> bool) = │
00:06:49 #18531 [Verbose] > │ if v1 then │
00:06:49 #18532 [Verbose] > │ closure8() │
00:06:49 #18533 [Verbose] > │ else │
00:06:49 #18534 [Verbose] > │ closure9() │
00:06:49 #18535 [Verbose] > │ let v31 : bool = v30 v27 │
00:06:49 #18536 [Verbose] > │ if v31 then │
00:06:49 #18537 [Verbose] > │ v2 │
00:06:49 #18538 [Verbose] > │ else │
00:06:49 #18539 [Verbose] > │ let v32 : (string -> string option) = method2() │
00:06:49 #18540 [Verbose] > │ let v33 : string option = v32 v2 │
00:06:49 #18541 [Verbose] > │ let v34 : (string -> US0) = method3() │
00:06:49 #18542 [Verbose] > │ let v35 : US0 = US0_1 │
00:06:49 #18543 [Verbose] > │ let v36 : US0 = v33 |> Option.map v34 |> Option.defaultValue v35 │
00:06:49 #18544 [Verbose] > │ match v36 with │
00:06:49 #18545 [Verbose] > │ | US0_1 -> (* None *) │
00:06:49 #18546 [Verbose] > │ let v39 : string = $"""No parent for {if v1 then "file" else │
00:06:49 #18547 [Verbose] > │ "dir"} '{v0}' at '{v2}'""" │
00:06:49 #18548 [Verbose] > │ failwith<string> v39 │
00:06:49 #18549 [Verbose] > │ | US0_0(v37) -> (* Some *) │
00:06:49 #18550 [Verbose] > │ method4(v0, v1, v2, v37) │
00:06:49 #18551 [Verbose] > │ and closure7 (v0 : string, v1 : bool) (v2 : string) : string = │
00:06:49 #18552 [Verbose] > │ method1(v0, v1, v2) │
00:06:49 #18553 [Verbose] > │ and closure6 (v0 : string) (v1 : bool) : (string -> string) = │
00:06:49 #18554 [Verbose] > │ closure7(v0, v1) │
00:06:49 #18555 [Verbose] > │ and closure5 () (v0 : string) : (bool -> (string -> string)) = │
00:06:49 #18556 [Verbose] > │ closure6(v0) │
00:06:49 #18557 [Verbose] > │ and closure13 (v0 : string) (v1 : string) : string = │
00:06:49 #18558 [Verbose] > │ let v2 : string option = None │
00:06:49 #18559 [Verbose] > │ let mutable _v2 = v2 │
00:06:49 #18560 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:06:49 #18561 [Verbose] > │ let v3 : string = method0(v0) │
00:06:49 #18562 [Verbose] > │ let v4 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18563 [Verbose] > │ let v5 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v3 v4 │
00:06:49 #18564 [Verbose] > │ let v6 : string = "String::from($0)" │
00:06:49 #18565 [Verbose] > │ let v7 : std_string_String = Fable.Core.RustInterop.emitRustExpr v5 v6 │
00:06:49 #18566 [Verbose] > │ let v8 : string = "std::path::PathBuf::from($0)" │
00:06:49 #18567 [Verbose] > │ let v9 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v7 v8 │
00:06:49 #18568 [Verbose] > │ let v10 : string = method0(v1) │
00:06:49 #18569 [Verbose] > │ let v11 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:06:49 #18570 [Verbose] > │ let v12 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v10 v11 │
00:06:49 #18571 [Verbose] > │ let v13 : string = "String::from($0)" │
00:06:49 #18572 [Verbose] > │ let v14 : std_string_String = Fable.Core.RustInterop.emitRustExpr v12 │
00:06:49 #18573 [Verbose] > │ v13 │
00:06:49 #18574 [Verbose] > │ let v15 : string = "$0.join($1)" │
00:06:49 #18575 [Verbose] > │ let v16 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct │
00:06:49 #18576 [Verbose] > │ (v9, v14) v15 │
00:06:49 #18577 [Verbose] > │ let v17 : string = "$0.display().to_string()" │
00:06:49 #18578 [Verbose] > │ let v18 : std_string_String = Fable.Core.RustInterop.emitRustExpr v16 │
00:06:49 #18579 [Verbose] > │ v17 │
00:06:49 #18580 [Verbose] > │ let v19 : string = "fable_library_rust::String_::fromString($0)" │
00:06:49 #18581 [Verbose] > │ let v20 : string = Fable.Core.RustInterop.emitRustExpr v18 v19 │
00:06:49 #18582 [Verbose] > │ v20 │
00:06:49 #18583 [Verbose] > │ #endif │
00:06:49 #18584 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:06:49 #18585 [Verbose] > │ let v21 : string = null |> unbox<string> │
00:06:49 #18586 [Verbose] > │ v21 │
00:06:49 #18587 [Verbose] > │ #endif │
00:06:49 #18588 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:06:49 #18589 [Verbose] > │ let v22 : string = null |> unbox<string> │
00:06:49 #18590 [Verbose] > │ v22 │
00:06:49 #18591 [Verbose] > │ #endif │
00:06:49 #18592 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18593 [Verbose] > │ let v23 : string = System.IO.Path.Combine (v0, v1) │
00:06:49 #18594 [Verbose] > │ v23 │
00:06:49 #18595 [Verbose] > │ #endif │
00:06:49 #18596 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:06:49 #18597 [Verbose] > │ let v24 : string = null |> unbox<string> │
00:06:49 #18598 [Verbose] > │ v24 │
00:06:49 #18599 [Verbose] > │ #endif │
00:06:49 #18600 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:06:49 #18601 [Verbose] > │ let v25 : string = null |> unbox<string> │
00:06:49 #18602 [Verbose] > │ v25 │
00:06:49 #18603 [Verbose] > │ #endif │
00:06:49 #18604 [Verbose] > │ |> fun x -> _v2 <- Some x │
00:06:49 #18605 [Verbose] > │ let v26 : string = _v2 |> Option.get │
00:06:49 #18606 [Verbose] > │ v26 │
00:06:49 #18607 [Verbose] > │ and closure12 () (v0 : string) : (string -> string) = │
00:06:49 #18608 [Verbose] > │ closure13(v0) │
00:06:49 #18609 [Verbose] > │ let v0 : (unit -> string) = closure0() │
00:06:49 #18610 [Verbose] > │ let create_temp_directory_name () = v0 () │
00:06:49 #18611 [Verbose] > │ let v1 : (unit -> string) = closure1() │
00:06:49 #18612 [Verbose] > │ let create_temp_directory () = v1 () │
00:06:49 #18613 [Verbose] > │ let v2 : (unit -> string) = closure4() │
00:06:49 #18614 [Verbose] > │ let get_source_directory () = v2 () │
00:06:49 #18615 [Verbose] > │ let v3 : (string -> (bool -> (string -> string))) = closure5() │
00:06:49 #18616 [Verbose] > │ let find_parent x = v3 x │
00:06:49 #18617 [Verbose] > │ let v4 : (string -> (string -> string)) = closure12() │
00:06:49 #18618 [Verbose] > │ let (</>) x = v4 x │
00:06:49 #18619 [Verbose] > │ () │
00:06:49 #18620 [Verbose] > │ │
00:06:49 #18621 [Verbose] > │ │
00:06:49 #18622 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:52 #18623 [Verbose] > [NbConvertApp] Converting notebook file_system.dib.ipynb to html
00:06:52 #18624 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:06:52 #18625 [Verbose] > validate(nb)
00:06:53 #18626 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:06:53 #18627 [Verbose] > return _pygments_highlight(
00:06:53 #18628 [Verbose] > [NbConvertApp] Writing 407654 bytes to file_system.dib.html
00:06:54 #18629 [Debug] executeAsync / exitCode: 0 / output.Length: 152044
00:06:54 #18630 [Debug] main / executeCommand / exitCode: 0
00:06:54 #18631 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 rust.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:06:57 #18632 [Verbose] >
00:06:58 #18633 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:06:58 #18634 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:06:58 #18635 [Verbose] > │ # rust │
00:06:58 #18636 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:06:58 #18637 [Verbose] >
00:06:58 #18638 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:06:58 #18639 [Verbose] > // // test
00:06:58 #18640 [Verbose] >
00:06:58 #18641 [Verbose] > open testing
00:07:01 #18642 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3310-1089-1ecc18ab2e2d\main.spi
00:07:02 #18643 [Verbose] >
00:07:02 #18644 [Verbose] > ╭─[ 4.92s - stdout ]───────────────────────────────────────────────────────────╮
00:07:02 #18645 [Verbose] > │ () │
00:07:02 #18646 [Verbose] > │ │
00:07:02 #18647 [Verbose] > │ │
00:07:02 #18648 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:02 #18649 [Verbose] >
00:07:02 #18650 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:02 #18651 [Verbose] > inl types () =
00:07:02 #18652 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func0<$0>\")>]] type
00:07:02 #18653 [Verbose] > Func0<'T> = class end"
00:07:02 #18654 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func1<$0, $1>\")>]] type
00:07:02 #18655 [Verbose] > Func0<'T, 'U> = class end"
00:07:02 #18656 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Box<$0>\")>]] type Box<'T> =
00:07:02 #18657 [Verbose] > class end"
00:07:02 #18658 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"dyn $0\")>]] type Dyn<'T> =
00:07:02 #18659 [Verbose] > class end"
00:07:02 #18660 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn() -> $0\")>]] type Fn<'T>
00:07:02 #18661 [Verbose] > = class end"
00:07:02 #18662 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn()\")>]] type FnUnit =
00:07:02 #18663 [Verbose] > class end"
00:07:02 #18664 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"FnOnce() -> $0\")>]] type
00:07:02 #18665 [Verbose] > FnOnce<'T> = class end"
00:07:02 #18666 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn($0, $1)\")>]] type
00:07:02 #18667 [Verbose] > ActionFn2<'T, 'U> = class end"
00:07:02 #18668 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"impl $0\")>]] type Impl<'T> =
00:07:02 #18669 [Verbose] > class end"
00:07:02 #18670 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"mut $0\")>]] type Mut<'T> =
00:07:02 #18671 [Verbose] > class end"
00:07:02 #18672 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =
00:07:02 #18673 [Verbose] > class end"
00:07:02 #18674 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&'static $0\")>]] type
00:07:02 #18675 [Verbose] > StaticRef<'T> = class end"
00:07:02 #18676 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"MutCell<$0>\")>]] type
00:07:02 #18677 [Verbose] > MutCell<'T> = class end"
00:07:02 #18678 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::any::Any\")>]] type
00:07:02 #18679 [Verbose] > std_any_Any = class end"
00:07:02 #18680 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::cell::RefCell<$0>\")>]]
00:07:02 #18681 [Verbose] > type std_cell_RefCell<'T> = class end"
00:07:02 #18682 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::pin::Pin<$0>\")>]] type
00:07:02 #18683 [Verbose] > std_pin_Pin<'T> = class end"
00:07:02 #18684 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Rc<$0>\")>]] type
00:07:02 #18685 [Verbose] > std_rc_Rc<'T> = class end"
00:07:02 #18686 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Weak<$0>\")>]] type
00:07:02 #18687 [Verbose] > std_rc_Weak<'T> = class end"
00:07:02 #18688 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::sync::Arc<$0>\")>]] type
00:07:02 #18689 [Verbose] > std_sync_Arc<'T> = class end"
00:07:03 #18690 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3526-2657-2d9d683b0b0b\main.spi
00:07:03 #18691 [Verbose] >
00:07:03 #18692 [Verbose] > ╭─[ 232.85ms - stdout ]────────────────────────────────────────────────────────╮
00:07:03 #18693 [Verbose] > │ () │
00:07:03 #18694 [Verbose] > │ │
00:07:03 #18695 [Verbose] > │ │
00:07:03 #18696 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:03 #18697 [Verbose] >
00:07:03 #18698 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:03 #18699 [Verbose] > nominal ref_cell t = $"std_cell_RefCell<`t>"
00:07:03 #18700 [Verbose] > nominal rc t = $"std_rc_Rc<`t>"
00:07:03 #18701 [Verbose] > nominal weak_rc t = $"std_rc_Weak<`t>"
00:07:03 #18702 [Verbose] > nominal box t = $"Box<`t>"
00:07:03 #18703 [Verbose] > nominal mut_cell t = $"MutCell<`t>"
00:07:03 #18704 [Verbose] > nominal pin t = $"std_pin_Pin<`t>"
00:07:03 #18705 [Verbose] > nominal arc t = $"std_sync_Arc<`t>"
00:07:03 #18706 [Verbose] > nominal dyn' t = $"Dyn<`t>"
00:07:03 #18707 [Verbose] > nominal fn' t = $"Fn<`t>"
00:07:03 #18708 [Verbose] > nominal action_fn2 t u = $"ActionFn2<`t, `u>"
00:07:03 #18709 [Verbose] > nominal fn_once t = $"FnOnce<`t>"
00:07:03 #18710 [Verbose] > nominal fn_unit = $"FnUnit"
00:07:03 #18711 [Verbose] > nominal func0 t = $"Func0<`t>"
00:07:03 #18712 [Verbose] > nominal func1 t u = $"Func0<`t, `u>"
00:07:03 #18713 [Verbose] > nominal impl t = $"Impl<`t>"
00:07:03 #18714 [Verbose] > nominal mut' t = $"Mut<`t>"
00:07:03 #18715 [Verbose] > nominal ref' t = $"Ref<`t>"
00:07:03 #18716 [Verbose] > nominal static_ref' t = $"StaticRef<`t>"
00:07:03 #18717 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3549-4950-4d6cf5c8b536\main.spi
00:07:03 #18718 [Verbose] >
00:07:03 #18719 [Verbose] > ╭─[ 235.18ms - stdout ]────────────────────────────────────────────────────────╮
00:07:03 #18720 [Verbose] > │ () │
00:07:03 #18721 [Verbose] > │ │
00:07:03 #18722 [Verbose] > │ │
00:07:03 #18723 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:03 #18724 [Verbose] >
00:07:03 #18725 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:03 #18726 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:03 #18727 [Verbose] > │ ## emit_expr │
00:07:03 #18728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:03 #18729 [Verbose] >
00:07:03 #18730 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:03 #18731 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =
00:07:03 #18732 [Verbose] > real
00:07:03 #18733 [Verbose] > $"Fable.Core.RustInterop.emitRustExpr !args !code" : t
00:07:03 #18734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3573-7346-72ba37567196\main.spi
00:07:03 #18735 [Verbose] >
00:07:03 #18736 [Verbose] > ╭─[ 194.40ms - stdout ]────────────────────────────────────────────────────────╮
00:07:03 #18737 [Verbose] > │ () │
00:07:03 #18738 [Verbose] > │ │
00:07:03 #18739 [Verbose] > │ │
00:07:03 #18740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:03 #18741 [Verbose] >
00:07:03 #18742 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:03 #18743 [Verbose] > inl (~!\) forall t. (code : string) : t =
00:07:03 #18744 [Verbose] > emit_expr () code
00:07:03 #18745 [Verbose] >
00:07:03 #18746 [Verbose] > inl (~!\\) forall t u. ((args : t), (code : string)) : u =
00:07:03 #18747 [Verbose] > emit_expr args code
00:07:03 #18748 [Verbose] >
00:07:03 #18749 [Verbose] > inl emit forall t. (x : t) : t =
00:07:03 #18750 [Verbose] > !\\(x, $'"$0"')
00:07:03 #18751 [Verbose] >
00:07:03 #18752 [Verbose] > inl emit' forall t. (x : t) : t =
00:07:03 #18753 [Verbose] > !\\(x, $'"let !x = $0"')
00:07:03 #18754 [Verbose] > x
00:07:03 #18755 [Verbose] >
00:07:03 #18756 [Verbose] > inl new_box forall t. (x : t) : box t =
00:07:03 #18757 [Verbose] > inl x = join x
00:07:03 #18758 [Verbose] > !\($'"Box::new(!x)"')
00:07:03 #18759 [Verbose] >
00:07:03 #18760 [Verbose] > inl new_rc forall t. (x : t) : rc t =
00:07:03 #18761 [Verbose] > inl x = join x
00:07:03 #18762 [Verbose] > !\($'"std::rc::Rc::new(!x)"')
00:07:03 #18763 [Verbose] >
00:07:03 #18764 [Verbose] > inl rc_clone forall t. (x : rc t) : rc t =
00:07:03 #18765 [Verbose] > inl x = join x
00:07:03 #18766 [Verbose] > !\($'"std::rc::Rc::clone(&!x)"')
00:07:03 #18767 [Verbose] >
00:07:03 #18768 [Verbose] > inl rc_downgrade forall t. (x : rc t) : weak_rc t =
00:07:03 #18769 [Verbose] > inl x = join x
00:07:03 #18770 [Verbose] > !\($'"std::rc::Rc::downgrade(&!x)"')
00:07:03 #18771 [Verbose] >
00:07:03 #18772 [Verbose] > inl new_ref_cell forall t. (x : t) : ref_cell t =
00:07:03 #18773 [Verbose] > inl x = join x
00:07:03 #18774 [Verbose] > !\($'"std::cell::RefCell::new(!x)"')
00:07:03 #18775 [Verbose] >
00:07:03 #18776 [Verbose] > inl ref_cell_borrow forall t. (x : rc (ref_cell t)) : t =
00:07:03 #18777 [Verbose] > inl x = join x
00:07:03 #18778 [Verbose] > !\($'"*std::cell::RefCell::borrow(&std::rc::Rc::clone(&!x))"')
00:07:03 #18779 [Verbose] >
00:07:03 #18780 [Verbose] > inl ref_cell_borrow_mut forall t. (x : rc (ref_cell t)) : mut' t =
00:07:03 #18781 [Verbose] > inl x = join x
00:07:03 #18782 [Verbose] > !\($'"*std::cell::RefCell::borrow_mut(&std::rc::Rc::clone(&!x))"')
00:07:03 #18783 [Verbose] >
00:07:03 #18784 [Verbose] > inl to_mut forall t. (x : t) : mut' t =
00:07:03 #18785 [Verbose] > // !\($'"let mut !x = !x"')
00:07:03 #18786 [Verbose] > // !\($'"!x"')
00:07:03 #18787 [Verbose] > emit_expr () $"\"let mut !x = !x\""
00:07:03 #18788 [Verbose] > emit_expr () $"\"!x\""
00:07:03 #18789 [Verbose] >
00:07:03 #18790 [Verbose] > inl ref_map forall t u. (fn : t -> u) (x : ref' t) : ref' u =
00:07:03 #18791 [Verbose] > !\($'"!fn(!x)"')
00:07:03 #18792 [Verbose] >
00:07:03 #18793 [Verbose] > inl from_mut forall t. (x : mut' t) : t =
00:07:03 #18794 [Verbose] > !\($'"!x"')
00:07:03 #18795 [Verbose] >
00:07:03 #18796 [Verbose] > inl new_arc forall t. (x : t) : arc t =
00:07:03 #18797 [Verbose] > inl x = join x
00:07:03 #18798 [Verbose] > !\($'"std::sync::Arc::new(!x)"')
00:07:03 #18799 [Verbose] >
00:07:03 #18800 [Verbose] > inl box_fn forall t. (x : () -> ()) : box t =
00:07:03 #18801 [Verbose] > inl x = join x
00:07:03 #18802 [Verbose] > !\($'"Box::new(move || !x())"')
00:07:03 #18803 [Verbose] >
00:07:03 #18804 [Verbose] > inl new_pin forall t. (x : t) : pin (box t) =
00:07:03 #18805 [Verbose] > inl x = join x
00:07:03 #18806 [Verbose] > !\($'"Box::pin(!x)"')
00:07:03 #18807 [Verbose] >
00:07:03 #18808 [Verbose] > inl deref forall t. (ref : ref' t) : t =
00:07:03 #18809 [Verbose] > inl ref = join ref
00:07:03 #18810 [Verbose] > !\($'"*!ref"')
00:07:03 #18811 [Verbose] >
00:07:03 #18812 [Verbose] > inl ops_deref forall t. (ref : t) : t =
00:07:03 #18813 [Verbose] > inl ref = join ref
00:07:03 #18814 [Verbose] > !\($'"core::ops::Deref::deref(&!ref)"')
00:07:03 #18815 [Verbose] >
00:07:03 #18816 [Verbose] > inl func0_get forall t. (x : func0 t) : t =
00:07:03 #18817 [Verbose] > inl x = join x
00:07:03 #18818 [Verbose] > !\($'"!x()"')
00:07:03 #18819 [Verbose] >
00:07:03 #18820 [Verbose] > inl func0_move forall t. (fn : func0 t) : t =
00:07:03 #18821 [Verbose] > inl fn = join fn
00:07:03 #18822 [Verbose] > !\($'"(move || !fn())()"')
00:07:03 #18823 [Verbose] >
00:07:03 #18824 [Verbose] > inl move forall t. (fn : () -> t) : func0 t =
00:07:03 #18825 [Verbose] > !\\(fn, $'"Func0::new(move || $0())"')
00:07:03 #18826 [Verbose] >
00:07:03 #18827 [Verbose] > inl to_static_ref_unbox forall t. (x : ref' t) : static_ref' t =
00:07:03 #18828 [Verbose] > $"!x |> unbox"
00:07:03 #18829 [Verbose] >
00:07:03 #18830 [Verbose] > inl from_static_ref_unbox forall t. (x : static_ref' t) : ref' t =
00:07:03 #18831 [Verbose] > $"!x |> unbox"
00:07:03 #18832 [Verbose] >
00:07:03 #18833 [Verbose] > inl box_leak forall t. (x : box t) : static_ref' (mut' t) =
00:07:03 #18834 [Verbose] > emit_expr () $"\"Box::leak(!x)\""
00:07:03 #18835 [Verbose] >
00:07:03 #18836 [Verbose] >
00:07:03 #18837 [Verbose] > inl fix_closure depth' x' =
00:07:03 #18838 [Verbose] > inl depth = depth' |> fst
00:07:03 #18839 [Verbose] > if depth = 1
00:07:03 #18840 [Verbose] > then !\($'"!x' })"')
00:07:03 #18841 [Verbose] > elif depth = 2
00:07:03 #18842 [Verbose] > then !\($'"!x' }})"')
00:07:03 #18843 [Verbose] > elif depth = 3
00:07:03 #18844 [Verbose] > then !\($'"!x' }}})"')
00:07:03 #18845 [Verbose] > elif depth = 4
00:07:03 #18846 [Verbose] > then !\($'"!x' }}}})"')
00:07:03 #18847 [Verbose] > elif depth = 5
00:07:03 #18848 [Verbose] > then !\($'"!x' }}}}})"')
00:07:03 #18849 [Verbose] > elif depth = 6 // , 4) // ?
00:07:03 #18850 [Verbose] > then !\($'"!x' }}}}}})"')
00:07:03 #18851 [Verbose] > elif depth = 7 // , 5) // 7
00:07:03 #18852 [Verbose] > then !\($'"!x' }}}}}}})"')
00:07:03 #18853 [Verbose] > elif depth = 8 // , 5) // 7
00:07:03 #18854 [Verbose] > then !\($'"!x' }}}}}}}})"')
00:07:03 #18855 [Verbose] >
00:07:03 #18856 [Verbose] > inl depth = depth' |> snd
00:07:03 #18857 [Verbose] > if depth = 1
00:07:03 #18858 [Verbose] > then !\($'"{ //"')
00:07:03 #18859 [Verbose] > elif depth = 2
00:07:03 #18860 [Verbose] > then !\($'"{{ //"')
00:07:03 #18861 [Verbose] > elif depth = 3
00:07:03 #18862 [Verbose] > then !\($'"{{{ //"')
00:07:03 #18863 [Verbose] > elif depth = 4
00:07:03 #18864 [Verbose] > then !\($'"{{{{ //"')
00:07:03 #18865 [Verbose] > elif depth = 5
00:07:03 #18866 [Verbose] > then !\($'"{{{{{ //"')
00:07:03 #18867 [Verbose] > elif depth = 6
00:07:03 #18868 [Verbose] > then !\($'"{{{{{{ //"')
00:07:03 #18869 [Verbose] > elif depth = 7
00:07:03 #18870 [Verbose] > then !\($'"{{{{{{{ //"')
00:07:03 #18871 [Verbose] > elif depth = 8
00:07:03 #18872 [Verbose] > then !\($'"{{{{{{{{ //"')
00:07:03 #18873 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3593-9331-9249cf34615c\main.spi
00:07:03 #18874 [Verbose] >
00:07:03 #18875 [Verbose] > ╭─[ 218.36ms - stdout ]────────────────────────────────────────────────────────╮
00:07:03 #18876 [Verbose] > │ () │
00:07:03 #18877 [Verbose] > │ │
00:07:03 #18878 [Verbose] > │ │
00:07:03 #18879 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:06 #18880 [Verbose] > [NbConvertApp] Converting notebook rust.dib.ipynb to html
00:07:06 #18881 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:07:06 #18882 [Verbose] > validate(nb)
00:07:06 #18883 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:07:06 #18884 [Verbose] > return _pygments_highlight(
00:07:07 #18885 [Verbose] > [NbConvertApp] Writing 305573 bytes to rust.dib.html
00:07:08 #18886 [Debug] executeAsync / exitCode: 0 / output.Length: 9782
00:07:08 #18887 [Debug] main / executeCommand / exitCode: 0
00:07:08 #18888 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 physics.dib" -Retries 3"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:07:11 #18889 [Verbose] >
00:07:11 #18890 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:11 #18891 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:11 #18892 [Verbose] > │ # physics │
00:07:11 #18893 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:11 #18894 [Verbose] >
00:07:11 #18895 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:07:11 #18896 [Verbose] > #!import ../../lib/fsharp/Plotting.dib
00:07:11 #18897 [Verbose] >
00:07:11 #18898 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:11 #18899 [Verbose] > #r
00:07:11 #18900 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:07:11 #18901 [Verbose] > spNetCore.Html.Abstractions.dll"
00:07:11 #18902 [Verbose] > #r
00:07:11 #18903 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:07:11 #18904 [Verbose] > otNet.Interactive.dll"
00:07:11 #18905 [Verbose] > #r
00:07:11 #18906 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:07:11 #18907 [Verbose] > otNet.Interactive.FSharp.dll"
00:07:11 #18908 [Verbose] > #r
00:07:11 #18909 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:07:11 #18910 [Verbose] > otNet.Interactive.Formatting.dll"
00:07:11 #18911 [Verbose] > open System
00:07:11 #18912 [Verbose] > open System.IO
00:07:11 #18913 [Verbose] > open System.Text
00:07:11 #18914 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:07:15 #18915 [Verbose] >
00:07:15 #18916 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:15 #18917 [Verbose] > #r
00:07:15 #18918 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:07:15 #18919 [Verbose] > otNet.Interactive.FSharp.dll"
00:07:15 #18920 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:07:15 #18921 [Verbose] > #r
00:07:15 #18922 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:07:15 #18923 [Verbose] > otNet.Interactive.dll"
00:07:15 #18924 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:07:16 #18925 [Verbose] >
00:07:16 #18926 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:16 #18927 [Verbose] > //// test
00:07:16 #18928 [Verbose] >
00:07:16 #18929 [Verbose] > Formatter.ListExpansionLimit <- 100
00:07:16 #18930 [Verbose] >
00:07:16 #18931 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:16 #18932 [Verbose] > #r
00:07:16 #18933 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
00:07:16 #18934 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"
00:07:16 #18935 [Verbose] > #r
00:07:16 #18936 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
00:07:16 #18937 [Verbose] > 0/System.Reactive.dll"
00:07:16 #18938 [Verbose] > #r
00:07:16 #18939 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib
00:07:16 #18940 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"
00:07:16 #18941 [Verbose] > #r
00:07:16 #18942 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
00:07:16 #18943 [Verbose] > #r
00:07:16 #18944 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
00:07:16 #18945 [Verbose] > b/net6.0/System.CommandLine.dll"
00:07:16 #18946 [Verbose] > #r
00:07:16 #18947 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha
00:07:16 #18948 [Verbose] > rp.Json.dll"
00:07:16 #18949 [Verbose] >
00:07:16 #18950 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:16 #18951 [Verbose] > type [[<Struct>]] US0 =
00:07:16 #18952 [Verbose] > | US0_0
00:07:16 #18953 [Verbose] > | US0_1
00:07:16 #18954 [Verbose] > | US0_2
00:07:16 #18955 [Verbose] > | US0_3
00:07:16 #18956 [Verbose] > and [[<Struct>]] US1 =
00:07:16 #18957 [Verbose] > | US1_0 of f0_0 : US0
00:07:16 #18958 [Verbose] > | US1_1 of f1_0 : US0
00:07:16 #18959 [Verbose] > and [[<Struct>]] US2 =
00:07:16 #18960 [Verbose] > | US2_0
00:07:16 #18961 [Verbose] > | US2_1
00:07:16 #18962 [Verbose] > and [[<Struct>]] US3 =
00:07:16 #18963 [Verbose] > | US3_0 of f0_0 : US2
00:07:16 #18964 [Verbose] > | US3_1
00:07:16 #18965 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:07:16 #18966 [Verbose] > let v1 : System.IDisposable option = None
00:07:16 #18967 [Verbose] > let mutable _v1 = v1
00:07:16 #18968 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:07:16 #18969 [Verbose] > let v2 : US0 = US0_0
00:07:16 #18970 [Verbose] > let v3 : US1 = US1_0(v2)
00:07:16 #18971 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:07:16 #18972 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:07:16 #18973 [Verbose] > v5
00:07:16 #18974 [Verbose] > #endif
00:07:16 #18975 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:07:16 #18976 [Verbose] > let v6 : US0 = US0_2
00:07:16 #18977 [Verbose] > let v7 : US1 = US1_0(v6)
00:07:16 #18978 [Verbose] > let v8 : string = $"new_dispos...
00:07:18 #18979 [Verbose] >
00:07:18 #18980 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:18 #18981 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:07:18 #18982 [Verbose] > and Mut1 = {mutable l0 : int32}
00:07:18 #18983 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:07:18 #18984 [Verbose] > let v2 : bool = v1.Contains v0
00:07:18 #18985 [Verbose] > v2
00:07:18 #18986 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:07:18 #18987 [Verbose] > closure1(v0)
00:07:18 #18988 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:07:18 #18989 [Verbose] > let v2 : bool = v1.EndsWith v0
00:07:18 #18990 [Verbose] > v2
00:07:18 #18991 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:07:18 #18992 [Verbose] > closure3(v0)
00:07:18 #18993 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:07:18 #18994 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:07:18 #18995 [Verbose] > v3
00:07:18 #18996 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:07:18 #18997 [Verbose] > closure6(v0, v1)
00:07:18 #18998 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:07:18 #18999 [Verbose] > closure5(v0)
00:07:18 #19000 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:07:18 #19001 [Verbose] > let v2 : stri...
00:07:19 #19002 [Verbose] >
00:07:19 #19003 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:19 #19004 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:07:19 #19005 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:07:19 #19006 [Verbose] > let v3 : string = v2 v0
00:07:19 #19007 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:07:19 #19008 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:07:19 #19009 [Verbose] > v5
00:07:19 #19010 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:07:19 #19011 [Verbose] > closure1(v0)
00:07:19 #19012 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:07:19 #19013 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:07:19 #19014 [Verbose] > v3
00:07:19 #19015 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:07:19 #19016 [Verbose] > closure5(v0, v1)
00:07:19 #19017 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:07:19 #19018 [Verbose] > closure4(v0)
00:07:19 #19019 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:07:19 #19020 [Verbose] > closure3()
00:07:19 #19021 [Verbose] > and closure2 (...
00:07:19 #19022 [Verbose] >
00:07:19 #19023 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:19 #19024 [Verbose] > #if FABLE_COMPILER // file_system.types
00:07:19 #19025 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:07:19 #19026 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:07:19 #19027 [Verbose] > base64_DecodeError = class end
00:07:19 #19028 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:07:19 #19029 [Verbose] > = class end
00:07:19 #19030 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:07:19 #19031 [Verbose] > = class end
00:07:19 #19032 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:07:19 #19033 [Verbose] > serde_json_Error = class end
00:07:19 #19034 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:07:19 #19035 [Verbose] > serde_json_Value = class end
00:07:19 #19036 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:07:19 #19037 [Verbose] > serde_wasm_bindgen_Error = class end
00:07:19 #19038 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:07:19 #19039 [Verbose] >
00:07:19 #19040 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:19 #19041 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:07:19 #19042 [Verbose] > module SpiralDateTime =
00:07:19 #19043 [Verbose] > let format x =
00:07:19 #19044 [Verbose] > #if !INTERACTIVE
00:07:19 #19045 [Verbose] > Date_time.format x
00:07:19 #19046 [Verbose] > #else
00:07:19 #19047 [Verbose] > format x
00:07:19 #19048 [Verbose] > #endif
00:07:19 #19049 [Verbose] >
00:07:19 #19050 [Verbose] > let format_iso8601 x =
00:07:19 #19051 [Verbose] > #if !INTERACTIVE
00:07:19 #19052 [Verbose] > Date_time.format_iso8601 x
00:07:19 #19053 [Verbose] > #else
00:07:19 #19054 [Verbose] > format_iso8601 x
00:07:19 #19055 [Verbose] > #endif
00:07:19 #19056 [Verbose] >
00:07:19 #19057 [Verbose] > let new_guid_from_date_time x =
00:07:19 #19058 [Verbose] > #if !INTERACTIVE
00:07:19 #19059 [Verbose] > Date_time.new_guid_from_date_time x
00:07:19 #19060 [Verbose] > #else
00:07:19 #19061 [Verbose] > new_guid_from_date_time x
00:07:19 #19062 [Verbose] > #endif
00:07:19 #19063 [Verbose] >
00:07:19 #19064 [Verbose] > #endif
00:07:19 #19065 [Verbose] >
00:07:19 #19066 [Verbose] > module SpiralSm =
00:07:19 #19067 [Verbose] > let concat x =
00:07:19 #19068 [Verbose] > #if !INTERACTIVE
00:07:19 #19069 [Verbose] > Sm.concat x
00:07:19 #19070 [Verbose] > #else
00:07:19 #19071 [Verbose] > concat x
00:07:19 #19072 [Verbose] > #endif
00:07:19 #19073 [Verbose] >
00:07:19 #19074 [Verbose] > let contains x =
00:07:19 #19075 [Verbose] > #if !INTERACTIVE
00:07:19 #19076 [Verbose] > Sm.contains x
00:07:19 #19077 [Verbose] > #else
00:07:19 #19078 [Verbose] > contains x
00:07:19 #19079 [Verbose] > #endif
00:07:19 #19080 [Verbose] >
00:07:19 #19081 [Verbose] > let ellipsis x =
00:07:19 #19082 [Verbose] > #if !INTERACTIVE
00:07:19 #19083 [Verbose] > Sm.ellipsis x
00:07:19 #19084 [Verbose] > #else
00:07:19 #19085 [Verbose] > ellipsis x
00:07:19 #19086 [Verbose] > #endif
00:07:19 #19087 [Verbose] >
00:07:19 #19088 [Verbose] > let ellipsis_end x =
00:07:19 #19089 [Verbose] > #if...
00:07:19 #19090 [Verbose] >
00:07:19 #19091 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:19 #19092 [Verbose] > #if !INTERACTIVE
00:07:19 #19093 [Verbose] > namespace Polyglot
00:07:19 #19094 [Verbose] > #endif
00:07:19 #19095 [Verbose] >
00:07:19 #19096 [Verbose] > module Common =
00:07:19 #19097 [Verbose] >
00:07:19 #19098 [Verbose] > #if !INTERACTIVE
00:07:19 #19099 [Verbose] > open Lib
00:07:19 #19100 [Verbose] > #endif
00:07:19 #19101 [Verbose] >
00:07:19 #19102 [Verbose] > let nl = System.Environment.NewLine
00:07:19 #19103 [Verbose] > let q = @""""
00:07:19 #19104 [Verbose] >
00:07:19 #19105 [Verbose] > let inline cons head tail = head :: tail
00:07:19 #19106 [Verbose] >
00:07:19 #19107 [Verbose] > /// ## memoize
00:07:19 #19108 [Verbose] >
00:07:19 #19109 [Verbose] > let inline memoize fn =
00:07:19 #19110 [Verbose] > let result = lazy fn ()
00:07:19 #19111 [Verbose] > fun () -> result.Value
00:07:19 #19112 [Verbose] >
00:07:19 #19113 [Verbose] > /// ## TraceLevel
00:07:19 #19114 [Verbose] >
00:07:19 #19115 [Verbose] > type TraceLevel =
00:07:19 #19116 [Verbose] > | Verbose
00:07:19 #19117 [Verbose] > | Debug
00:07:19 #19118 [Verbose] > | Info
00:07:19 #19119 [Verbose] > | Warning
00:07:19 #19120 [Verbose] > | Critical
00:07:19 #19121 [Verbose] >
00:07:19 #19122 [Verbose] > let inline getLocals () = ""
00:07:19 #19123 [Verbose] >
00:07:19 #19124 [Verbose] > let mutable traceEnabled = true
00:07:19 #19125 [Verbose] > let mutable traceCount = 0
00:07:19 #19126 [Verbose] > let mutable traceLevel = Verbose
00:07:19 #19127 [Verbose] > let mutable traceDump = false
00:07:19 #19128 [Verbose] >
00:07:19 #19129 [Verbose] > let testTraceLevel level =
00:07:19 #19130 [Verbose] > traceEnabled && level >= traceLevel
00:07:19 #19131 [Verbose] >
00:07:19 #19132 [Verbose] > /// ## traceRaw
00:07:19 #19133 [Verbose] >
00:07:19 #19134 [Verbose] > let rec traceRaw level fn =
00:07:19 #19135 [Verbose] > ...
00:07:19 #19136 [Verbose] >
00:07:19 #19137 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:19 #19138 [Verbose] > #if !INTERACTIVE
00:07:19 #19139 [Verbose] > namespace Polyglot
00:07:19 #19140 [Verbose] > #endif
00:07:19 #19141 [Verbose] >
00:07:19 #19142 [Verbose] > module CommonFSharp =
00:07:19 #19143 [Verbose] >
00:07:19 #19144 [Verbose] > open Common
00:07:19 #19145 [Verbose] >
00:07:19 #19146 [Verbose] > /// ## getUnionCaseName
00:07:19 #19147 [Verbose] >
00:07:19 #19148 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =
00:07:19 #19149 [Verbose] > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
00:07:19 #19150 [Verbose] > | case, _ -> case.Name
00:07:19 #19151 [Verbose] >
00:07:19 #19152 [Verbose] >
00:07:19 #19153 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:19 #19154 [Verbose] > #if !INTERACTIVE
00:07:19 #19155 [Verbose] > namespace Polyglot
00:07:19 #19156 [Verbose] > #endif
00:07:19 #19157 [Verbose] >
00:07:19 #19158 [Verbose] > module Crypto =
00:07:19 #19159 [Verbose] >
00:07:19 #19160 [Verbose] > #if !INTERACTIVE
00:07:19 #19161 [Verbose] > open Lib
00:07:19 #19162 [Verbose] > #endif
00:07:19 #19163 [Verbose] >
00:07:19 #19164 [Verbose] > open Common
00:07:19 #19165 [Verbose] >
00:07:19 #19166 [Verbose] > /// ## hashText
00:07:19 #19167 [Verbose] >
00:07:19 #19168 [Verbose] > let hashText (input : string) =
00:07:19 #19169 [Verbose] > use sha256 = System.Security.Cryptography.SHA256.Create ()
00:07:19 #19170 [Verbose] > input
00:07:19 #19171 [Verbose] > |> System.Text.Encoding.UTF8.GetBytes
00:07:19 #19172 [Verbose] > |> sha256.ComputeHash
00:07:19 #19173 [Verbose] > |> Array.map (fun b -> b.ToString "x2")
00:07:19 #19174 [Verbose] > |> SpiralSm.concat ""
00:07:19 #19175 [Verbose] >
00:07:19 #19176 [Verbose] >
00:07:19 #19177 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:19 #19178 [Verbose] > #if !INTERACTIVE
00:07:19 #19179 [Verbose] > namespace Polyglot
00:07:19 #19180 [Verbose] > #endif
00:07:19 #19181 [Verbose] >
00:07:19 #19182 [Verbose] > module Async =
00:07:19 #19183 [Verbose] >
00:07:19 #19184 [Verbose] > #if !INTERACTIVE
00:07:19 #19185 [Verbose] > open Lib
00:07:19 #19186 [Verbose] > #endif
00:07:19 #19187 [Verbose] >
00:07:19 #19188 [Verbose] > open Common
00:07:19 #19189 [Verbose] >
00:07:19 #19190 [Verbose] > /// ## choice
00:07:19 #19191 [Verbose] >
00:07:19 #19192 [Verbose] > let inline choice asyncs = async {
00:07:19 #19193 [Verbose] > let e = Event<_> ()
00:07:19 #19194 [Verbose] > use cts = new System.Threading.CancellationTokenSource ()
00:07:19 #19195 [Verbose] > let fn =
00:07:19 #19196 [Verbose] > asyncs
00:07:19 #19197 [Verbose] > |> Seq.map (fun a -> async {
00:07:19 #19198 [Verbose] > let! x = a
00:07:19 #19199 [Verbose] > e.Trigger x
00:07:19 #19200 [Verbose] > })
00:07:19 #19201 [Verbose] > |> Async.Parallel
00:07:19 #19202 [Verbose] > |> Async.Ignore
00:07:19 #19203 [Verbose] > Async.Start (fn, cts.Token)
00:07:19 #19204 [Verbose] > let! result = Async.AwaitEvent e.Publish
00:07:19 #19205 [Verbose] > cts.Cancel ()
00:07:19 #19206 [Verbose] > return result
00:07:19 #19207 [Verbose] > }
00:07:19 #19208 [Verbose] >
00:07:19 #19209 [Verbose] > /// ## map
00:07:19 #19210 [Verbose] >
00:07:19 #19211 [Verbose] > let inline map fn a = async {
00:07:19 #19212 [Verbose] > let! x = a
00:07:19 #19213 [Verbose] > return fn x
00:07:19 #19214 [Verbose] > }
00:07:19 #19215 [Verbose] >
00:07:19 #19216 [Verbose] > /// ## catch
00:07:19 #19217 [Verbose] >
00:07:19 #19218 [Verbose] > let inline catch a =
00:07:19 #19219 [Verbose] > ...
00:07:20 #19220 [Verbose] >
00:07:20 #19221 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:20 #19222 [Verbose] > #if !INTERACTIVE
00:07:20 #19223 [Verbose] > namespace Polyglot
00:07:20 #19224 [Verbose] > #endif
00:07:20 #19225 [Verbose] >
00:07:20 #19226 [Verbose] > module AsyncSeq =
00:07:20 #19227 [Verbose] >
00:07:20 #19228 [Verbose] > #if !INTERACTIVE
00:07:20 #19229 [Verbose] > open Lib
00:07:20 #19230 [Verbose] > #endif
00:07:20 #19231 [Verbose] >
00:07:20 #19232 [Verbose] > open Common
00:07:20 #19233 [Verbose] >
00:07:20 #19234 [Verbose] > /// ## subscribeEvent
00:07:20 #19235 [Verbose] >
00:07:20 #19236 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =
00:07:20 #19237 [Verbose] > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
00:07:20 #19238 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)
00:07:20 #19239 [Verbose] > System.Reactive.Linq.Observable.Select (observable, fun event -> map
00:07:20 #19240 [Verbose] > event.EventArgs)
00:07:20 #19241 [Verbose] > |> FSharp.Control.AsyncSeq.ofObservableBuffered
00:07:20 #19242 [Verbose] >
00:07:20 #19243 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =
00:07:20 #19244 [Verbose] > let tcs = new System.Threading.Tasks.TaskCompletionSource ()
00:07:20 #19245 [Verbose] > System.Action tcs.SetResult |> token.Register |> ignore
00:07:20 #19246 [Verbose] > let start = System.DateTime.Now.Ticks
00:07:20 #19247 [Verbose] > FSharp.Control.A...
00:07:20 #19248 [Verbose] >
00:07:20 #19249 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:20 #19250 [Verbose] > #if !INTERACTIVE
00:07:20 #19251 [Verbose] > namespace Polyglot
00:07:20 #19252 [Verbose] > #endif
00:07:20 #19253 [Verbose] >
00:07:20 #19254 [Verbose] > module Networking =
00:07:20 #19255 [Verbose] >
00:07:20 #19256 [Verbose] > #if !INTERACTIVE
00:07:20 #19257 [Verbose] > open Lib
00:07:20 #19258 [Verbose] > #endif
00:07:20 #19259 [Verbose] >
00:07:20 #19260 [Verbose] > open Common
00:07:20 #19261 [Verbose] >
00:07:20 #19262 [Verbose] > /// ## testPortOpen
00:07:20 #19263 [Verbose] >
00:07:20 #19264 [Verbose] > let inline testPortOpen port = async {
00:07:20 #19265 [Verbose] > let! ct = Async.CancellationToken
00:07:20 #19266 [Verbose] > use client = new System.Net.Sockets.TcpClient ()
00:07:20 #19267 [Verbose] > try
00:07:20 #19268 [Verbose] > do! client.ConnectAsync ("127.0.0.1", port, ct) |>
00:07:20 #19269 [Verbose] > Async.awaitValueTaskUnit
00:07:20 #19270 [Verbose] > return true
00:07:20 #19271 [Verbose] > with ex ->
00:07:20 #19272 [Verbose] > trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
00:07:20 #19273 [Verbose] > SpiralSm.format_exception}") getLocals
00:07:20 #19274 [Verbose] > return false
00:07:20 #19275 [Verbose] > }
00:07:20 #19276 [Verbose] >
00:07:20 #19277 [Verbose] > let inline testPortOpenTimeout timeout port = async {
00:07:20 #19278 [Verbose] > let! result =
00:07:20 #19279 [Verbose] > testPortOpen port
00:07:20 #19280 [Verbose] > |> Async.runWithTimeoutAsync timeout
00:07:20 #19281 [Verbose] > return
00:07:20 #19282 [Verbose] > ...
00:07:21 #19283 [Verbose] >
00:07:21 #19284 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:21 #19285 [Verbose] > #if !INTERACTIVE
00:07:21 #19286 [Verbose] > namespace Polyglot
00:07:21 #19287 [Verbose] > #endif
00:07:21 #19288 [Verbose] >
00:07:21 #19289 [Verbose] > module Runtime =
00:07:21 #19290 [Verbose] >
00:07:21 #19291 [Verbose] > #if !INTERACTIVE
00:07:21 #19292 [Verbose] > open Lib
00:07:21 #19293 [Verbose] > #endif
00:07:21 #19294 [Verbose] >
00:07:21 #19295 [Verbose] > open Common
00:07:21 #19296 [Verbose] >
00:07:21 #19297 [Verbose] > /// ## isWindows
00:07:21 #19298 [Verbose] >
00:07:21 #19299 [Verbose] > let isWindows =
00:07:21 #19300 [Verbose] > fun () ->
00:07:21 #19301 [Verbose] > System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
00:07:21 #19302 [Verbose] > System.Runtime.InteropServices.OSPlatform.Windows
00:07:21 #19303 [Verbose] > |> memoize
00:07:21 #19304 [Verbose] >
00:07:21 #19305 [Verbose] > /// ## getExecutableSuffix
00:07:21 #19306 [Verbose] >
00:07:21 #19307 [Verbose] > let inline getExecutableSuffix () =
00:07:21 #19308 [Verbose] > if isWindows ()
00:07:21 #19309 [Verbose] > then ".exe"
00:07:21 #19310 [Verbose] > else ""
00:07:21 #19311 [Verbose] >
00:07:21 #19312 [Verbose] > /// ## splitCommand
00:07:21 #19313 [Verbose] >
00:07:21 #19314 [Verbose] > type private CommandParseStep =
00:07:21 #19315 [Verbose] > | Start
00:07:21 #19316 [Verbose] > | Path of quoted: bool
00:07:21 #19317 [Verbose] > | Arguments
00:07:21 #19318 [Verbose] >
00:07:21 #19319 [Verbose] > let splitCommand (command: string) =
00:07:21 #19320 [Verbose] > let rec loop (path, args) chars step =
00:07:21 #19321 [Verbose] > match chars, step with
00:07:21 #19322 [Verbose] > | ('"' | '\'') ...
00:07:22 #19323 [Verbose] >
00:07:22 #19324 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:22 #19325 [Verbose] > #if !INTERACTIVE
00:07:22 #19326 [Verbose] > namespace Polyglot
00:07:22 #19327 [Verbose] > #endif
00:07:22 #19328 [Verbose] >
00:07:22 #19329 [Verbose] > module FileSystem =
00:07:22 #19330 [Verbose] >
00:07:22 #19331 [Verbose] > #if !INTERACTIVE
00:07:22 #19332 [Verbose] > open Lib
00:07:22 #19333 [Verbose] > #endif
00:07:22 #19334 [Verbose] >
00:07:22 #19335 [Verbose] > open Common
00:07:22 #19336 [Verbose] > open SpiralFileSystem.Operators
00:07:22 #19337 [Verbose] >
00:07:22 #19338 [Verbose] > /// ## readAllTextAsync
00:07:22 #19339 [Verbose] >
00:07:22 #19340 [Verbose] > let inline readAllTextAsync path =
00:07:22 #19341 [Verbose] > path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
00:07:22 #19342 [Verbose] >
00:07:22 #19343 [Verbose] > /// ## fileExistsContent
00:07:22 #19344 [Verbose] >
00:07:22 #19345 [Verbose] > let inline fileExistsContent path content = async {
00:07:22 #19346 [Verbose] > if path |> System.IO.File.Exists |> not
00:07:22 #19347 [Verbose] > then return false
00:07:22 #19348 [Verbose] > else
00:07:22 #19349 [Verbose] > let! existingContent = path |> readAllTextAsync
00:07:22 #19350 [Verbose] > return content = existingContent
00:07:22 #19351 [Verbose] > }
00:07:22 #19352 [Verbose] >
00:07:22 #19353 [Verbose] > /// ## writeAllTextAsync
00:07:22 #19354 [Verbose] >
00:07:22 #19355 [Verbose] > let inline writeAllTextAsync path contents =
00:07:22 #19356 [Verbose] > System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
00:07:22 #19357 [Verbose] >
00:07:22 #19358 [Verbose] > /// ## write...
00:07:25 #19359 [Verbose] >
00:07:25 #19360 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:25 #19361 [Verbose] > #if !INTERACTIVE
00:07:25 #19362 [Verbose] > open Lib
00:07:25 #19363 [Verbose] > #endif
00:07:25 #19364 [Verbose] >
00:07:25 #19365 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:25 #19366 [Verbose] > open Common
00:07:25 #19367 [Verbose] > open SpiralFileSystem.Operators
00:07:25 #19368 [Verbose] >
00:07:25 #19369 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:07:25 #19370 [Verbose] > let repositoryRoot = SpiralFileSystem.get_source_directory () |>
00:07:25 #19371 [Verbose] > SpiralFileSystem.find_parent ".paket" false
00:07:25 #19372 [Verbose] > let tmpSpiralPath = repositoryRoot </> "target/polyglot/plotting"
00:07:25 #19373 [Verbose] > let linePlotsDataPath = tmpSpiralPath </> "line-data"
00:07:25 #19374 [Verbose] > let linePlotsSvgPath = tmpSpiralPath </> "line-svg"
00:07:25 #19375 [Verbose] >
00:07:25 #19376 [Verbose] > [[ tmpSpiralPath; linePlotsDataPath; linePlotsSvgPath ]]
00:07:25 #19377 [Verbose] > |> List.iter (fun dir -> if Directory.Exists dir |> not then
00:07:25 #19378 [Verbose] > Directory.CreateDirectory dir |> ignore)
00:07:25 #19379 [Verbose] >
00:07:25 #19380 [Verbose] > Formatter.Register<struct (string * string * string * struct (string * float
00:07:25 #19381 [Verbose] > array * float array) array)> (
00:07:25 #19382 [Verbose] > (fun struct (caption, x_desc, y_desc, ys) ->
00:07:25 #19383 [Verbose] > let json = (caption, x_desc, y_desc, ys) |> FSharp.Json.Json.serialize
00:07:25 #19384 [Verbose] > async {
00:07:25 #19385 [Verbose] > let hashHex = json |> Crypto.hashText
00:07:25 #19386 [Verbose] > ...
00:07:25 #19387 [Verbose] >
00:07:25 #19388 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:25 #19389 [Verbose] > // // test
00:07:25 #19390 [Verbose] >
00:07:25 #19391 [Verbose] > open testing
00:07:27 #19392 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-5887-8709-8ef8ff4974e8\main.spi
00:07:27 #19393 [Verbose] >
00:07:27 #19394 [Verbose] > ╭─[ 1.52s - stdout ]───────────────────────────────────────────────────────────╮
00:07:27 #19395 [Verbose] > │ () │
00:07:27 #19396 [Verbose] > │ │
00:07:27 #19397 [Verbose] > │ │
00:07:27 #19398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:27 #19399 [Verbose] >
00:07:27 #19400 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:27 #19401 [Verbose] > open listm'_operators
00:07:27 #19402 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-5966-6690-6cad3891ad7c\main.spi
00:07:27 #19403 [Verbose] >
00:07:27 #19404 [Verbose] > ╭─[ 281.76ms - stdout ]────────────────────────────────────────────────────────╮
00:07:27 #19405 [Verbose] > │ () │
00:07:27 #19406 [Verbose] > │ │
00:07:27 #19407 [Verbose] > │ │
00:07:27 #19408 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:27 #19409 [Verbose] >
00:07:27 #19410 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:27 #19411 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:27 #19412 [Verbose] > │ ## init_series │
00:07:27 #19413 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:27 #19414 [Verbose] >
00:07:27 #19415 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:27 #19416 [Verbose] > // // test
00:07:27 #19417 [Verbose] >
00:07:27 #19418 [Verbose] > inl x : a _ f64 = am'.init_series -3 3 0.01
00:07:27 #19419 [Verbose] > inl y = x |> am.map math.square
00:07:27 #19420 [Verbose] > "square", "x", "y", ;[[ "square", x, y ]]
00:07:27 #19421 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-5995-9557-9b69f9b131d1\main.spi
00:07:28 #19422 [Verbose] >
00:07:28 #19423 [Verbose] > ╭─[ 426.10ms - return value ]──────────────────────────────────────────────────╮
00:07:28 #19424 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:28 #19425 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:28 #19426 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:28 #19427 [Verbose] > │ stroke="none"/> │
00:07:28 #19428 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:28 #19429 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:28 #19430 [Verbose] > │ fill="#FFFFFF"> │
00:07:28 #19431 [Verbose] > │ square │
00:07:28 #19432 [Verbose] > │ </text> │
00:07:28 #19433 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:07:28 #19434 [Verbose] > │ y2="75"/> │
00:07:28 #19435 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:28 #19436 [Verbose] > │ y2="75"/> │
00:07:28 #19437 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:07:28 #19438 [Verbose] > │ y2="75"/> │
00:07:28 #19439 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:07:28 #19440 [Verbose] > │ y2="75"/> │
00:07:28 #19441 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:07:28 #19442 [Verbose] > │ ... │
00:07:28 #19443 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:28 #19444 [Verbose] >
00:07:28 #19445 [Verbose] > ╭─[ 447.95ms - stdout ]────────────────────────────────────────────────────────╮
00:07:28 #19446 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:28 #19447 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:28 #19448 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:28 #19449 [Verbose] > │ let v2 : bool = v1 < 601 │
00:07:28 #19450 [Verbose] > │ v2 │
00:07:28 #19451 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:28 #19452 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:28 #19453 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:28 #19454 [Verbose] > │ v3 │
00:07:28 #19455 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:28 #19456 [Verbose] > │ []) * (float [])) [])) = │
00:07:28 #19457 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (601) │
00:07:28 #19458 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:28 #19459 [Verbose] > │ while method1(v1) do │
00:07:28 #19460 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:28 #19461 [Verbose] > │ let v4 : float = float v3 │
00:07:28 #19462 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:07:28 #19463 [Verbose] > │ let v6 : float = -3.0 + v5 │
00:07:28 #19464 [Verbose] > │ v0.[int v3] <- v6 │
00:07:28 #19465 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:07:28 #19466 [Verbose] > │ v1.l0 <- v7 │
00:07:28 #19467 [Verbose] > │ () │
00:07:28 #19468 [Verbose] > │ let v8 : int32 = v0.Length │
00:07:28 #19469 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:07:28 #19470 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:07:28 #19471 [Verbose] > │ while method2(v8, v10) do │
00:07:28 #19472 [Verbose] > │ let v12 : int32 = v10.l0 │
00:07:28 #19473 [Verbose] > │ let v13 : float = v0.[int v12] │
00:07:28 #19474 [Verbose] > │ let v14 : float = v13 ** 2.0 │
00:07:28 #19475 [Verbose] > │ v9.[int v12] <- v14 │
00:07:28 #19476 [Verbose] > │ let v15 : int32 = v12 + 1 │
00:07:28 #19477 [Verbose] > │ v10.l0 <- v15 │
00:07:28 #19478 [Verbose] > │ () │
00:07:28 #19479 [Verbose] > │ let v16 : string = "square" │
00:07:28 #19480 [Verbose] > │ let v17 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:28 #19481 [Verbose] > │ (v16, v0, v9)|] │
00:07:28 #19482 [Verbose] > │ let v18 : string = "x" │
00:07:28 #19483 [Verbose] > │ let v19 : string = "y" │
00:07:28 #19484 [Verbose] > │ struct (v16, v18, v19, v17) │
00:07:28 #19485 [Verbose] > │ method0() │
00:07:28 #19486 [Verbose] > │ │
00:07:28 #19487 [Verbose] > │ │
00:07:28 #19488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:28 #19489 [Verbose] >
00:07:28 #19490 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:28 #19491 [Verbose] > // // test
00:07:28 #19492 [Verbose] >
00:07:28 #19493 [Verbose] > inl x : a _ f64 = am'.init_series -10 10 0.1
00:07:28 #19494 [Verbose] > inl y_sin = x |> am.map sin
00:07:28 #19495 [Verbose] > inl y_cos = x |> am.map cos
00:07:28 #19496 [Verbose] > "sin cos", "x", "y", ;[[ "sin", x, y_sin; "cos", x, y_cos ]]
00:07:28 #19497 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0042-4210-4ec3bdeafeb7\main.spi
00:07:28 #19498 [Verbose] >
00:07:28 #19499 [Verbose] > ╭─[ 352.12ms - return value ]──────────────────────────────────────────────────╮
00:07:28 #19500 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:28 #19501 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:28 #19502 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:28 #19503 [Verbose] > │ stroke="none"/> │
00:07:28 #19504 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:28 #19505 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:28 #19506 [Verbose] > │ fill="#FFFFFF"> │
00:07:28 #19507 [Verbose] > │ sin cos │
00:07:28 #19508 [Verbose] > │ </text> │
00:07:28 #19509 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │
00:07:28 #19510 [Verbose] > │ y2="75"/> │
00:07:28 #19511 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:28 #19512 [Verbose] > │ y2="75"/> │
00:07:28 #19513 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │
00:07:28 #19514 [Verbose] > │ y2="75"/> │
00:07:28 #19515 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:07:28 #19516 [Verbose] > │ y2="75"/> │
00:07:28 #19517 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1="424" │
00:07:28 #19518 [Verbose] > │ x2="10... │
00:07:28 #19519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:28 #19520 [Verbose] >
00:07:28 #19521 [Verbose] > ╭─[ 365.23ms - stdout ]────────────────────────────────────────────────────────╮
00:07:28 #19522 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:28 #19523 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:28 #19524 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:28 #19525 [Verbose] > │ let v2 : bool = v1 < 201 │
00:07:28 #19526 [Verbose] > │ v2 │
00:07:28 #19527 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:28 #19528 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:28 #19529 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:28 #19530 [Verbose] > │ v3 │
00:07:28 #19531 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:28 #19532 [Verbose] > │ []) * (float [])) [])) = │
00:07:28 #19533 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (201) │
00:07:28 #19534 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:28 #19535 [Verbose] > │ while method1(v1) do │
00:07:28 #19536 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:28 #19537 [Verbose] > │ let v4 : float = float v3 │
00:07:28 #19538 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:07:28 #19539 [Verbose] > │ let v6 : float = -10.0 + v5 │
00:07:28 #19540 [Verbose] > │ v0.[int v3] <- v6 │
00:07:28 #19541 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:07:28 #19542 [Verbose] > │ v1.l0 <- v7 │
00:07:28 #19543 [Verbose] > │ () │
00:07:28 #19544 [Verbose] > │ let v8 : int32 = v0.Length │
00:07:28 #19545 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:07:28 #19546 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:07:28 #19547 [Verbose] > │ while method2(v8, v10) do │
00:07:28 #19548 [Verbose] > │ let v12 : int32 = v10.l0 │
00:07:28 #19549 [Verbose] > │ let v13 : float = v0.[int v12] │
00:07:28 #19550 [Verbose] > │ let v14 : float = sin v13 │
00:07:28 #19551 [Verbose] > │ v9.[int v12] <- v14 │
00:07:28 #19552 [Verbose] > │ let v15 : int32 = v12 + 1 │
00:07:28 #19553 [Verbose] > │ v10.l0 <- v15 │
00:07:28 #19554 [Verbose] > │ () │
00:07:28 #19555 [Verbose] > │ let v16 : (float []) = Array.zeroCreate<float> (v8) │
00:07:28 #19556 [Verbose] > │ let v17 : Mut0 = {l0 = 0} : Mut0 │
00:07:28 #19557 [Verbose] > │ while method2(v8, v17) do │
00:07:28 #19558 [Verbose] > │ let v19 : int32 = v17.l0 │
00:07:28 #19559 [Verbose] > │ let v20 : float = v0.[int v19] │
00:07:28 #19560 [Verbose] > │ let v21 : float = cos v20 │
00:07:28 #19561 [Verbose] > │ v16.[int v19] <- v21 │
00:07:28 #19562 [Verbose] > │ let v22 : int32 = v19 + 1 │
00:07:28 #19563 [Verbose] > │ v17.l0 <- v22 │
00:07:28 #19564 [Verbose] > │ () │
00:07:28 #19565 [Verbose] > │ let v23 : string = "sin" │
00:07:28 #19566 [Verbose] > │ let v24 : string = "cos" │
00:07:28 #19567 [Verbose] > │ let v25 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:28 #19568 [Verbose] > │ (v23, v0, v9); struct (v24, v0, v16)|] │
00:07:28 #19569 [Verbose] > │ let v26 : string = "sin cos" │
00:07:28 #19570 [Verbose] > │ let v27 : string = "x" │
00:07:28 #19571 [Verbose] > │ let v28 : string = "y" │
00:07:28 #19572 [Verbose] > │ struct (v26, v27, v28, v25) │
00:07:28 #19573 [Verbose] > │ method0() │
00:07:28 #19574 [Verbose] > │ │
00:07:28 #19575 [Verbose] > │ │
00:07:28 #19576 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:28 #19577 [Verbose] >
00:07:28 #19578 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:28 #19579 [Verbose] > // // test
00:07:28 #19580 [Verbose] >
00:07:28 #19581 [Verbose] > inl y_pos y0 vy0 ay t =
00:07:28 #19582 [Verbose] > y0 + vy0 * t + ay * (t |> math.square) / 2
00:07:28 #19583 [Verbose] >
00:07:28 #19584 [Verbose] > inl x : a _ f64 = am'.init_series 0 5 0.01
00:07:28 #19585 [Verbose] > inl y = x |> am.map (y_pos 0 20 -9.8)
00:07:28 #19586 [Verbose] > "projectile motion", "time (s)", "", ;[[ "height of projectile (m)", x, y ]]
00:07:28 #19587 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0082-8231-86e75438786c\main.spi
00:07:28 #19588 [Verbose] >
00:07:28 #19589 [Verbose] > ╭─[ 295.53ms - return value ]──────────────────────────────────────────────────╮
00:07:28 #19590 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:28 #19591 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:28 #19592 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:28 #19593 [Verbose] > │ stroke="none"/> │
00:07:28 #19594 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:28 #19595 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:28 #19596 [Verbose] > │ fill="#FFFFFF"> │
00:07:28 #19597 [Verbose] > │ projectile motion │
00:07:28 #19598 [Verbose] > │ </text> │
00:07:28 #19599 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:07:28 #19600 [Verbose] > │ y2="75"/> │
00:07:28 #19601 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:28 #19602 [Verbose] > │ y2="75"/> │
00:07:28 #19603 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:07:28 #19604 [Verbose] > │ y2="75"/> │
00:07:28 #19605 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:07:28 #19606 [Verbose] > │ y2="75"/> │
00:07:28 #19607 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" y1="42... │
00:07:28 #19608 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:28 #19609 [Verbose] >
00:07:28 #19610 [Verbose] > ╭─[ 306.25ms - stdout ]────────────────────────────────────────────────────────╮
00:07:28 #19611 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:28 #19612 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:28 #19613 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:28 #19614 [Verbose] > │ let v2 : bool = v1 < 501 │
00:07:28 #19615 [Verbose] > │ v2 │
00:07:28 #19616 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:28 #19617 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:28 #19618 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:28 #19619 [Verbose] > │ v3 │
00:07:28 #19620 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:28 #19621 [Verbose] > │ []) * (float [])) [])) = │
00:07:28 #19622 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (501) │
00:07:28 #19623 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:28 #19624 [Verbose] > │ while method1(v1) do │
00:07:28 #19625 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:28 #19626 [Verbose] > │ let v4 : float = float v3 │
00:07:28 #19627 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:07:28 #19628 [Verbose] > │ v0.[int v3] <- v5 │
00:07:28 #19629 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:28 #19630 [Verbose] > │ v1.l0 <- v6 │
00:07:28 #19631 [Verbose] > │ () │
00:07:28 #19632 [Verbose] > │ let v7 : int32 = v0.Length │
00:07:28 #19633 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:07:28 #19634 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:07:28 #19635 [Verbose] > │ while method2(v7, v9) do │
00:07:28 #19636 [Verbose] > │ let v11 : int32 = v9.l0 │
00:07:28 #19637 [Verbose] > │ let v12 : float = v0.[int v11] │
00:07:28 #19638 [Verbose] > │ let v13 : float = 20.0 * v12 │
00:07:28 #19639 [Verbose] > │ let v14 : float = v12 ** 2.0 │
00:07:28 #19640 [Verbose] > │ let v15 : float = -9.8 * v14 │
00:07:28 #19641 [Verbose] > │ let v16 : float = v15 / 2.0 │
00:07:28 #19642 [Verbose] > │ let v17 : float = v13 + v16 │
00:07:28 #19643 [Verbose] > │ v8.[int v11] <- v17 │
00:07:28 #19644 [Verbose] > │ let v18 : int32 = v11 + 1 │
00:07:28 #19645 [Verbose] > │ v9.l0 <- v18 │
00:07:28 #19646 [Verbose] > │ () │
00:07:28 #19647 [Verbose] > │ let v19 : string = "height of projectile (m)" │
00:07:28 #19648 [Verbose] > │ let v20 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:28 #19649 [Verbose] > │ (v19, v0, v8)|] │
00:07:28 #19650 [Verbose] > │ let v21 : string = "projectile motion" │
00:07:28 #19651 [Verbose] > │ let v22 : string = "time (s)" │
00:07:28 #19652 [Verbose] > │ let v23 : string = "" │
00:07:28 #19653 [Verbose] > │ struct (v21, v22, v23, v20) │
00:07:28 #19654 [Verbose] > │ method0() │
00:07:28 #19655 [Verbose] > │ │
00:07:28 #19656 [Verbose] > │ │
00:07:28 #19657 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:28 #19658 [Verbose] >
00:07:28 #19659 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:28 #19660 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:28 #19661 [Verbose] > │ ## velocity_cf │
00:07:28 #19662 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:28 #19663 [Verbose] >
00:07:28 #19664 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:28 #19665 [Verbose] > type mass = f64
00:07:28 #19666 [Verbose] > type time = f64
00:07:28 #19667 [Verbose] > type position = f64
00:07:28 #19668 [Verbose] > type velocity = f64
00:07:28 #19669 [Verbose] > type force = f64
00:07:28 #19670 [Verbose] >
00:07:28 #19671 [Verbose] > type velocity_cf = mass -> velocity -> list force -> (time -> velocity)
00:07:28 #19672 [Verbose] >
00:07:28 #19673 [Verbose] > inl velocity_cf m v0 fs =
00:07:28 #19674 [Verbose] > inl f_net = fs |> listm'.sum
00:07:28 #19675 [Verbose] > inl a0 = f_net / m
00:07:28 #19676 [Verbose] > inl v t = v0 + a0 * t
00:07:28 #19677 [Verbose] > v
00:07:29 #19678 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0115-1547-125c76fbb6fb\main.spi
00:07:29 #19679 [Verbose] >
00:07:29 #19680 [Verbose] > ╭─[ 311.27ms - stdout ]────────────────────────────────────────────────────────╮
00:07:29 #19681 [Verbose] > │ () │
00:07:29 #19682 [Verbose] > │ │
00:07:29 #19683 [Verbose] > │ │
00:07:29 #19684 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:29 #19685 [Verbose] >
00:07:29 #19686 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:29 #19687 [Verbose] > // // test
00:07:29 #19688 [Verbose] >
00:07:29 #19689 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 0
00:07:29 #19690 [Verbose] > |> _assert_eq 0.6
00:07:29 #19691 [Verbose] >
00:07:29 #19692 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 1
00:07:29 #19693 [Verbose] > |> _assert_eq 0.2
00:07:29 #19694 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0146-4682-4a22892f730d\main.spi
00:07:29 #19695 [Verbose] >
00:07:29 #19696 [Verbose] > ╭─[ 220.55ms - stdout ]────────────────────────────────────────────────────────╮
00:07:29 #19697 [Verbose] > │ let rec method0 () : unit = │
00:07:29 #19698 [Verbose] > │ let v0 : string = $"%A{0.6}" │
00:07:29 #19699 [Verbose] > │ System.Console.WriteLine v0 │
00:07:29 #19700 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.6} / expected: %A{0.6}" │
00:07:29 #19701 [Verbose] > │ let v2 : string = $"%A{0.2}" │
00:07:29 #19702 [Verbose] > │ System.Console.WriteLine v2 │
00:07:29 #19703 [Verbose] > │ let v3 : string = $"__expect / actual: %A{0.2} / expected: %A{0.2}" │
00:07:29 #19704 [Verbose] > │ () │
00:07:29 #19705 [Verbose] > │ method0() │
00:07:29 #19706 [Verbose] > │ │
00:07:29 #19707 [Verbose] > │ 0.6 │
00:07:29 #19708 [Verbose] > │ 0.2 │
00:07:29 #19709 [Verbose] > │ │
00:07:29 #19710 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:29 #19711 [Verbose] >
00:07:29 #19712 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:29 #19713 [Verbose] > // // test
00:07:29 #19714 [Verbose] >
00:07:29 #19715 [Verbose] > inl x = am'.init_series 0 4 0.1
00:07:29 #19716 [Verbose] > inl y = x |> am.map (velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]])
00:07:29 #19717 [Verbose] > "car on an air track", "time (s)", "", ;[[ "velocity of car (m/s)", x, y ]]
00:07:29 #19718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0169-6944-6d352db59003\main.spi
00:07:29 #19719 [Verbose] >
00:07:29 #19720 [Verbose] > ╭─[ 331.75ms - return value ]──────────────────────────────────────────────────╮
00:07:29 #19721 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:29 #19722 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:29 #19723 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:29 #19724 [Verbose] > │ stroke="none"/> │
00:07:29 #19725 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:29 #19726 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:29 #19727 [Verbose] > │ fill="#FFFFFF"> │
00:07:29 #19728 [Verbose] > │ car on an air track │
00:07:29 #19729 [Verbose] > │ </text> │
00:07:29 #19730 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │
00:07:29 #19731 [Verbose] > │ y2="75"/> │
00:07:29 #19732 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:29 #19733 [Verbose] > │ y2="75"/> │
00:07:29 #19734 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │
00:07:29 #19735 [Verbose] > │ y2="75"/> │
00:07:29 #19736 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │
00:07:29 #19737 [Verbose] > │ y2="75"/> │
00:07:29 #19738 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1=... │
00:07:29 #19739 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:29 #19740 [Verbose] >
00:07:29 #19741 [Verbose] > ╭─[ 346.56ms - stdout ]────────────────────────────────────────────────────────╮
00:07:29 #19742 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:29 #19743 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:29 #19744 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:29 #19745 [Verbose] > │ let v2 : bool = v1 < 41 │
00:07:29 #19746 [Verbose] > │ v2 │
00:07:29 #19747 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:29 #19748 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:29 #19749 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:29 #19750 [Verbose] > │ v3 │
00:07:29 #19751 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:29 #19752 [Verbose] > │ []) * (float [])) [])) = │
00:07:29 #19753 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (41) │
00:07:29 #19754 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:29 #19755 [Verbose] > │ while method1(v1) do │
00:07:29 #19756 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:29 #19757 [Verbose] > │ let v4 : float = float v3 │
00:07:29 #19758 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:07:29 #19759 [Verbose] > │ v0.[int v3] <- v5 │
00:07:29 #19760 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:29 #19761 [Verbose] > │ v1.l0 <- v6 │
00:07:29 #19762 [Verbose] > │ () │
00:07:29 #19763 [Verbose] > │ let v7 : int32 = v0.Length │
00:07:29 #19764 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:07:29 #19765 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:07:29 #19766 [Verbose] > │ while method2(v7, v9) do │
00:07:29 #19767 [Verbose] > │ let v11 : int32 = v9.l0 │
00:07:29 #19768 [Verbose] > │ let v12 : float = v0.[int v11] │
00:07:29 #19769 [Verbose] > │ let v13 : float = -0.39999999999999997 * v12 │
00:07:29 #19770 [Verbose] > │ let v14 : float = 0.6 + v13 │
00:07:29 #19771 [Verbose] > │ v8.[int v11] <- v14 │
00:07:29 #19772 [Verbose] > │ let v15 : int32 = v11 + 1 │
00:07:29 #19773 [Verbose] > │ v9.l0 <- v15 │
00:07:29 #19774 [Verbose] > │ () │
00:07:29 #19775 [Verbose] > │ let v16 : string = "velocity of car (m/s)" │
00:07:29 #19776 [Verbose] > │ let v17 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:29 #19777 [Verbose] > │ (v16, v0, v8)|] │
00:07:29 #19778 [Verbose] > │ let v18 : string = "car on an air track" │
00:07:29 #19779 [Verbose] > │ let v19 : string = "time (s)" │
00:07:29 #19780 [Verbose] > │ let v20 : string = "" │
00:07:29 #19781 [Verbose] > │ struct (v18, v19, v20, v17) │
00:07:29 #19782 [Verbose] > │ method0() │
00:07:29 #19783 [Verbose] > │ │
00:07:29 #19784 [Verbose] > │ │
00:07:29 #19785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:29 #19786 [Verbose] >
00:07:29 #19787 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:29 #19788 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:29 #19789 [Verbose] > │ ## derivative │
00:07:29 #19790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:29 #19791 [Verbose] >
00:07:29 #19792 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:29 #19793 [Verbose] > type derivative = (f64 -> f64) -> f64 -> f64
00:07:29 #19794 [Verbose] >
00:07:29 #19795 [Verbose] > inl derivative dt : derivative =
00:07:29 #19796 [Verbose] > fun x t =>
00:07:29 #19797 [Verbose] > (x (t + dt / 2) - x (t - dt / 2)) / dt
00:07:29 #19798 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0206-0679-0525071ab407\main.spi
00:07:30 #19799 [Verbose] >
00:07:30 #19800 [Verbose] > ╭─[ 241.58ms - stdout ]────────────────────────────────────────────────────────╮
00:07:30 #19801 [Verbose] > │ () │
00:07:30 #19802 [Verbose] > │ │
00:07:30 #19803 [Verbose] > │ │
00:07:30 #19804 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:30 #19805 [Verbose] >
00:07:30 #19806 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:30 #19807 [Verbose] > // // test
00:07:30 #19808 [Verbose] >
00:07:30 #19809 [Verbose] > derivative 1 (fun x => x ** 4 / 4) 1 - 1
00:07:30 #19810 [Verbose] > |> _assert_approx_eq None 0.25
00:07:30 #19811 [Verbose] >
00:07:30 #19812 [Verbose] > derivative 0.001 (fun x => x ** 4 / 4) 1 - 1
00:07:30 #19813 [Verbose] > |> _assert_approx_eq None 0.0000002499998827953931
00:07:30 #19814 [Verbose] >
00:07:30 #19815 [Verbose] > derivative 0.000001 (fun x => x ** 4 / 4) 1 - 1
00:07:30 #19816 [Verbose] > |> _assert_approx_eq None 0.000000000001000088900582341
00:07:30 #19817 [Verbose] >
00:07:30 #19818 [Verbose] > derivative 0.000000001 (fun x => x ** 4 / 4) 1 - 1
00:07:30 #19819 [Verbose] > |> _assert_approx_eq None 0.00000008274037099909037
00:07:30 #19820 [Verbose] >
00:07:30 #19821 [Verbose] > derivative 0.000000000001 (fun x => x ** 4 / 4) 1 - 1
00:07:30 #19822 [Verbose] > |> _assert_approx_eq None 0.00008890058234101161
00:07:30 #19823 [Verbose] >
00:07:30 #19824 [Verbose] > derivative 0.000000000000001 (fun x => x ** 4 / 4) 1 - 1
00:07:30 #19825 [Verbose] > |> _assert_approx_eq None -0.0007992778373592246
00:07:30 #19826 [Verbose] >
00:07:30 #19827 [Verbose] > derivative 0.000000000000000001 (fun x => x ** 4 / 4) 1 - 1
00:07:30 #19828 [Verbose] > |> _assert_approx_eq None -1
00:07:30 #19829 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0231-3126-3a0d05fdfdf0\main.spi
00:07:30 #19830 [Verbose] >
00:07:30 #19831 [Verbose] > ╭─[ 377.72ms - stdout ]────────────────────────────────────────────────────────╮
00:07:30 #19832 [Verbose] > │ let rec method0 () : unit = │
00:07:30 #19833 [Verbose] > │ let v0 : string = $"%A{0.25}" │
00:07:30 #19834 [Verbose] > │ System.Console.WriteLine v0 │
00:07:30 #19835 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.25} / expected: %A{0.25}" │
00:07:30 #19836 [Verbose] > │ let v2 : string = $"%A{2.499998827953931E-07}" │
00:07:30 #19837 [Verbose] > │ System.Console.WriteLine v2 │
00:07:30 #19838 [Verbose] > │ let v3 : string = $"__expect / actual: %A{2.499998827953931E-07} / │
00:07:30 #19839 [Verbose] > │ expected: %A{2.499998827953931E-07}" │
00:07:30 #19840 [Verbose] > │ let v4 : string = $"%A{1.000088900582341E-12}" │
00:07:30 #19841 [Verbose] > │ System.Console.WriteLine v4 │
00:07:30 #19842 [Verbose] > │ let v5 : string = $"__expect / actual: %A{1.000088900582341E-12} / │
00:07:30 #19843 [Verbose] > │ expected: %A{1.000088900582341E-12}" │
00:07:30 #19844 [Verbose] > │ let v6 : string = $"%A{8.274037099909037E-08}" │
00:07:30 #19845 [Verbose] > │ System.Console.WriteLine v6 │
00:07:30 #19846 [Verbose] > │ let v7 : string = $"__expect / actual: %A{8.274037099909037E-08} / │
00:07:30 #19847 [Verbose] > │ expected: %A{8.274037099909037E-08}" │
00:07:30 #19848 [Verbose] > │ let v8 : string = $"%A{8.890058234101161E-05}" │
00:07:30 #19849 [Verbose] > │ System.Console.WriteLine v8 │
00:07:30 #19850 [Verbose] > │ let v9 : string = $"__expect / actual: %A{8.890058234101161E-05} / │
00:07:30 #19851 [Verbose] > │ expected: %A{8.890058234101161E-05}" │
00:07:30 #19852 [Verbose] > │ let v10 : string = $"%A{-0.0007992778373592246}" │
00:07:30 #19853 [Verbose] > │ System.Console.WriteLine v10 │
00:07:30 #19854 [Verbose] > │ let v11 : string = $"__expect / actual: %A{-0.0007992778373592246} / │
00:07:30 #19855 [Verbose] > │ expected: %A{-0.0007992778373592246}" │
00:07:30 #19856 [Verbose] > │ let v12 : string = $"%A{-1.0}" │
00:07:30 #19857 [Verbose] > │ System.Console.WriteLine v12 │
00:07:30 #19858 [Verbose] > │ let v13 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}" │
00:07:30 #19859 [Verbose] > │ () │
00:07:30 #19860 [Verbose] > │ method0() │
00:07:30 #19861 [Verbose] > │ │
00:07:30 #19862 [Verbose] > │ 0.25 │
00:07:30 #19863 [Verbose] > │ 2.499998828e-07 │
00:07:30 #19864 [Verbose] > │ 1.000088901e-12 │
00:07:30 #19865 [Verbose] > │ 8.2740371e-08 │
00:07:30 #19866 [Verbose] > │ 8.890058234e-05 │
00:07:30 #19867 [Verbose] > │ -0.0007992778374 │
00:07:30 #19868 [Verbose] > │ -1.0 │
00:07:30 #19869 [Verbose] > │ │
00:07:30 #19870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:30 #19871 [Verbose] >
00:07:30 #19872 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:30 #19873 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:30 #19874 [Verbose] > │ ## integration │
00:07:30 #19875 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:30 #19876 [Verbose] >
00:07:30 #19877 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:30 #19878 [Verbose] > type integration = (f64 -> f64) -> f64 -> f64 -> f64
00:07:30 #19879 [Verbose] >
00:07:30 #19880 [Verbose] > inl integral dt : integration =
00:07:30 #19881 [Verbose] > fun f a b =>
00:07:30 #19882 [Verbose] > inl rec loop t y =
00:07:30 #19883 [Verbose] > if t < b
00:07:30 #19884 [Verbose] > then loop (t + dt) (y + f t * dt)
00:07:30 #19885 [Verbose] > else t, y
00:07:30 #19886 [Verbose] > loop (a + dt / 2) 0
00:07:30 #19887 [Verbose] > |> snd
00:07:30 #19888 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0271-7186-7969ade1d4f7\main.spi
00:07:30 #19889 [Verbose] >
00:07:30 #19890 [Verbose] > ╭─[ 199.85ms - stdout ]────────────────────────────────────────────────────────╮
00:07:30 #19891 [Verbose] > │ () │
00:07:30 #19892 [Verbose] > │ │
00:07:30 #19893 [Verbose] > │ │
00:07:30 #19894 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:30 #19895 [Verbose] >
00:07:30 #19896 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:30 #19897 [Verbose] > // // test
00:07:30 #19898 [Verbose] >
00:07:30 #19899 [Verbose] > integral 0.01 math.square 0 1
00:07:30 #19900 [Verbose] > |> _assert_approx_eq None 0.33332500000000004
00:07:30 #19901 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0291-9173-9ded3c24cde7\main.spi
00:07:30 #19902 [Verbose] >
00:07:30 #19903 [Verbose] > ╭─[ 242.82ms - stdout ]────────────────────────────────────────────────────────╮
00:07:30 #19904 [Verbose] > │ let rec method0 () : unit = │
00:07:30 #19905 [Verbose] > │ let v0 : string = $"%A{0.3333250000000004}" │
00:07:30 #19906 [Verbose] > │ System.Console.WriteLine v0 │
00:07:30 #19907 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.3333250000000004} / │
00:07:30 #19908 [Verbose] > │ expected: %A{0.33332500000000004}" │
00:07:30 #19909 [Verbose] > │ () │
00:07:30 #19910 [Verbose] > │ method0() │
00:07:30 #19911 [Verbose] > │ │
00:07:30 #19912 [Verbose] > │ 0.333325 │
00:07:30 #19913 [Verbose] > │ │
00:07:30 #19914 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:30 #19915 [Verbose] >
00:07:30 #19916 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:30 #19917 [Verbose] > inl integral' dt : integration =
00:07:30 #19918 [Verbose] > fun f a b =>
00:07:30 #19919 [Verbose] > listm'.init_series (a + dt / 2) (b - dt / 2) dt
00:07:30 #19920 [Verbose] > |> listm.map (f >> (*) dt)
00:07:30 #19921 [Verbose] > |> listm'.sum
00:07:31 #19922 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0316-1652-1d4473b8a862\main.spi
00:07:31 #19923 [Verbose] >
00:07:31 #19924 [Verbose] > ╭─[ 266.62ms - stdout ]────────────────────────────────────────────────────────╮
00:07:31 #19925 [Verbose] > │ () │
00:07:31 #19926 [Verbose] > │ │
00:07:31 #19927 [Verbose] > │ │
00:07:31 #19928 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:31 #19929 [Verbose] >
00:07:31 #19930 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:31 #19931 [Verbose] > // // test
00:07:31 #19932 [Verbose] >
00:07:31 #19933 [Verbose] > integral' 0.1 math.square 0 1
00:07:31 #19934 [Verbose] > |> _assert_approx_eq None (integral 0.1 math.square 0 1)
00:07:31 #19935 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0343-4338-454dc0032256\main.spi
00:07:31 #19936 [Verbose] >
00:07:31 #19937 [Verbose] > ╭─[ 244.32ms - stdout ]────────────────────────────────────────────────────────╮
00:07:31 #19938 [Verbose] > │ let rec method0 () : unit = │
00:07:31 #19939 [Verbose] > │ let v0 : string = $"%A{0.3325000000000001}" │
00:07:31 #19940 [Verbose] > │ System.Console.WriteLine v0 │
00:07:31 #19941 [Verbose] > │ let v1 : string = $"__expect / actual: %A{0.3325000000000001} / │
00:07:31 #19942 [Verbose] > │ expected: %A{0.33249999999999996}" │
00:07:31 #19943 [Verbose] > │ () │
00:07:31 #19944 [Verbose] > │ method0() │
00:07:31 #19945 [Verbose] > │ │
00:07:31 #19946 [Verbose] > │ 0.3325 │
00:07:31 #19947 [Verbose] > │ │
00:07:31 #19948 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:31 #19949 [Verbose] >
00:07:31 #19950 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:31 #19951 [Verbose] > inl integral'' dt : integration =
00:07:31 #19952 [Verbose] > fun f a b =>
00:07:31 #19953 [Verbose] > am'.init_series (a + dt / 2) (b - dt / 2) dt
00:07:31 #19954 [Verbose] > |> am.map (f >> (*) dt)
00:07:31 #19955 [Verbose] > |> am'.sum
00:07:31 #19956 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0368-6841-6c6db655603b\main.spi
00:07:31 #19957 [Verbose] >
00:07:31 #19958 [Verbose] > ╭─[ 215.31ms - stdout ]────────────────────────────────────────────────────────╮
00:07:31 #19959 [Verbose] > │ () │
00:07:31 #19960 [Verbose] > │ │
00:07:31 #19961 [Verbose] > │ │
00:07:31 #19962 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:31 #19963 [Verbose] >
00:07:31 #19964 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:31 #19965 [Verbose] > // // test
00:07:31 #19966 [Verbose] >
00:07:31 #19967 [Verbose] > integral'' 0.01 math.square 0 1
00:07:31 #19968 [Verbose] > |> _assert_approx_eq None (integral 0.01 math.square 0 1)
00:07:31 #19969 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0390-9014-9c9a6d4eea81\main.spi
00:07:32 #19970 [Verbose] >
00:07:32 #19971 [Verbose] > ╭─[ 376.48ms - stdout ]────────────────────────────────────────────────────────╮
00:07:32 #19972 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:32 #19973 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : float} │
00:07:32 #19974 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:32 #19975 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:32 #19976 [Verbose] > │ let v2 : bool = v1 < 100 │
00:07:32 #19977 [Verbose] > │ v2 │
00:07:32 #19978 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:32 #19979 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:32 #19980 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:32 #19981 [Verbose] > │ v3 │
00:07:32 #19982 [Verbose] > │ and method3 (v0 : int32, v1 : Mut1) : bool = │
00:07:32 #19983 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:32 #19984 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:32 #19985 [Verbose] > │ v3 │
00:07:32 #19986 [Verbose] > │ and method4 (v0 : bool) : bool = │
00:07:32 #19987 [Verbose] > │ v0 │
00:07:32 #19988 [Verbose] > │ and method0 () : unit = │
00:07:32 #19989 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (100) │
00:07:32 #19990 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:32 #19991 [Verbose] > │ while method1(v1) do │
00:07:32 #19992 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:32 #19993 [Verbose] > │ let v4 : float = float v3 │
00:07:32 #19994 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:07:32 #19995 [Verbose] > │ let v6 : float = 0.005 + v5 │
00:07:32 #19996 [Verbose] > │ v0.[int v3] <- v6 │
00:07:32 #19997 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:07:32 #19998 [Verbose] > │ v1.l0 <- v7 │
00:07:32 #19999 [Verbose] > │ () │
00:07:32 #20000 [Verbose] > │ let v8 : int32 = v0.Length │
00:07:32 #20001 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:07:32 #20002 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:07:32 #20003 [Verbose] > │ while method2(v8, v10) do │
00:07:32 #20004 [Verbose] > │ let v12 : int32 = v10.l0 │
00:07:32 #20005 [Verbose] > │ let v13 : float = v0.[int v12] │
00:07:32 #20006 [Verbose] > │ let v14 : float = v13 ** 2.0 │
00:07:32 #20007 [Verbose] > │ let v15 : float = 0.01 * v14 │
00:07:32 #20008 [Verbose] > │ v9.[int v12] <- v15 │
00:07:32 #20009 [Verbose] > │ let v16 : int32 = v12 + 1 │
00:07:32 #20010 [Verbose] > │ v10.l0 <- v16 │
00:07:32 #20011 [Verbose] > │ () │
00:07:32 #20012 [Verbose] > │ let v17 : int32 = v9.Length │
00:07:32 #20013 [Verbose] > │ let v18 : Mut1 = {l0 = 0; l1 = 0.0} : Mut1 │
00:07:32 #20014 [Verbose] > │ while method3(v17, v18) do │
00:07:32 #20015 [Verbose] > │ let v20 : int32 = v18.l0 │
00:07:32 #20016 [Verbose] > │ let v21 : float = v18.l1 │
00:07:32 #20017 [Verbose] > │ let v22 : float = v9.[int v20] │
00:07:32 #20018 [Verbose] > │ let v23 : float = v21 + v22 │
00:07:32 #20019 [Verbose] > │ let v24 : int32 = v20 + 1 │
00:07:32 #20020 [Verbose] > │ v18.l0 <- v24 │
00:07:32 #20021 [Verbose] > │ v18.l1 <- v23 │
00:07:32 #20022 [Verbose] > │ () │
00:07:32 #20023 [Verbose] > │ let v25 : float = v18.l1 │
00:07:32 #20024 [Verbose] > │ let v26 : string = $"%A{v25}" │
00:07:32 #20025 [Verbose] > │ System.Console.WriteLine v26 │
00:07:32 #20026 [Verbose] > │ let v27 : float = 0.3333250000000004 - v25 │
00:07:32 #20027 [Verbose] > │ let v28 : float = -v27 │
00:07:32 #20028 [Verbose] > │ let v29 : bool = v27 >= v28 │
00:07:32 #20029 [Verbose] > │ let v30 : float = │
00:07:32 #20030 [Verbose] > │ if v29 then │
00:07:32 #20031 [Verbose] > │ v27 │
00:07:32 #20032 [Verbose] > │ else │
00:07:32 #20033 [Verbose] > │ v28 │
00:07:32 #20034 [Verbose] > │ let v31 : bool = v30 < 1E-08 │
00:07:32 #20035 [Verbose] > │ let v33 : bool = │
00:07:32 #20036 [Verbose] > │ if v31 then │
00:07:32 #20037 [Verbose] > │ true │
00:07:32 #20038 [Verbose] > │ else │
00:07:32 #20039 [Verbose] > │ method4(v31) │
00:07:32 #20040 [Verbose] > │ let v34 : string = $"__expect / actual: %A{v25} / expected: │
00:07:32 #20041 [Verbose] > │ %A{0.3333250000000004}" │
00:07:32 #20042 [Verbose] > │ let v35 : bool = v33 = false │
00:07:32 #20043 [Verbose] > │ if v35 then │
00:07:32 #20044 [Verbose] > │ failwith<unit> v34 │
00:07:32 #20045 [Verbose] > │ method0() │
00:07:32 #20046 [Verbose] > │ │
00:07:32 #20047 [Verbose] > │ 0.333325 │
00:07:32 #20048 [Verbose] > │ │
00:07:32 #20049 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:32 #20050 [Verbose] >
00:07:32 #20051 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:32 #20052 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:32 #20053 [Verbose] > │ ## anti_derivative │
00:07:32 #20054 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:32 #20055 [Verbose] >
00:07:32 #20056 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:32 #20057 [Verbose] > inl anti_derivative dt v0 a t =
00:07:32 #20058 [Verbose] > v0 + integral' dt a 0 t
00:07:32 #20059 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0431-3189-327d1fa4f033\main.spi
00:07:32 #20060 [Verbose] >
00:07:32 #20061 [Verbose] > ╭─[ 205.30ms - stdout ]────────────────────────────────────────────────────────╮
00:07:32 #20062 [Verbose] > │ () │
00:07:32 #20063 [Verbose] > │ │
00:07:32 #20064 [Verbose] > │ │
00:07:32 #20065 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:32 #20066 [Verbose] >
00:07:32 #20067 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:32 #20068 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:32 #20069 [Verbose] > │ ## velocity_ft │
00:07:32 #20070 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:32 #20071 [Verbose] >
00:07:32 #20072 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:32 #20073 [Verbose] > type velocity_ft = mass -> velocity -> list (time -> force) -> (time ->
00:07:32 #20074 [Verbose] > velocity)
00:07:32 #20075 [Verbose] >
00:07:32 #20076 [Verbose] > inl velocity_ft dt : velocity_ft =
00:07:32 #20077 [Verbose] > fun m v0 fs =>
00:07:32 #20078 [Verbose] > inl f_net t = fs |> listm.map (fun f => f t) |> listm'.sum
00:07:32 #20079 [Verbose] > inl a t = f_net t / m
00:07:32 #20080 [Verbose] > anti_derivative dt v0 a
00:07:32 #20081 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0452-5290-588e4333b274\main.spi
00:07:32 #20082 [Verbose] >
00:07:32 #20083 [Verbose] > ╭─[ 214.92ms - stdout ]────────────────────────────────────────────────────────╮
00:07:32 #20084 [Verbose] > │ () │
00:07:32 #20085 [Verbose] > │ │
00:07:32 #20086 [Verbose] > │ │
00:07:32 #20087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:32 #20088 [Verbose] >
00:07:32 #20089 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:32 #20090 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:32 #20091 [Verbose] > │ ## position_ft │
00:07:32 #20092 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:32 #20093 [Verbose] >
00:07:32 #20094 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:32 #20095 [Verbose] > type position_ft = mass -> position -> velocity -> list (time -> force) -> (time
00:07:32 #20096 [Verbose] > -> position)
00:07:32 #20097 [Verbose] >
00:07:32 #20098 [Verbose] > inl position_ft dt : position_ft =
00:07:32 #20099 [Verbose] > fun m x0 v0 fs =>
00:07:32 #20100 [Verbose] > velocity_ft dt m v0 fs
00:07:32 #20101 [Verbose] > |> anti_derivative dt x0
00:07:32 #20102 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0475-7505-7cf833b59ea6\main.spi
00:07:32 #20103 [Verbose] >
00:07:32 #20104 [Verbose] > ╭─[ 241.91ms - stdout ]────────────────────────────────────────────────────────╮
00:07:32 #20105 [Verbose] > │ () │
00:07:32 #20106 [Verbose] > │ │
00:07:32 #20107 [Verbose] > │ │
00:07:32 #20108 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:32 #20109 [Verbose] >
00:07:32 #20110 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:32 #20111 [Verbose] > // // test
00:07:32 #20112 [Verbose] >
00:07:32 #20113 [Verbose] > inl pedal_coast (t : time) : force =
00:07:32 #20114 [Verbose] > inl t_cycle = 20
00:07:32 #20115 [Verbose] > inl n_complete : i32 = t / t_cycle |> conv
00:07:32 #20116 [Verbose] > inl remainder = t - conv n_complete * t_cycle
00:07:32 #20117 [Verbose] > if remainder > 0 && remainder < 10
00:07:32 #20118 [Verbose] > then 10
00:07:32 #20119 [Verbose] > else 0
00:07:32 #20120 [Verbose] >
00:07:32 #20121 [Verbose] > inl x = am'.init_series -5 45 0.1
00:07:32 #20122 [Verbose] > inl y = x |> am.map pedal_coast
00:07:32 #20123 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "force on bike (N)", x, y ]]
00:07:32 #20124 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0499-9943-9e56dfb10ad9\main.spi
00:07:33 #20125 [Verbose] >
00:07:33 #20126 [Verbose] > ╭─[ 285.38ms - return value ]──────────────────────────────────────────────────╮
00:07:33 #20127 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:33 #20128 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:33 #20129 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:33 #20130 [Verbose] > │ stroke="none"/> │
00:07:33 #20131 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:33 #20132 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:33 #20133 [Verbose] > │ fill="#FFFFFF"> │
00:07:33 #20134 [Verbose] > │ child pedaling then coasting │
00:07:33 #20135 [Verbose] > │ </text> │
00:07:33 #20136 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:07:33 #20137 [Verbose] > │ y2="75"/> │
00:07:33 #20138 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:33 #20139 [Verbose] > │ y2="75"/> │
00:07:33 #20140 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:07:33 #20141 [Verbose] > │ y2="75"/> │
00:07:33 #20142 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:07:33 #20143 [Verbose] > │ y2="75"/> │
00:07:33 #20144 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=... │
00:07:33 #20145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:33 #20146 [Verbose] >
00:07:33 #20147 [Verbose] > ╭─[ 298.31ms - stdout ]────────────────────────────────────────────────────────╮
00:07:33 #20148 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:33 #20149 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:33 #20150 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:33 #20151 [Verbose] > │ let v2 : bool = v1 < 501 │
00:07:33 #20152 [Verbose] > │ v2 │
00:07:33 #20153 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:33 #20154 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:33 #20155 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:33 #20156 [Verbose] > │ v3 │
00:07:33 #20157 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:33 #20158 [Verbose] > │ []) * (float [])) [])) = │
00:07:33 #20159 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (501) │
00:07:33 #20160 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:33 #20161 [Verbose] > │ while method1(v1) do │
00:07:33 #20162 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:33 #20163 [Verbose] > │ let v4 : float = float v3 │
00:07:33 #20164 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:07:33 #20165 [Verbose] > │ let v6 : float = -5.0 + v5 │
00:07:33 #20166 [Verbose] > │ v0.[int v3] <- v6 │
00:07:33 #20167 [Verbose] > │ let v7 : int32 = v3 + 1 │
00:07:33 #20168 [Verbose] > │ v1.l0 <- v7 │
00:07:33 #20169 [Verbose] > │ () │
00:07:33 #20170 [Verbose] > │ let v8 : int32 = v0.Length │
00:07:33 #20171 [Verbose] > │ let v9 : (float []) = Array.zeroCreate<float> (v8) │
00:07:33 #20172 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:07:33 #20173 [Verbose] > │ while method2(v8, v10) do │
00:07:33 #20174 [Verbose] > │ let v12 : int32 = v10.l0 │
00:07:33 #20175 [Verbose] > │ let v13 : float = v0.[int v12] │
00:07:33 #20176 [Verbose] > │ let v14 : float = v13 / 20.0 │
00:07:33 #20177 [Verbose] > │ let v15 : int32 = int32 v14 │
00:07:33 #20178 [Verbose] > │ let v16 : float = float v15 │
00:07:33 #20179 [Verbose] > │ let v17 : float = v16 * 20.0 │
00:07:33 #20180 [Verbose] > │ let v18 : float = v13 - v17 │
00:07:33 #20181 [Verbose] > │ let v19 : bool = v18 > 0.0 │
00:07:33 #20182 [Verbose] > │ let v21 : bool = │
00:07:33 #20183 [Verbose] > │ if v19 then │
00:07:33 #20184 [Verbose] > │ let v20 : bool = v18 < 10.0 │
00:07:33 #20185 [Verbose] > │ v20 │
00:07:33 #20186 [Verbose] > │ else │
00:07:33 #20187 [Verbose] > │ false │
00:07:33 #20188 [Verbose] > │ let v22 : float = │
00:07:33 #20189 [Verbose] > │ if v21 then │
00:07:33 #20190 [Verbose] > │ 10.0 │
00:07:33 #20191 [Verbose] > │ else │
00:07:33 #20192 [Verbose] > │ 0.0 │
00:07:33 #20193 [Verbose] > │ v9.[int v12] <- v22 │
00:07:33 #20194 [Verbose] > │ let v23 : int32 = v12 + 1 │
00:07:33 #20195 [Verbose] > │ v10.l0 <- v23 │
00:07:33 #20196 [Verbose] > │ () │
00:07:33 #20197 [Verbose] > │ let v24 : string = "force on bike (N)" │
00:07:33 #20198 [Verbose] > │ let v25 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:33 #20199 [Verbose] > │ (v24, v0, v9)|] │
00:07:33 #20200 [Verbose] > │ let v26 : string = "child pedaling then coasting" │
00:07:33 #20201 [Verbose] > │ let v27 : string = "time (s)" │
00:07:33 #20202 [Verbose] > │ let v28 : string = "" │
00:07:33 #20203 [Verbose] > │ struct (v26, v27, v28, v25) │
00:07:33 #20204 [Verbose] > │ method0() │
00:07:33 #20205 [Verbose] > │ │
00:07:33 #20206 [Verbose] > │ │
00:07:33 #20207 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:33 #20208 [Verbose] >
00:07:33 #20209 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:33 #20210 [Verbose] > // // test
00:07:33 #20211 [Verbose] >
00:07:33 #20212 [Verbose] > inl x = am'.init_series -5 45 1
00:07:33 #20213 [Verbose] > inl y = x |> am.map (position_ft 0.1f64 20 0 0 [[ pedal_coast ]])
00:07:33 #20214 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "position of bike (m)", x, y
00:07:33 #20215 [Verbose] > ]]
00:07:33 #20216 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0532-3253-374ba918c153\main.spi
00:07:33 #20217 [Verbose] >
00:07:33 #20218 [Verbose] > ╭─[ 632.20ms - return value ]──────────────────────────────────────────────────╮
00:07:33 #20219 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:33 #20220 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:33 #20221 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:33 #20222 [Verbose] > │ stroke="none"/> │
00:07:33 #20223 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:33 #20224 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:33 #20225 [Verbose] > │ fill="#FFFFFF"> │
00:07:33 #20226 [Verbose] > │ child pedaling then coasting │
00:07:33 #20227 [Verbose] > │ </text> │
00:07:33 #20228 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:07:33 #20229 [Verbose] > │ y2="75"/> │
00:07:33 #20230 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:33 #20231 [Verbose] > │ y2="75"/> │
00:07:33 #20232 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:07:33 #20233 [Verbose] > │ y2="75"/> │
00:07:33 #20234 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:07:33 #20235 [Verbose] > │ y2="75"/> │
00:07:33 #20236 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=... │
00:07:33 #20237 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:33 #20238 [Verbose] >
00:07:33 #20239 [Verbose] > ╭─[ 644.15ms - stdout ]────────────────────────────────────────────────────────╮
00:07:33 #20240 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:33 #20241 [Verbose] > │ and UH0 = │
00:07:33 #20242 [Verbose] > │ | UH0_0 │
00:07:33 #20243 [Verbose] > │ | UH0_1 of float * UH0 │
00:07:33 #20244 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:33 #20245 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:33 #20246 [Verbose] > │ let v2 : bool = v1 < 51 │
00:07:33 #20247 [Verbose] > │ v2 │
00:07:33 #20248 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:33 #20249 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:33 #20250 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:33 #20251 [Verbose] > │ v3 │
00:07:33 #20252 [Verbose] > │ and method3 (v0 : float, v1 : float) : UH0 = │
00:07:33 #20253 [Verbose] > │ let v2 : bool = v1 < v0 │
00:07:33 #20254 [Verbose] > │ if v2 then │
00:07:33 #20255 [Verbose] > │ let v3 : float = 0.1 * v1 │
00:07:33 #20256 [Verbose] > │ let v4 : float = 0.05 + v3 │
00:07:33 #20257 [Verbose] > │ let v5 : float = v1 + 1.0 │
00:07:33 #20258 [Verbose] > │ let v6 : UH0 = method3(v0, v5) │
00:07:33 #20259 [Verbose] > │ UH0_1(v4, v6) │
00:07:33 #20260 [Verbose] > │ else │
00:07:33 #20261 [Verbose] > │ UH0_0 │
00:07:33 #20262 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 = │
00:07:33 #20263 [Verbose] > │ match v0 with │
00:07:33 #20264 [Verbose] > │ | UH0_1(v2, v3) -> (* Cons *) │
00:07:33 #20265 [Verbose] > │ let v4 : UH0 = method5(v3, v1) │
00:07:33 #20266 [Verbose] > │ let v5 : float = v2 / 20.0 │
00:07:33 #20267 [Verbose] > │ let v6 : int32 = int32 v5 │
00:07:33 #20268 [Verbose] > │ let v7 : float = float v6 │
00:07:33 #20269 [Verbose] > │ let v8 : float = v7 * 20.0 │
00:07:33 #20270 [Verbose] > │ let v9 : float = v2 - v8 │
00:07:33 #20271 [Verbose] > │ let v10 : bool = v9 > 0.0 │
00:07:33 #20272 [Verbose] > │ let v12 : bool = │
00:07:33 #20273 [Verbose] > │ if v10 then │
00:07:33 #20274 [Verbose] > │ let v11 : bool = v9 < 10.0 │
00:07:33 #20275 [Verbose] > │ v11 │
00:07:33 #20276 [Verbose] > │ else │
00:07:33 #20277 [Verbose] > │ false │
00:07:33 #20278 [Verbose] > │ let v13 : float = │
00:07:33 #20279 [Verbose] > │ if v12 then │
00:07:33 #20280 [Verbose] > │ 10.0 │
00:07:33 #20281 [Verbose] > │ else │
00:07:33 #20282 [Verbose] > │ 0.0 │
00:07:33 #20283 [Verbose] > │ let v14 : float = v13 / 20.0 │
00:07:33 #20284 [Verbose] > │ let v15 : float = 0.1 * v14 │
00:07:33 #20285 [Verbose] > │ UH0_1(v15, v4) │
00:07:33 #20286 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:33 #20287 [Verbose] > │ v1 │
00:07:33 #20288 [Verbose] > │ and method6 (v0 : UH0, v1 : float) : float = │
00:07:33 #20289 [Verbose] > │ match v0 with │
00:07:33 #20290 [Verbose] > │ | UH0_1(v2, v3) -> (* Cons *) │
00:07:33 #20291 [Verbose] > │ let v4 : float = v1 + v2 │
00:07:33 #20292 [Verbose] > │ method6(v3, v4) │
00:07:33 #20293 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:33 #20294 [Verbose] > │ v1 │
00:07:33 #20295 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 = │
00:07:33 #20296 [Verbose] > │ match v0 with │
00:07:33 #20297 [Verbose] > │ | UH0_1(v2, v3) -> (* Cons *) │
00:07:33 #20298 [Verbose] > │ let v4 : UH0 = method4(v3, v1) │
00:07:33 #20299 [Verbose] > │ let v5 : float = v2 - 0.05 │
00:07:33 #20300 [Verbose] > │ let v6 : float = v5 - 0.05 │
00:07:33 #20301 [Verbose] > │ let v7 : float = v6 / 0.1 │
00:07:33 #20302 [Verbose] > │ let v8 : float = v7 + 1.0 │
00:07:33 #20303 [Verbose] > │ let v9 : float = 0.0 │
00:07:33 #20304 [Verbose] > │ let v10 : UH0 = method3(v8, v9) │
00:07:33 #20305 [Verbose] > │ let v11 : UH0 = UH0_0 │
00:07:33 #20306 [Verbose] > │ let v12 : UH0 = method5(v10, v11) │
00:07:33 #20307 [Verbose] > │ let v13 : float = 0.0 │
00:07:33 #20308 [Verbose] > │ let v14 : float = method6(v12, v13) │
00:07:33 #20309 [Verbose] > │ let v15 : float = 0.1 * v14 │
00:07:33 #20310 [Verbose] > │ UH0_1(v15, v4) │
00:07:33 #20311 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:33 #20312 [Verbose] > │ v1 │
00:07:33 #20313 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:33 #20314 [Verbose] > │ []) * (float [])) [])) = │
00:07:33 #20315 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (51) │
00:07:33 #20316 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:33 #20317 [Verbose] > │ while method1(v1) do │
00:07:33 #20318 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:33 #20319 [Verbose] > │ let v4 : float = float v3 │
00:07:33 #20320 [Verbose] > │ let v5 : float = -5.0 + v4 │
00:07:33 #20321 [Verbose] > │ v0.[int v3] <- v5 │
00:07:33 #20322 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:33 #20323 [Verbose] > │ v1.l0 <- v6 │
00:07:33 #20324 [Verbose] > │ () │
00:07:33 #20325 [Verbose] > │ let v7 : int32 = v0.Length │
00:07:33 #20326 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:07:33 #20327 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:07:33 #20328 [Verbose] > │ while method2(v7, v9) do │
00:07:33 #20329 [Verbose] > │ let v11 : int32 = v9.l0 │
00:07:33 #20330 [Verbose] > │ let v12 : float = v0.[int v11] │
00:07:33 #20331 [Verbose] > │ let v13 : float = v12 - 0.05 │
00:07:33 #20332 [Verbose] > │ let v14 : float = v13 - 0.05 │
00:07:33 #20333 [Verbose] > │ let v15 : float = v14 / 0.1 │
00:07:33 #20334 [Verbose] > │ let v16 : float = v15 + 1.0 │
00:07:33 #20335 [Verbose] > │ let v17 : float = 0.0 │
00:07:33 #20336 [Verbose] > │ let v18 : UH0 = method3(v16, v17) │
00:07:33 #20337 [Verbose] > │ let v19 : UH0 = UH0_0 │
00:07:33 #20338 [Verbose] > │ let v20 : UH0 = method4(v18, v19) │
00:07:33 #20339 [Verbose] > │ let v21 : float = 0.0 │
00:07:33 #20340 [Verbose] > │ let v22 : float = method6(v20, v21) │
00:07:33 #20341 [Verbose] > │ v8.[int v11] <- v22 │
00:07:33 #20342 [Verbose] > │ let v23 : int32 = v11 + 1 │
00:07:33 #20343 [Verbose] > │ v9.l0 <- v23 │
00:07:33 #20344 [Verbose] > │ () │
00:07:33 #20345 [Verbose] > │ let v24 : string = "position of bike (m)" │
00:07:33 #20346 [Verbose] > │ let v25 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:33 #20347 [Verbose] > │ (v24, v0, v8)|] │
00:07:33 #20348 [Verbose] > │ let v26 : string = "child pedaling then coasting" │
00:07:33 #20349 [Verbose] > │ let v27 : string = "time (s)" │
00:07:33 #20350 [Verbose] > │ let v28 : string = "" │
00:07:33 #20351 [Verbose] > │ struct (v26, v27, v28, v25) │
00:07:33 #20352 [Verbose] > │ method0() │
00:07:33 #20353 [Verbose] > │ │
00:07:33 #20354 [Verbose] > │ │
00:07:33 #20355 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:33 #20356 [Verbose] >
00:07:33 #20357 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:33 #20358 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:33 #20359 [Verbose] > │ ## velocity_fv │
00:07:33 #20360 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:33 #20361 [Verbose] >
00:07:33 #20362 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:33 #20363 [Verbose] > inl newton_second_v m fs v0 =
00:07:33 #20364 [Verbose] > fs |> listm.map (fun f => f v0) |> listm'.sum |> fun x => x / m
00:07:33 #20365 [Verbose] >
00:07:33 #20366 [Verbose] > inl update_velocity dt m fs v0 =
00:07:33 #20367 [Verbose] > v0 + newton_second_v m fs v0 * dt
00:07:33 #20368 [Verbose] >
00:07:33 #20369 [Verbose] > inl velocity_fv dt m v0 fs t =
00:07:33 #20370 [Verbose] > stream.iterate (update_velocity dt m fs) v0
00:07:33 #20371 [Verbose] > |> stream.try_item (t / dt |> math.round |> abs)
00:07:33 #20372 [Verbose] > |> optionm'.default_value 0
00:07:33 #20373 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0602-0220-0e8b3a976cd7\main.spi
00:07:34 #20374 [Verbose] >
00:07:34 #20375 [Verbose] > ╭─[ 270.15ms - stdout ]────────────────────────────────────────────────────────╮
00:07:34 #20376 [Verbose] > │ () │
00:07:34 #20377 [Verbose] > │ │
00:07:34 #20378 [Verbose] > │ │
00:07:34 #20379 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:34 #20380 [Verbose] >
00:07:34 #20381 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:34 #20382 [Verbose] > inl f_air drag rho area v =
00:07:34 #20383 [Verbose] > -drag * rho * area * abs v * v / 2
00:07:34 #20384 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0629-2947-2c3402a90c3f\main.spi
00:07:34 #20385 [Verbose] >
00:07:34 #20386 [Verbose] > ╭─[ 353.70ms - stdout ]────────────────────────────────────────────────────────╮
00:07:34 #20387 [Verbose] > │ () │
00:07:34 #20388 [Verbose] > │ │
00:07:34 #20389 [Verbose] > │ │
00:07:34 #20390 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:34 #20391 [Verbose] >
00:07:34 #20392 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:34 #20393 [Verbose] > // // test
00:07:34 #20394 [Verbose] >
00:07:34 #20395 [Verbose] > inl x = am'.init_series 0 60 0.5
00:07:34 #20396 [Verbose] > inl y = x |> am.map (velocity_fv 1 70 0f64 [[ fun _ => 100; f_air 2 1.225 0.6
00:07:34 #20397 [Verbose] > ]])
00:07:34 #20398 [Verbose] > "bike velocity", "time (s)", "", ;[[ "velocity of bike (m/s)", x, y ]]
00:07:34 #20399 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0665-6501-623d7e271490\main.spi
00:07:35 #20400 [Verbose] >
00:07:35 #20401 [Verbose] > ╭─[ 627.33ms - return value ]──────────────────────────────────────────────────╮
00:07:35 #20402 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:35 #20403 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:35 #20404 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:35 #20405 [Verbose] > │ stroke="none"/> │
00:07:35 #20406 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:35 #20407 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:35 #20408 [Verbose] > │ fill="#FFFFFF"> │
00:07:35 #20409 [Verbose] > │ bike velocity │
00:07:35 #20410 [Verbose] > │ </text> │
00:07:35 #20411 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:07:35 #20412 [Verbose] > │ y2="75"/> │
00:07:35 #20413 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:35 #20414 [Verbose] > │ y2="75"/> │
00:07:35 #20415 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:07:35 #20416 [Verbose] > │ y2="75"/> │
00:07:35 #20417 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:07:35 #20418 [Verbose] > │ y2="75"/> │
00:07:35 #20419 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x... │
00:07:35 #20420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:35 #20421 [Verbose] >
00:07:35 #20422 [Verbose] > ╭─[ 646.89ms - stdout ]────────────────────────────────────────────────────────╮
00:07:35 #20423 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:35 #20424 [Verbose] > │ and UH0 = │
00:07:35 #20425 [Verbose] > │ | UH0_0 of float * (unit -> UH0) │
00:07:35 #20426 [Verbose] > │ | UH0_1 │
00:07:35 #20427 [Verbose] > │ and [<Struct>] US0 = │
00:07:35 #20428 [Verbose] > │ | US0_0 of f0_0 : float │
00:07:35 #20429 [Verbose] > │ | US0_1 │
00:07:35 #20430 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:35 #20431 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:35 #20432 [Verbose] > │ let v2 : bool = v1 < 121 │
00:07:35 #20433 [Verbose] > │ v2 │
00:07:35 #20434 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:35 #20435 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:35 #20436 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:35 #20437 [Verbose] > │ v3 │
00:07:35 #20438 [Verbose] > │ and closure129 () () : UH0 = │
00:07:35 #20439 [Verbose] > │ let v0 : (unit -> UH0) = closure129() │
00:07:35 #20440 [Verbose] > │ UH0_0(11.664236870396083, v0) │
00:07:35 #20441 [Verbose] > │ and closure128 () () : UH0 = │
00:07:35 #20442 [Verbose] > │ let v0 : (unit -> UH0) = closure129() │
00:07:35 #20443 [Verbose] > │ UH0_0(11.664236870396081, v0) │
00:07:35 #20444 [Verbose] > │ and closure127 () () : UH0 = │
00:07:35 #20445 [Verbose] > │ let v0 : (unit -> UH0) = closure128() │
00:07:35 #20446 [Verbose] > │ UH0_0(11.66423687039608, v0) │
00:07:35 #20447 [Verbose] > │ and closure126 () () : UH0 = │
00:07:35 #20448 [Verbose] > │ let v0 : (unit -> UH0) = closure127() │
00:07:35 #20449 [Verbose] > │ UH0_0(11.664236870396078, v0) │
00:07:35 #20450 [Verbose] > │ and closure125 () () : UH0 = │
00:07:35 #20451 [Verbose] > │ let v0 : (unit -> UH0) = closure126() │
00:07:35 #20452 [Verbose] > │ UH0_0(11.664236870396074, v0) │
00:07:35 #20453 [Verbose] > │ and closure124 () () : UH0 = │
00:07:35 #20454 [Verbose] > │ let v0 : (unit -> UH0) = closure125() │
00:07:35 #20455 [Verbose] > │ UH0_0(11.66423687039607, v0) │
00:07:35 #20456 [Verbose] > │ and closure123 () () : UH0 = │
00:07:35 #20457 [Verbose] > │ let v0 : (unit -> UH0) = closure124() │
00:07:35 #20458 [Verbose] > │ UH0_0(11.664236870396065, v0) │
00:07:35 #20459 [Verbose] > │ and closure122 () () : UH0 = │
00:07:35 #20460 [Verbose] > │ let v0 : (unit -> UH0) = closure123() │
00:07:35 #20461 [Verbose] > │ UH0_0(11.664236870396058, v0) │
00:07:35 #20462 [Verbose] > │ and closure121 () () : UH0 = │
00:07:35 #20463 [Verbose] > │ let v0 : (unit -> UH0) = closure122() │
00:07:35 #20464 [Verbose] > │ UH0_0(11.66423687039605, v0) │
00:07:35 #20465 [Verbose] > │ and closure120 () () : UH0 = │
00:07:35 #20466 [Verbose] > │ let v0 : (unit -> UH0) = closure121() │
00:07:35 #20467 [Verbose] > │ UH0_0(11.664236870396037, v0) │
00:07:35 #20468 [Verbose] > │ and closure119 () () : UH0 = │
00:07:35 #20469 [Verbose] > │ let v0 : (unit -> UH0) = closure120() │
00:07:35 #20470 [Verbose] > │ UH0_0(11.66423687039602, v0) │
00:07:35 #20471 [Verbose] > │ and closure118 () () : UH0 = │
00:07:35 #20472 [Verbose] > │ let v0 : (unit -> UH0) = closure119() │
00:07:35 #20473 [Verbose] > │ UH0_0(11.664236870396, v0) │
00:07:35 #20474 [Verbose] > │ and closure117 () () : UH0 = │
00:07:35 #20475 [Verbose] > │ let v0 : (unit -> UH0) = closure118() │
00:07:35 #20476 [Verbose] > │ UH0_0(11.664236870395971, v0) │
00:07:35 #20477 [Verbose] > │ and closure116 () () : UH0 = │
00:07:35 #20478 [Verbose] > │ let v0 : (unit -> UH0) = closure117() │
00:07:35 #20479 [Verbose] > │ UH0_0(11.664236870395934, v0) │
00:07:35 #20480 [Verbose] > │ and closure115 () () : UH0 = │
00:07:35 #20481 [Verbose] > │ let v0 : (unit -> UH0) = closure116() │
00:07:35 #20482 [Verbose] > │ UH0_0(11.664236870395884, v0) │
00:07:35 #20483 [Verbose] > │ and closure114 () () : UH0 = │
00:07:35 #20484 [Verbose] > │ let v0 : (unit -> UH0) = closure115() │
00:07:35 #20485 [Verbose] > │ UH0_0(11.664236870395818, v0) │
00:07:35 #20486 [Verbose] > │ and closure113 () () : UH0 = │
00:07:35 #20487 [Verbose] > │ let v0 : (unit -> UH0) = closure114() │
00:07:35 #20488 [Verbose] > │ UH0_0(11.664236870395731, v0) │
00:07:35 #20489 [Verbose] > │ and closure112 () () : UH0 = │
00:07:35 #20490 [Verbose] > │ let v0 : (unit -> UH0) = closure113() │
00:07:35 #20491 [Verbose] > │ UH0_0(11.664236870395616, v0) │
00:07:35 #20492 [Verbose] > │ and closure111 () () : UH0 = │
00:07:35 #20493 [Verbose] > │ let v0 : (unit -> UH0) = closure112() │
00:07:35 #20494 [Verbose] > │ UH0_0(11.664236870395463, v0) │
00:07:35 #20495 [Verbose] > │ and closure110 () () : UH0 = │
00:07:35 #20496 [Verbose] > │ let v0 : (unit -> UH0) = closure111() │
00:07:35 #20497 [Verbose] > │ UH0_0(11.66423687039526, v0) │
00:07:35 #20498 [Verbose] > │ and closure109 () () : UH0 = │
00:07:35 #20499 [Verbose] > │ let v0 : (unit -> UH0) = closure110() │
00:07:35 #20500 [Verbose] > │ UH0_0(11.664236870394992, v0) │
00:07:35 #20501 [Verbose] > │ and closure108 () () : UH0 = │
00:07:35 #20502 [Verbose] > │ let v0 : (unit -> UH0) = closure109() │
00:07:35 #20503 [Verbose] > │ UH0_0(11.664236870394637, v0) │
00:07:35 #20504 [Verbose] > │ and closure107 () () : UH0 = │
00:07:35 #20505 [Verbose] > │ let v0 : (unit -> UH0) = closure108() │
00:07:35 #20506 [Verbose] > │ UH0_0(11.664236870394168, v0) │
00:07:35 #20507 [Verbose] > │ and closure106 () () : UH0 = │
00:07:35 #20508 [Verbose] > │ let v0 : (unit -> UH0) = closure107() │
00:07:35 #20509 [Verbose] > │ UH0_0(11.664236870393546, v0) │
00:07:35 #20510 [Verbose] > │ and closure105 () () : UH0 = │
00:07:35 #20511 [Verbose] > │ let v0 : (unit -> UH0) = closure106() │
00:07:35 #20512 [Verbose] > │ UH0_0(11.664236870392722, v0) │
00:07:35 #20513 [Verbose] > │ and closure104 () () : UH0 = │
00:07:35 #20514 [Verbose] > │ let v0 : (unit -> UH0) = closure105() │
00:07:35 #20515 [Verbose] > │ UH0_0(11.664236870391631, v0) │
00:07:35 #20516 [Verbose] > │ and closure103 () () : UH0 = │
00:07:35 #20517 [Verbose] > │ let v0 : (unit -> UH0) = closure104() │
00:07:35 #20518 [Verbose] > │ UH0_0(11.664236870390187, v0) │
00:07:35 #20519 [Verbose] > │ and closure102 () () : UH0 = │
00:07:35 #20520 [Verbose] > │ let v0 : (unit -> UH0) = closure103() │
00:07:35 #20521 [Verbose] > │ UH0_0(11.664236870388274, v0) │
00:07:35 #20522 [Verbose] > │ and closure101 () () : UH0 = │
00:07:35 #20523 [Verbose] > │ let v0 : (unit -> UH0) = closure102() │
00:07:35 #20524 [Verbose] > │ UH0_0(11.66423687038574, v0) │
00:07:35 #20525 [Verbose] > │ and closure100 () () : UH0 = │
00:07:35 #20526 [Verbose] > │ let v0 : (unit -> UH0) = closure101() │
00:07:35 #20527 [Verbose] > │ UH0_0(11.664236870382384, v0) │
00:07:35 #20528 [Verbose] > │ and closure99 () () : UH0 = │
00:07:35 #20529 [Verbose] > │ let v0 : (unit -> UH0) = closure100() │
00:07:35 #20530 [Verbose] > │ UH0_0(11.664236870377938, v0) │
00:07:35 #20531 [Verbose] > │ and closure98 () () : UH0 = │
00:07:35 #20532 [Verbose] > │ let v0 : (unit -> UH0) = closure99() │
00:07:35 #20533 [Verbose] > │ UH0_0(11.66423687037205, v0) │
00:07:35 #20534 [Verbose] > │ and closure97 () () : UH0 = │
00:07:35 #20535 [Verbose] > │ let v0 : (unit -> UH0) = closure98() │
00:07:35 #20536 [Verbose] > │ UH0_0(11.664236870364254, v0) │
00:07:35 #20537 [Verbose] > │ and closure96 () () : UH0 = │
00:07:35 #20538 [Verbose] > │ let v0 : (unit -> UH0) = closure97() │
00:07:35 #20539 [Verbose] > │ UH0_0(11.664236870353927, v0) │
00:07:35 #20540 [Verbose] > │ and closure95 () () : UH0 = │
00:07:35 #20541 [Verbose] > │ let v0 : (unit -> UH0) = closure96() │
00:07:35 #20542 [Verbose] > │ UH0_0(11.664236870340249, v0) │
00:07:35 #20543 [Verbose] > │ and closure94 () () : UH0 = │
00:07:35 #20544 [Verbose] > │ let v0 : (unit -> UH0) = closure95() │
00:07:35 #20545 [Verbose] > │ UH0_0(11.664236870322135, v0) │
00:07:35 #20546 [Verbose] > │ and closure93 () () : UH0 = │
00:07:35 #20547 [Verbose] > │ let v0 : (unit -> UH0) = closure94() │
00:07:35 #20548 [Verbose] > │ UH0_0(11.664236870298145, v0) │
00:07:35 #20549 [Verbose] > │ and closure92 () () : UH0 = │
00:07:35 #20550 [Verbose] > │ let v0 : (unit -> UH0) = closure93() │
00:07:35 #20551 [Verbose] > │ UH0_0(11.664236870266372, v0) │
00:07:35 #20552 [Verbose] > │ and closure91 () () : UH0 = │
00:07:35 #20553 [Verbose] > │ let v0 : (unit -> UH0) = closure92() │
00:07:35 #20554 [Verbose] > │ UH0_0(11.664236870224292, v0) │
00:07:35 #20555 [Verbose] > │ and closure90 () () : UH0 = │
00:07:35 #20556 [Verbose] > │ let v0 : (unit -> UH0) = closure91() │
00:07:35 #20557 [Verbose] > │ UH0_0(11.66423687016856, v0) │
00:07:35 #20558 [Verbose] > │ and closure89 () () : UH0 = │
00:07:35 #20559 [Verbose] > │ let v0 : (unit -> UH0) = closure90() │
00:07:35 #20560 [Verbose] > │ UH0_0(11.664236870094747, v0) │
00:07:35 #20561 [Verbose] > │ and closure88 () () : UH0 = │
00:07:35 #20562 [Verbose] > │ let v0 : (unit -> UH0) = closure89() │
00:07:35 #20563 [Verbose] > │ UH0_0(11.664236869996989, v0) │
00:07:35 #20564 [Verbose] > │ and closure87 () () : UH0 = │
00:07:35 #20565 [Verbose] > │ let v0 : (unit -> UH0) = closure88() │
00:07:35 #20566 [Verbose] > │ UH0_0(11.664236869867516, v0) │
00:07:35 #20567 [Verbose] > │ and closure86 () () : UH0 = │
00:07:35 #20568 [Verbose] > │ let v0 : (unit -> UH0) = closure87() │
00:07:35 #20569 [Verbose] > │ UH0_0(11.66423686969604, v0) │
00:07:35 #20570 [Verbose] > │ and closure85 () () : UH0 = │
00:07:35 #20571 [Verbose] > │ let v0 : (unit -> UH0) = closure86() │
00:07:35 #20572 [Verbose] > │ UH0_0(11.664236869468937, v0) │
00:07:35 #20573 [Verbose] > │ and closure84 () () : UH0 = │
00:07:35 #20574 [Verbose] > │ let v0 : (unit -> UH0) = closure85() │
00:07:35 #20575 [Verbose] > │ UH0_0(11.664236869168157, v0) │
00:07:35 #20576 [Verbose] > │ and closure83 () () : UH0 = │
00:07:35 #20577 [Verbose] > │ let v0 : (unit -> UH0) = closure84() │
00:07:35 #20578 [Verbose] > │ UH0_0(11.6642368687698, v0) │
00:07:35 #20579 [Verbose] > │ and closure82 () () : UH0 = │
00:07:35 #20580 [Verbose] > │ let v0 : (unit -> UH0) = closure83() │
00:07:35 #20581 [Verbose] > │ UH0_0(11.664236868242211, v0) │
00:07:35 #20582 [Verbose] > │ and closure81 () () : UH0 = │
00:07:35 #20583 [Verbose] > │ let v0 : (unit -> UH0) = closure82() │
00:07:35 #20584 [Verbose] > │ UH0_0(11.664236867543465, v0) │
00:07:35 #20585 [Verbose] > │ and closure80 () () : UH0 = │
00:07:35 #20586 [Verbose] > │ let v0 : (unit -> UH0) = closure81() │
00:07:35 #20587 [Verbose] > │ UH0_0(11.664236866618037, v0) │
00:07:35 #20588 [Verbose] > │ and closure79 () () : UH0 = │
00:07:35 #20589 [Verbose] > │ let v0 : (unit -> UH0) = closure80() │
00:07:35 #20590 [Verbose] > │ UH0_0(11.664236865392386, v0) │
00:07:35 #20591 [Verbose] > │ and closure78 () () : UH0 = │
00:07:35 #20592 [Verbose] > │ let v0 : (unit -> UH0) = closure79() │
00:07:35 #20593 [Verbose] > │ UH0_0(11.664236863769117, v0) │
00:07:35 #20594 [Verbose] > │ and closure77 () () : UH0 = │
00:07:35 #20595 [Verbose] > │ let v0 : (unit -> UH0) = closure78() │
00:07:35 #20596 [Verbose] > │ UH0_0(11.664236861619237, v0) │
00:07:35 #20597 [Verbose] > │ and closure76 () () : UH0 = │
00:07:35 #20598 [Verbose] > │ let v0 : (unit -> UH0) = closure77() │
00:07:35 #20599 [Verbose] > │ UH0_0(11.664236858771906, v0) │
00:07:35 #20600 [Verbose] > │ and closure75 () () : UH0 = │
00:07:35 #20601 [Verbose] > │ let v0 : (unit -> UH0) = closure76() │
00:07:35 #20602 [Verbose] > │ UH0_0(11.66423685500086, v0) │
00:07:35 #20603 [Verbose] > │ and closure74 () () : UH0 = │
00:07:35 #20604 [Verbose] > │ let v0 : (unit -> UH0) = closure75() │
00:07:35 #20605 [Verbose] > │ UH0_0(11.664236850006436, v0) │
00:07:35 #20606 [Verbose] > │ and closure73 () () : UH0 = │
00:07:35 #20607 [Verbose] > │ let v0 : (unit -> UH0) = closure74() │
00:07:35 #20608 [Verbose] > │ UH0_0(11.664236843391752, v0) │
00:07:35 #20609 [Verbose] > │ and closure72 () () : UH0 = │
00:07:35 #20610 [Verbose] > │ let v0 : (unit -> UH0) = closure73() │
00:07:35 #20611 [Verbose] > │ UH0_0(11.664236834631172, v0) │
00:07:35 #20612 [Verbose] > │ and closure71 () () : UH0 = │
00:07:35 #20613 [Verbose] > │ let v0 : (unit -> UH0) = closure72() │
00:07:35 #20614 [Verbose] > │ UH0_0(11.66423682302854, v0) │
00:07:35 #20615 [Verbose] > │ and closure70 () () : UH0 = │
00:07:35 #20616 [Verbose] > │ let v0 : (unit -> UH0) = closure71() │
00:07:35 #20617 [Verbose] > │ UH0_0(11.664236807661855, v0) │
00:07:35 #20618 [Verbose] > │ and closure69 () () : UH0 = │
00:07:35 #20619 [Verbose] > │ let v0 : (unit -> UH0) = closure70() │
00:07:35 #20620 [Verbose] > │ UH0_0(11.664236787310005, v0) │
00:07:35 #20621 [Verbose] > │ and closure68 () () : UH0 = │
00:07:35 #20622 [Verbose] > │ let v0 : (unit -> UH0) = closure69() │
00:07:35 #20623 [Verbose] > │ UH0_0(11.664236760355733, v0) │
00:07:35 #20624 [Verbose] > │ and closure67 () () : UH0 = │
00:07:35 #20625 [Verbose] > │ let v0 : (unit -> UH0) = closure68() │
00:07:35 #20626 [Verbose] > │ UH0_0(11.664236724657123, v0) │
00:07:35 #20627 [Verbose] > │ and closure66 () () : UH0 = │
00:07:35 #20628 [Verbose] > │ let v0 : (unit -> UH0) = closure67() │
00:07:35 #20629 [Verbose] > │ UH0_0(11.66423667737739, v0) │
00:07:35 #20630 [Verbose] > │ and closure65 () () : UH0 = │
00:07:35 #20631 [Verbose] > │ let v0 : (unit -> UH0) = closure66() │
00:07:35 #20632 [Verbose] > │ UH0_0(11.664236614759462, v0) │
00:07:35 #20633 [Verbose] > │ and closure64 () () : UH0 = │
00:07:35 #20634 [Verbose] > │ let v0 : (unit -> UH0) = closure65() │
00:07:35 #20635 [Verbose] > │ UH0_0(11.664236531827415, v0) │
00:07:35 #20636 [Verbose] > │ and closure63 () () : UH0 = │
00:07:35 #20637 [Verbose] > │ let v0 : (unit -> UH0) = closure64() │
00:07:35 #20638 [Verbose] > │ UH0_0(11.664236421991067, v0) │
00:07:35 #20639 [Verbose] > │ and closure62 () () : UH0 = │
00:07:35 #20640 [Verbose] > │ let v0 : (unit -> UH0) = closure63() │
00:07:35 #20641 [Verbose] > │ UH0_0(11.664236276522294, v0) │
00:07:35 #20642 [Verbose] > │ and closure61 () () : UH0 = │
00:07:35 #20643 [Verbose] > │ let v0 : (unit -> UH0) = closure62() │
00:07:35 #20644 [Verbose] > │ UH0_0(11.664236083861448, v0) │
00:07:35 #20645 [Verbose] > │ and closure60 () () : UH0 = │
00:07:35 #20646 [Verbose] > │ let v0 : (unit -> UH0) = closure61() │
00:07:35 #20647 [Verbose] > │ UH0_0(11.664235828698772, v0) │
00:07:35 #20648 [Verbose] > │ and closure59 () () : UH0 = │
00:07:35 #20649 [Verbose] > │ let v0 : (unit -> UH0) = closure60() │
00:07:35 #20650 [Verbose] > │ UH0_0(11.664235490757811, v0) │
00:07:35 #20651 [Verbose] > │ and closure58 () () : UH0 = │
00:07:35 #20652 [Verbose] > │ let v0 : (unit -> UH0) = closure59() │
00:07:35 #20653 [Verbose] > │ UH0_0(11.664235043184158, v0) │
00:07:35 #20654 [Verbose] > │ and closure57 () () : UH0 = │
00:07:35 #20655 [Verbose] > │ let v0 : (unit -> UH0) = closure58() │
00:07:35 #20656 [Verbose] > │ UH0_0(11.66423445041147, v0) │
00:07:35 #20657 [Verbose] > │ and closure56 () () : UH0 = │
00:07:35 #20658 [Verbose] > │ let v0 : (unit -> UH0) = closure57() │
00:07:35 #20659 [Verbose] > │ UH0_0(11.664233665335203, v0) │
00:07:35 #20660 [Verbose] > │ and closure55 () () : UH0 = │
00:07:35 #20661 [Verbose] > │ let v0 : (unit -> UH0) = closure56() │
00:07:35 #20662 [Verbose] > │ UH0_0(11.664232625569467, v0) │
00:07:35 #20663 [Verbose] > │ and closure54 () () : UH0 = │
00:07:35 #20664 [Verbose] > │ let v0 : (unit -> UH0) = closure55() │
00:07:35 #20665 [Verbose] > │ UH0_0(11.664231248489562, v0) │
00:07:35 #20666 [Verbose] > │ and closure53 () () : UH0 = │
00:07:35 #20667 [Verbose] > │ let v0 : (unit -> UH0) = closure54() │
00:07:35 #20668 [Verbose] > │ UH0_0(11.664229424666262, v0) │
00:07:35 #20669 [Verbose] > │ and closure52 () () : UH0 = │
00:07:35 #20670 [Verbose] > │ let v0 : (unit -> UH0) = closure53() │
00:07:35 #20671 [Verbose] > │ UH0_0(11.66422700917009, v0) │
00:07:35 #20672 [Verbose] > │ and closure51 () () : UH0 = │
00:07:35 #20673 [Verbose] > │ let v0 : (unit -> UH0) = closure52() │
00:07:35 #20674 [Verbose] > │ UH0_0(11.664223810054642, v0) │
00:07:35 #20675 [Verbose] > │ and closure50 () () : UH0 = │
00:07:35 #20676 [Verbose] > │ let v0 : (unit -> UH0) = closure51() │
00:07:35 #20677 [Verbose] > │ UH0_0(11.664219573103773, v0) │
00:07:35 #20678 [Verbose] > │ and closure49 () () : UH0 = │
00:07:35 #20679 [Verbose] > │ let v0 : (unit -> UH0) = closure50() │
00:07:35 #20680 [Verbose] > │ UH0_0(11.6642139616307, v0) │
00:07:35 #20681 [Verbose] > │ and closure48 () () : UH0 = │
00:07:35 #20682 [Verbose] > │ let v0 : (unit -> UH0) = closure49() │
00:07:35 #20683 [Verbose] > │ UH0_0(11.664206529723813, v0) │
00:07:35 #20684 [Verbose] > │ and closure47 () () : UH0 = │
00:07:35 #20685 [Verbose] > │ let v0 : (unit -> UH0) = closure48() │
00:07:35 #20686 [Verbose] > │ UH0_0(11.664196686813408, v0) │
00:07:35 #20687 [Verbose] > │ and closure46 () () : UH0 = │
00:07:35 #20688 [Verbose] > │ let v0 : (unit -> UH0) = closure47() │
00:07:35 #20689 [Verbose] > │ UH0_0(11.664183650743945, v0) │
00:07:35 #20690 [Verbose] > │ and closure45 () () : UH0 = │
00:07:35 #20691 [Verbose] > │ let v0 : (unit -> UH0) = closure46() │
00:07:35 #20692 [Verbose] > │ UH0_0(11.664166385623318, v0) │
00:07:35 #20693 [Verbose] > │ and closure44 () () : UH0 = │
00:07:35 #20694 [Verbose] > │ let v0 : (unit -> UH0) = closure45() │
00:07:35 #20695 [Verbose] > │ UH0_0(11.664143519511356, v0) │
00:07:35 #20696 [Verbose] > │ and closure43 () () : UH0 = │
00:07:35 #20697 [Verbose] > │ let v0 : (unit -> UH0) = closure44() │
00:07:35 #20698 [Verbose] > │ UH0_0(11.664113235408447, v0) │
00:07:35 #20699 [Verbose] > │ and closure42 () () : UH0 = │
00:07:35 #20700 [Verbose] > │ let v0 : (unit -> UH0) = closure43() │
00:07:35 #20701 [Verbose] > │ UH0_0(11.66407312688485, v0) │
00:07:35 #20702 [Verbose] > │ and closure41 () () : UH0 = │
00:07:35 #20703 [Verbose] > │ let v0 : (unit -> UH0) = closure42() │
00:07:35 #20704 [Verbose] > │ UH0_0(11.664020006883758, v0) │
00:07:35 #20705 [Verbose] > │ and closure40 () () : UH0 = │
00:07:35 #20706 [Verbose] > │ let v0 : (unit -> UH0) = closure41() │
00:07:35 #20707 [Verbose] > │ UH0_0(11.663949654514292, v0) │
00:07:35 #20708 [Verbose] > │ and closure39 () () : UH0 = │
00:07:35 #20709 [Verbose] > │ let v0 : (unit -> UH0) = closure40() │
00:07:35 #20710 [Verbose] > │ UH0_0(11.663856479730171, v0) │
00:07:35 #20711 [Verbose] > │ and closure38 () () : UH0 = │
00:07:35 #20712 [Verbose] > │ let v0 : (unit -> UH0) = closure39() │
00:07:35 #20713 [Verbose] > │ UH0_0(11.663733079277343, v0) │
00:07:35 #20714 [Verbose] > │ and closure37 () () : UH0 = │
00:07:35 #20715 [Verbose] > │ let v0 : (unit -> UH0) = closure38() │
00:07:35 #20716 [Verbose] > │ UH0_0(11.663569648675777, v0) │
00:07:35 #20717 [Verbose] > │ and closure36 () () : UH0 = │
00:07:35 #20718 [Verbose] > │ let v0 : (unit -> UH0) = closure37() │
00:07:35 #20719 [Verbose] > │ UH0_0(11.663353203599439, v0) │
00:07:35 #20720 [Verbose] > │ and closure35 () () : UH0 = │
00:07:35 #20721 [Verbose] > │ let v0 : (unit -> UH0) = closure36() │
00:07:35 #20722 [Verbose] > │ UH0_0(11.663066548940721, v0) │
00:07:35 #20723 [Verbose] > │ and closure34 () () : UH0 = │
00:07:35 #20724 [Verbose] > │ let v0 : (unit -> UH0) = closure35() │
00:07:35 #20725 [Verbose] > │ UH0_0(11.662686913915445, v0) │
00:07:35 #20726 [Verbose] > │ and closure33 () () : UH0 = │
00:07:35 #20727 [Verbose] > │ let v0 : (unit -> UH0) = closure34() │
00:07:35 #20728 [Verbose] > │ UH0_0(11.662184145236864, v0) │
00:07:35 #20729 [Verbose] > │ and closure32 () () : UH0 = │
00:07:35 #20730 [Verbose] > │ let v0 : (unit -> UH0) = closure33() │
00:07:35 #20731 [Verbose] > │ UH0_0(11.661518315638029, v0) │
00:07:35 #20732 [Verbose] > │ and closure31 () () : UH0 = │
00:07:35 #20733 [Verbose] > │ let v0 : (unit -> UH0) = closure32() │
00:07:35 #20734 [Verbose] > │ UH0_0(11.66063655920926, v0) │
00:07:35 #20735 [Verbose] > │ and closure30 () () : UH0 = │
00:07:35 #20736 [Verbose] > │ let v0 : (unit -> UH0) = closure31() │
00:07:35 #20737 [Verbose] > │ UH0_0(11.659468884709733, v0) │
00:07:35 #20738 [Verbose] > │ and closure29 () () : UH0 = │
00:07:35 #20739 [Verbose] > │ let v0 : (unit -> UH0) = closure30() │
00:07:35 #20740 [Verbose] > │ UH0_0(11.657922638782631, v0) │
00:07:35 #20741 [Verbose] > │ and closure28 () () : UH0 = │
00:07:35 #20742 [Verbose] > │ let v0 : (unit -> UH0) = closure29() │
00:07:35 #20743 [Verbose] > │ UH0_0(11.655875187195818, v0) │
00:07:35 #20744 [Verbose] > │ and closure27 () () : UH0 = │
00:07:35 #20745 [Verbose] > │ let v0 : (unit -> UH0) = closure28() │
00:07:35 #20746 [Verbose] > │ UH0_0(11.653164246713697, v0) │
00:07:35 #20747 [Verbose] > │ and closure26 () () : UH0 = │
00:07:35 #20748 [Verbose] > │ let v0 : (unit -> UH0) = closure27() │
00:07:35 #20749 [Verbose] > │ UH0_0(11.64957512416459, v0) │
00:07:35 #20750 [Verbose] > │ and closure25 () () : UH0 = │
00:07:35 #20751 [Verbose] > │ let v0 : (unit -> UH0) = closure26() │
00:07:35 #20752 [Verbose] > │ UH0_0(11.644823892116417, v0) │
00:07:35 #20753 [Verbose] > │ and closure24 () () : UH0 = │
00:07:35 #20754 [Verbose] > │ let v0 : (unit -> UH0) = closure25() │
00:07:35 #20755 [Verbose] > │ UH0_0(11.63853524018339, v0) │
00:07:35 #20756 [Verbose] > │ and closure23 () () : UH0 = │
00:07:35 #20757 [Verbose] > │ let v0 : (unit -> UH0) = closure24() │
00:07:35 #20758 [Verbose] > │ UH0_0(11.630213374558416, v0) │
00:07:35 #20759 [Verbose] > │ and closure22 () () : UH0 = │
00:07:35 #20760 [Verbose] > │ let v0 : (unit -> UH0) = closure23() │
00:07:35 #20761 [Verbose] > │ UH0_0(11.619203884549703, v0) │
00:07:35 #20762 [Verbose] > │ and closure21 () () : UH0 = │
00:07:35 #20763 [Verbose] > │ let v0 : (unit -> UH0) = closure22() │
00:07:35 #20764 [Verbose] > │ UH0_0(11.604643948207235, v0) │
00:07:35 #20765 [Verbose] > │ and closure20 () () : UH0 = │
00:07:35 #20766 [Verbose] > │ let v0 : (unit -> UH0) = closure21() │
00:07:35 #20767 [Verbose] > │ UH0_0(11.585397618384544, v0) │
00:07:35 #20768 [Verbose] > │ and closure19 () () : UH0 = │
00:07:35 #20769 [Verbose] > │ let v0 : (unit -> UH0) = closure20() │
00:07:35 #20770 [Verbose] > │ UH0_0(11.559972254267073, v0) │
00:07:35 #20771 [Verbose] > │ and closure18 () () : UH0 = │
00:07:35 #20772 [Verbose] > │ let v0 : (unit -> UH0) = closure19() │
00:07:35 #20773 [Verbose] > │ UH0_0(11.526411536153837, v0) │
00:07:35 #20774 [Verbose] > │ and closure17 () () : UH0 = │
00:07:35 #20775 [Verbose] > │ let v0 : (unit -> UH0) = closure18() │
00:07:35 #20776 [Verbose] > │ UH0_0(11.48216011776808, v0) │
00:07:35 #20777 [Verbose] > │ and closure16 () () : UH0 = │
00:07:35 #20778 [Verbose] > │ let v0 : (unit -> UH0) = closure17() │
00:07:35 #20779 [Verbose] > │ UH0_0(11.42389519391233, v0) │
00:07:35 #20780 [Verbose] > │ and closure15 () () : UH0 = │
00:07:35 #20781 [Verbose] > │ let v0 : (unit -> UH0) = closure16() │
00:07:35 #20782 [Verbose] > │ UH0_0(11.347321723441393, v0) │
00:07:35 #20783 [Verbose] > │ and closure14 () () : UH0 = │
00:07:35 #20784 [Verbose] > │ let v0 : (unit -> UH0) = closure15() │
00:07:35 #20785 [Verbose] > │ UH0_0(11.246931775734161, v0) │
00:07:35 #20786 [Verbose] > │ and closure13 () () : UH0 = │
00:07:35 #20787 [Verbose] > │ let v0 : (unit -> UH0) = closure14() │
00:07:35 #20788 [Verbose] > │ UH0_0(11.115736011467376, v0) │
00:07:35 #20789 [Verbose] > │ and closure12 () () : UH0 = │
00:07:35 #20790 [Verbose] > │ let v0 : (unit -> UH0) = closure13() │
00:07:35 #20791 [Verbose] > │ UH0_0(10.94498876251829, v0) │
00:07:35 #20792 [Verbose] > │ and closure11 () () : UH0 = │
00:07:35 #20793 [Verbose] > │ let v0 : (unit -> UH0) = closure12() │
00:07:35 #20794 [Verbose] > │ UH0_0(10.72394989903564, v0) │
00:07:35 #20795 [Verbose] > │ and closure10 () () : UH0 = │
00:07:35 #20796 [Verbose] > │ let v0 : (unit -> UH0) = closure11() │
00:07:35 #20797 [Verbose] > │ UH0_0(10.439758275369812, v0) │
00:07:35 #20798 [Verbose] > │ and closure9 () () : UH0 = │
00:07:35 #20799 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:07:35 #20800 [Verbose] > │ UH0_0(10.077531599826058, v0) │
00:07:35 #20801 [Verbose] > │ and closure8 () () : UH0 = │
00:07:35 #20802 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:07:35 #20803 [Verbose] > │ UH0_0(9.62084761372258, v0) │
00:07:35 #20804 [Verbose] > │ and closure7 () () : UH0 = │
00:07:35 #20805 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:07:35 #20806 [Verbose] > │ UH0_0(9.052781056066443, v0) │
00:07:35 #20807 [Verbose] > │ and closure6 () () : UH0 = │
00:07:35 #20808 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:07:35 #20809 [Verbose] > │ UH0_0(8.357635347880503, v0) │
00:07:35 #20810 [Verbose] > │ and closure5 () () : UH0 = │
00:07:35 #20811 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:07:35 #20812 [Verbose] > │ UH0_0(7.523376447621674, v0) │
00:07:35 #20813 [Verbose] > │ and closure4 () () : UH0 = │
00:07:35 #20814 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:07:35 #20815 [Verbose] > │ UH0_0(6.544529054818572, v0) │
00:07:35 #20816 [Verbose] > │ and closure3 () () : UH0 = │
00:07:35 #20817 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:07:35 #20818 [Verbose] > │ UH0_0(5.424976512996006, v0) │
00:07:35 #20819 [Verbose] > │ and closure2 () () : UH0 = │
00:07:35 #20820 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:07:35 #20821 [Verbose] > │ UH0_0(4.179852321428571, v0) │
00:07:35 #20822 [Verbose] > │ and closure1 () () : UH0 = │
00:07:35 #20823 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:07:35 #20824 [Verbose] > │ UH0_0(2.835714285714286, v0) │
00:07:35 #20825 [Verbose] > │ and closure0 () () : UH0 = │
00:07:35 #20826 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:07:35 #20827 [Verbose] > │ UH0_0(1.4285714285714286, v0) │
00:07:35 #20828 [Verbose] > │ and method3 (v0 : float, v1 : UH0) : US0 = │
00:07:35 #20829 [Verbose] > │ match v1 with │
00:07:35 #20830 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:07:35 #20831 [Verbose] > │ let v4 : bool = v0 <= 0.0 │
00:07:35 #20832 [Verbose] > │ if v4 then │
00:07:35 #20833 [Verbose] > │ US0_0(v2) │
00:07:35 #20834 [Verbose] > │ else │
00:07:35 #20835 [Verbose] > │ let v6 : float = v0 - 1.0 │
00:07:35 #20836 [Verbose] > │ let v7 : UH0 = v3 () │
00:07:35 #20837 [Verbose] > │ method3(v6, v7) │
00:07:35 #20838 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:35 #20839 [Verbose] > │ US0_1 │
00:07:35 #20840 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:35 #20841 [Verbose] > │ []) * (float [])) [])) = │
00:07:35 #20842 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (121) │
00:07:35 #20843 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:35 #20844 [Verbose] > │ while method1(v1) do │
00:07:35 #20845 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:35 #20846 [Verbose] > │ let v4 : float = float v3 │
00:07:35 #20847 [Verbose] > │ let v5 : float = 0.5 * v4 │
00:07:35 #20848 [Verbose] > │ v0.[int v3] <- v5 │
00:07:35 #20849 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:35 #20850 [Verbose] > │ v1.l0 <- v6 │
00:07:35 #20851 [Verbose] > │ () │
00:07:35 #20852 [Verbose] > │ let v7 : int32 = v0.Length │
00:07:35 #20853 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:07:35 #20854 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:07:35 #20855 [Verbose] > │ while method2(v7, v9) do │
00:07:35 #20856 [Verbose] > │ let v11 : int32 = v9.l0 │
00:07:35 #20857 [Verbose] > │ let v12 : float = v0.[int v11] │
00:07:35 #20858 [Verbose] > │ let v13 : float = round v12 │
00:07:35 #20859 [Verbose] > │ let v14 : float = -v13 │
00:07:35 #20860 [Verbose] > │ let v15 : bool = v13 >= v14 │
00:07:35 #20861 [Verbose] > │ let v16 : float = │
00:07:35 #20862 [Verbose] > │ if v15 then │
00:07:35 #20863 [Verbose] > │ v13 │
00:07:35 #20864 [Verbose] > │ else │
00:07:35 #20865 [Verbose] > │ v14 │
00:07:35 #20866 [Verbose] > │ let v17 : float = 0.0 │
00:07:35 #20867 [Verbose] > │ let v18 : (unit -> UH0) = closure0() │
00:07:35 #20868 [Verbose] > │ let v19 : UH0 = UH0_0(v17, v18) │
00:07:35 #20869 [Verbose] > │ let v20 : US0 = method3(v16, v19) │
00:07:35 #20870 [Verbose] > │ let v23 : float = │
00:07:35 #20871 [Verbose] > │ match v20 with │
00:07:35 #20872 [Verbose] > │ | US0_1 -> (* None *) │
00:07:35 #20873 [Verbose] > │ 0.0 │
00:07:35 #20874 [Verbose] > │ | US0_0(v21) -> (* Some *) │
00:07:35 #20875 [Verbose] > │ v21 │
00:07:35 #20876 [Verbose] > │ v8.[int v11] <- v23 │
00:07:35 #20877 [Verbose] > │ let v24 : int32 = v11 + 1 │
00:07:35 #20878 [Verbose] > │ v9.l0 <- v24 │
00:07:35 #20879 [Verbose] > │ () │
00:07:35 #20880 [Verbose] > │ let v25 : string = "velocity of bike (m/s)" │
00:07:35 #20881 [Verbose] > │ let v26 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:35 #20882 [Verbose] > │ (v25, v0, v8)|] │
00:07:35 #20883 [Verbose] > │ let v27 : string = "bike velocity" │
00:07:35 #20884 [Verbose] > │ let v28 : string = "time (s)" │
00:07:35 #20885 [Verbose] > │ let v29 : string = "" │
00:07:35 #20886 [Verbose] > │ struct (v27, v28, v29, v26) │
00:07:35 #20887 [Verbose] > │ method0() │
00:07:35 #20888 [Verbose] > │ │
00:07:35 #20889 [Verbose] > │ │
00:07:35 #20890 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:35 #20891 [Verbose] >
00:07:35 #20892 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:35 #20893 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:35 #20894 [Verbose] > │ ## velocity_ftv │
00:07:35 #20895 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:35 #20896 [Verbose] >
00:07:35 #20897 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:35 #20898 [Verbose] > inl newton_second_tv m fs (t, v0) =
00:07:35 #20899 [Verbose] > inl f_net = fs |> listm.map (fun f => f (t, v0)) |> listm'.sum
00:07:35 #20900 [Verbose] > inl acc = f_net / m
00:07:35 #20901 [Verbose] > 1, acc
00:07:35 #20902 [Verbose] >
00:07:35 #20903 [Verbose] > inl update_tv dt m fs (t, v0) =
00:07:35 #20904 [Verbose] > inl dtdt, dvdt = newton_second_tv m fs (t, v0)
00:07:35 #20905 [Verbose] > t + dtdt * dt, v0 + dvdt * dt
00:07:35 #20906 [Verbose] >
00:07:35 #20907 [Verbose] > inl velocity_ftv dt m tv0 fs t =
00:07:35 #20908 [Verbose] > stream.iterate (join update_tv dt m fs) tv0
00:07:35 #20909 [Verbose] > |> stream.try_item (t / dt |> math.round |> abs)
00:07:35 #20910 [Verbose] > |> optionm.map snd
00:07:35 #20911 [Verbose] > |> optionm'.default_value 0
00:07:35 #20912 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0757-5767-5a62d2286122\main.spi
00:07:35 #20913 [Verbose] >
00:07:35 #20914 [Verbose] > ╭─[ 232.84ms - stdout ]────────────────────────────────────────────────────────╮
00:07:35 #20915 [Verbose] > │ () │
00:07:35 #20916 [Verbose] > │ │
00:07:35 #20917 [Verbose] > │ │
00:07:35 #20918 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:35 #20919 [Verbose] >
00:07:35 #20920 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:35 #20921 [Verbose] > // // test
00:07:35 #20922 [Verbose] >
00:07:35 #20923 [Verbose] > inl x = am'.init_series 0 100 0.1
00:07:35 #20924 [Verbose] > inl y =
00:07:35 #20925 [Verbose] > x
00:07:35 #20926 [Verbose] > |> am.map (
00:07:35 #20927 [Verbose] > velocity_ftv 0.1 20 (dyn (0, 0)) [[ fun (t, _) => pedal_coast t; fun (_,
00:07:35 #20928 [Verbose] > v) => f_air 2 1.225 0.5 v ]]
00:07:35 #20929 [Verbose] > )
00:07:35 #20930 [Verbose] > "pedaling and coasting with air", "time (s)", "", ;[[ "velocity of bike (m/s)",
00:07:35 #20931 [Verbose] > x, y ]]
00:07:35 #20932 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0780-8099-874e0ae9fe3a\main.spi
00:07:36 #20933 [Verbose] >
00:07:36 #20934 [Verbose] > ╭─[ 559.24ms - return value ]──────────────────────────────────────────────────╮
00:07:36 #20935 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:36 #20936 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:36 #20937 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:36 #20938 [Verbose] > │ stroke="none"/> │
00:07:36 #20939 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:36 #20940 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:36 #20941 [Verbose] > │ fill="#FFFFFF"> │
00:07:36 #20942 [Verbose] > │ pedaling and coasting with air │
00:07:36 #20943 [Verbose] > │ </text> │
00:07:36 #20944 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:07:36 #20945 [Verbose] > │ y2="75"/> │
00:07:36 #20946 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:36 #20947 [Verbose] > │ y2="75"/> │
00:07:36 #20948 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:07:36 #20949 [Verbose] > │ y2="75"/> │
00:07:36 #20950 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:07:36 #20951 [Verbose] > │ y2="75"/> │
00:07:36 #20952 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x... │
00:07:36 #20953 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:36 #20954 [Verbose] >
00:07:36 #20955 [Verbose] > ╭─[ 574.95ms - stdout ]────────────────────────────────────────────────────────╮
00:07:36 #20956 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:36 #20957 [Verbose] > │ and UH0 = │
00:07:36 #20958 [Verbose] > │ | UH0_0 of float * float * (unit -> UH0) │
00:07:36 #20959 [Verbose] > │ | UH0_1 │
00:07:36 #20960 [Verbose] > │ and [<Struct>] US0 = │
00:07:36 #20961 [Verbose] > │ | US0_0 of f0_0 : float * f0_1 : float │
00:07:36 #20962 [Verbose] > │ | US0_1 │
00:07:36 #20963 [Verbose] > │ and [<Struct>] US1 = │
00:07:36 #20964 [Verbose] > │ | US1_0 of f0_0 : float │
00:07:36 #20965 [Verbose] > │ | US1_1 │
00:07:36 #20966 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:36 #20967 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:36 #20968 [Verbose] > │ let v2 : bool = v1 < 1001 │
00:07:36 #20969 [Verbose] > │ v2 │
00:07:36 #20970 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:36 #20971 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:36 #20972 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:36 #20973 [Verbose] > │ v3 │
00:07:36 #20974 [Verbose] > │ and closure0 () struct (v0 : float, v1 : float) : struct (float * float) = │
00:07:36 #20975 [Verbose] > │ let v2 : float = -v1 │
00:07:36 #20976 [Verbose] > │ let v3 : bool = v1 >= v2 │
00:07:36 #20977 [Verbose] > │ let v4 : float = │
00:07:36 #20978 [Verbose] > │ if v3 then │
00:07:36 #20979 [Verbose] > │ v1 │
00:07:36 #20980 [Verbose] > │ else │
00:07:36 #20981 [Verbose] > │ v2 │
00:07:36 #20982 [Verbose] > │ let v5 : float = -1.225 * v4 │
00:07:36 #20983 [Verbose] > │ let v6 : float = v5 * v1 │
00:07:36 #20984 [Verbose] > │ let v7 : float = v6 / 2.0 │
00:07:36 #20985 [Verbose] > │ let v8 : float = v0 / 20.0 │
00:07:36 #20986 [Verbose] > │ let v9 : int32 = int32 v8 │
00:07:36 #20987 [Verbose] > │ let v10 : float = float v9 │
00:07:36 #20988 [Verbose] > │ let v11 : float = v10 * 20.0 │
00:07:36 #20989 [Verbose] > │ let v12 : float = v0 - v11 │
00:07:36 #20990 [Verbose] > │ let v13 : bool = v12 > 0.0 │
00:07:36 #20991 [Verbose] > │ let v15 : bool = │
00:07:36 #20992 [Verbose] > │ if v13 then │
00:07:36 #20993 [Verbose] > │ let v14 : bool = v12 < 10.0 │
00:07:36 #20994 [Verbose] > │ v14 │
00:07:36 #20995 [Verbose] > │ else │
00:07:36 #20996 [Verbose] > │ false │
00:07:36 #20997 [Verbose] > │ let v16 : float = │
00:07:36 #20998 [Verbose] > │ if v15 then │
00:07:36 #20999 [Verbose] > │ 10.0 │
00:07:36 #21000 [Verbose] > │ else │
00:07:36 #21001 [Verbose] > │ 0.0 │
00:07:36 #21002 [Verbose] > │ let v17 : float = v16 + v7 │
00:07:36 #21003 [Verbose] > │ let v18 : float = v17 / 20.0 │
00:07:36 #21004 [Verbose] > │ let v19 : float = v0 + 0.1 │
00:07:36 #21005 [Verbose] > │ let v20 : float = v18 * 0.1 │
00:07:36 #21006 [Verbose] > │ let v21 : float = v1 + v20 │
00:07:36 #21007 [Verbose] > │ struct (v19, v21) │
00:07:36 #21008 [Verbose] > │ and method3 () : (struct (float * float) -> struct (float * float)) = │
00:07:36 #21009 [Verbose] > │ closure0() │
00:07:36 #21010 [Verbose] > │ and closure1 (v0 : (struct (float * float) -> struct (float * float)), v1 : │
00:07:36 #21011 [Verbose] > │ float, v2 : float, v3 : float, v4 : float) () : UH0 = │
00:07:36 #21012 [Verbose] > │ let struct (v5 : float, v6 : float) = v0 struct (v3, v4) │
00:07:36 #21013 [Verbose] > │ let v7 : (unit -> UH0) = closure1(v0, v1, v2, v5, v6) │
00:07:36 #21014 [Verbose] > │ UH0_0(v3, v4, v7) │
00:07:36 #21015 [Verbose] > │ and method4 (v0 : float, v1 : UH0) : US0 = │
00:07:36 #21016 [Verbose] > │ match v1 with │
00:07:36 #21017 [Verbose] > │ | UH0_0(v2, v3, v4) -> (* StreamCons *) │
00:07:36 #21018 [Verbose] > │ let v5 : bool = v0 <= 0.0 │
00:07:36 #21019 [Verbose] > │ if v5 then │
00:07:36 #21020 [Verbose] > │ US0_0(v2, v3) │
00:07:36 #21021 [Verbose] > │ else │
00:07:36 #21022 [Verbose] > │ let v7 : float = v0 - 1.0 │
00:07:36 #21023 [Verbose] > │ let v8 : UH0 = v4 () │
00:07:36 #21024 [Verbose] > │ method4(v7, v8) │
00:07:36 #21025 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:36 #21026 [Verbose] > │ US0_1 │
00:07:36 #21027 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:36 #21028 [Verbose] > │ []) * (float [])) [])) = │
00:07:36 #21029 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (1001) │
00:07:36 #21030 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:36 #21031 [Verbose] > │ while method1(v1) do │
00:07:36 #21032 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:36 #21033 [Verbose] > │ let v4 : float = float v3 │
00:07:36 #21034 [Verbose] > │ let v5 : float = 0.1 * v4 │
00:07:36 #21035 [Verbose] > │ v0.[int v3] <- v5 │
00:07:36 #21036 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:36 #21037 [Verbose] > │ v1.l0 <- v6 │
00:07:36 #21038 [Verbose] > │ () │
00:07:36 #21039 [Verbose] > │ let v7 : float = 0.0 │
00:07:36 #21040 [Verbose] > │ let v8 : float = 0.0 │
00:07:36 #21041 [Verbose] > │ let v9 : int32 = v0.Length │
00:07:36 #21042 [Verbose] > │ let v10 : (float []) = Array.zeroCreate<float> (v9) │
00:07:36 #21043 [Verbose] > │ let v11 : Mut0 = {l0 = 0} : Mut0 │
00:07:36 #21044 [Verbose] > │ while method2(v9, v11) do │
00:07:36 #21045 [Verbose] > │ let v13 : int32 = v11.l0 │
00:07:36 #21046 [Verbose] > │ let v14 : float = v0.[int v13] │
00:07:36 #21047 [Verbose] > │ let v15 : (struct (float * float) -> struct (float * float)) = │
00:07:36 #21048 [Verbose] > │ method3() │
00:07:36 #21049 [Verbose] > │ let struct (v16 : float, v17 : float) = v15 struct (v7, v8) │
00:07:36 #21050 [Verbose] > │ let v18 : float = v14 / 0.1 │
00:07:36 #21051 [Verbose] > │ let v19 : float = round v18 │
00:07:36 #21052 [Verbose] > │ let v20 : float = -v19 │
00:07:36 #21053 [Verbose] > │ let v21 : bool = v19 >= v20 │
00:07:36 #21054 [Verbose] > │ let v22 : float = │
00:07:36 #21055 [Verbose] > │ if v21 then │
00:07:36 #21056 [Verbose] > │ v19 │
00:07:36 #21057 [Verbose] > │ else │
00:07:36 #21058 [Verbose] > │ v20 │
00:07:36 #21059 [Verbose] > │ let v23 : (unit -> UH0) = closure1(v15, v7, v8, v16, v17) │
00:07:36 #21060 [Verbose] > │ let v24 : UH0 = UH0_0(v7, v8, v23) │
00:07:36 #21061 [Verbose] > │ let v25 : US0 = method4(v22, v24) │
00:07:36 #21062 [Verbose] > │ let v31 : US1 = │
00:07:36 #21063 [Verbose] > │ match v25 with │
00:07:36 #21064 [Verbose] > │ | US0_1 -> (* None *) │
00:07:36 #21065 [Verbose] > │ US1_1 │
00:07:36 #21066 [Verbose] > │ | US0_0(v26, v27) -> (* Some *) │
00:07:36 #21067 [Verbose] > │ US1_0(v27) │
00:07:36 #21068 [Verbose] > │ let v34 : float = │
00:07:36 #21069 [Verbose] > │ match v31 with │
00:07:36 #21070 [Verbose] > │ | US1_1 -> (* None *) │
00:07:36 #21071 [Verbose] > │ 0.0 │
00:07:36 #21072 [Verbose] > │ | US1_0(v32) -> (* Some *) │
00:07:36 #21073 [Verbose] > │ v32 │
00:07:36 #21074 [Verbose] > │ v10.[int v13] <- v34 │
00:07:36 #21075 [Verbose] > │ let v35 : int32 = v13 + 1 │
00:07:36 #21076 [Verbose] > │ v11.l0 <- v35 │
00:07:36 #21077 [Verbose] > │ () │
00:07:36 #21078 [Verbose] > │ let v36 : string = "velocity of bike (m/s)" │
00:07:36 #21079 [Verbose] > │ let v37 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:36 #21080 [Verbose] > │ (v36, v0, v10)|] │
00:07:36 #21081 [Verbose] > │ let v38 : string = "pedaling and coasting with air" │
00:07:36 #21082 [Verbose] > │ let v39 : string = "time (s)" │
00:07:36 #21083 [Verbose] > │ let v40 : string = "" │
00:07:36 #21084 [Verbose] > │ struct (v38, v39, v40, v37) │
00:07:36 #21085 [Verbose] > │ method0() │
00:07:36 #21086 [Verbose] > │ │
00:07:36 #21087 [Verbose] > │ │
00:07:36 #21088 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:36 #21089 [Verbose] >
00:07:36 #21090 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:36 #21091 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:36 #21092 [Verbose] > │ ## velocity_ftxv │
00:07:36 #21093 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:36 #21094 [Verbose] >
00:07:36 #21095 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:36 #21096 [Verbose] > nominal state_1d = time * position * velocity
00:07:36 #21097 [Verbose] > nominal rrr = f64 * f64 * f64
00:07:36 #21098 [Verbose] >
00:07:36 #21099 [Verbose] > inl newton_second_1d m fs (state_1d (t, x0, v0)) =
00:07:36 #21100 [Verbose] > inl f_net = fs |> listm.map (fun f => f (state_1d (t, x0, v0))) |>
00:07:36 #21101 [Verbose] > listm'.sum
00:07:36 #21102 [Verbose] > inl acc = f_net / m
00:07:36 #21103 [Verbose] > rrr (1f64, v0, acc)
00:07:36 #21104 [Verbose] >
00:07:36 #21105 [Verbose] > inl euler_1d dt deriv (state_1d (t0, x0, v0) as t) =
00:07:36 #21106 [Verbose] > inl (rrr (_, _, dvdt)) = deriv t
00:07:36 #21107 [Verbose] > inl t1 = t0 + dt
00:07:36 #21108 [Verbose] > inl x1 = x0 + v0 * dt
00:07:36 #21109 [Verbose] > inl v1 = v0 + dvdt * dt
00:07:36 #21110 [Verbose] > state_1d (t1, x1, v1)
00:07:36 #21111 [Verbose] >
00:07:36 #21112 [Verbose] > inl update_txv dt m fs =
00:07:36 #21113 [Verbose] > newton_second_1d m fs |> euler_1d dt
00:07:36 #21114 [Verbose] >
00:07:36 #21115 [Verbose] > inl states_txv dt m txv0 fs =
00:07:36 #21116 [Verbose] > seq.iterate_ (update_txv dt m fs) txv0
00:07:36 #21117 [Verbose] >
00:07:36 #21118 [Verbose] > inl velocity_1d sts t =
00:07:36 #21119 [Verbose] > inl (state_1d (t0, _, _)) = sts 0
00:07:36 #21120 [Verbose] > inl (state_1d (t1, _, _)) = sts 1
00:07:36 #21121 [Verbose] > inl dt = t1 - t0
00:07:36 #21122 [Verbose] > inl num_steps = t / dt |> math.round |> abs
00:07:36 #21123 [Verbose] > inl (state_1d (_, _, v0)) = sts num_steps
00:07:36 #21124 [Verbose] > v0
00:07:36 #21125 [Verbose] >
00:07:36 #21126 [Verbose] > inl velocity_ftxv dt m txv0 fs =
00:07:36 #21127 [Verbose] > states_txv dt m txv0 fs |> velocity_1d
00:07:36 #21128 [Verbose] >
00:07:36 #21129 [Verbose] > inl position_1d sts t =
00:07:36 #21130 [Verbose] > inl (state_1d (t0, _, _)) = sts 0
00:07:36 #21131 [Verbose] > inl (state_1d (t1, _, _)) = sts 1
00:07:36 #21132 [Verbose] > inl dt = t1 - t0
00:07:36 #21133 [Verbose] > inl num_steps = t / dt |> math.round |> abs
00:07:36 #21134 [Verbose] > inl (state_1d (_, x0, _)) = sts num_steps
00:07:36 #21135 [Verbose] > x0
00:07:36 #21136 [Verbose] >
00:07:36 #21137 [Verbose] > inl position_ftxv dt m txv0 fs =
00:07:36 #21138 [Verbose] > states_txv dt m txv0 fs |> position_1d
00:07:36 #21139 [Verbose] >
00:07:36 #21140 [Verbose] > inl spring_force k (state_1d (_, x0, _)) =
00:07:36 #21141 [Verbose] > -k * x0
00:07:36 #21142 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0845-4528-49b74920a030\main.spi
00:07:36 #21143 [Verbose] >
00:07:36 #21144 [Verbose] > ╭─[ 213.72ms - stdout ]────────────────────────────────────────────────────────╮
00:07:36 #21145 [Verbose] > │ () │
00:07:36 #21146 [Verbose] > │ │
00:07:36 #21147 [Verbose] > │ │
00:07:36 #21148 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:36 #21149 [Verbose] >
00:07:36 #21150 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:36 #21151 [Verbose] > // // test
00:07:36 #21152 [Verbose] >
00:07:36 #21153 [Verbose] > inl damped_ho_forces () =
00:07:36 #21154 [Verbose] > [[
00:07:36 #21155 [Verbose] > spring_force 0.8
00:07:36 #21156 [Verbose] > fun (state_1d (_, _, v0)) => f_air 2 1.225 (pi * math.square 0.02) v0
00:07:36 #21157 [Verbose] > fun _ => -0.0027 * 9.80665
00:07:36 #21158 [Verbose] > ]]
00:07:36 #21159 [Verbose] >
00:07:36 #21160 [Verbose] > inl damped_ho_states () =
00:07:36 #21161 [Verbose] > states_txv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ())
00:07:36 #21162 [Verbose] >
00:07:36 #21163 [Verbose] > inl pingpong_position t =
00:07:36 #21164 [Verbose] > position_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t
00:07:36 #21165 [Verbose] >
00:07:36 #21166 [Verbose] > inl x : a _ f64 = am'.init_series 0 3 0.01
00:07:36 #21167 [Verbose] > inl y = x |> am.map pingpong_position
00:07:36 #21168 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "position (m)", x, y ]]
00:07:36 #21169 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0866-6683-6a25a659da08\main.spi
00:07:36 #21170 [Verbose] >
00:07:36 #21171 [Verbose] > ╭─[ 323.02ms - return value ]──────────────────────────────────────────────────╮
00:07:36 #21172 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:36 #21173 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:36 #21174 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:36 #21175 [Verbose] > │ stroke="none"/> │
00:07:36 #21176 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:36 #21177 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:36 #21178 [Verbose] > │ fill="#FFFFFF"> │
00:07:36 #21179 [Verbose] > │ ping pong ball on a slinky │
00:07:36 #21180 [Verbose] > │ </text> │
00:07:36 #21181 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:07:36 #21182 [Verbose] > │ y2="75"/> │
00:07:36 #21183 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:36 #21184 [Verbose] > │ y2="75"/> │
00:07:36 #21185 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:07:36 #21186 [Verbose] > │ y2="75"/> │
00:07:36 #21187 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:07:36 #21188 [Verbose] > │ y2="75"/> │
00:07:36 #21189 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9... │
00:07:36 #21190 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:36 #21191 [Verbose] >
00:07:36 #21192 [Verbose] > ╭─[ 334.51ms - stdout ]────────────────────────────────────────────────────────╮
00:07:36 #21193 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:36 #21194 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:36 #21195 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:36 #21196 [Verbose] > │ let v2 : bool = v1 < 301 │
00:07:36 #21197 [Verbose] > │ v2 │
00:07:36 #21198 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:36 #21199 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:36 #21200 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:36 #21201 [Verbose] > │ v3 │
00:07:36 #21202 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │
00:07:36 #21203 [Verbose] > │ * float * float) = │
00:07:36 #21204 [Verbose] > │ let v4 : bool = v3 <= 0.0 │
00:07:36 #21205 [Verbose] > │ if v4 then │
00:07:36 #21206 [Verbose] > │ struct (v0, v1, v2) │
00:07:36 #21207 [Verbose] > │ else │
00:07:36 #21208 [Verbose] > │ let v5 : float = -v2 │
00:07:36 #21209 [Verbose] > │ let v6 : bool = v2 >= v5 │
00:07:36 #21210 [Verbose] > │ let v7 : float = │
00:07:36 #21211 [Verbose] > │ if v6 then │
00:07:36 #21212 [Verbose] > │ v2 │
00:07:36 #21213 [Verbose] > │ else │
00:07:36 #21214 [Verbose] > │ v5 │
00:07:36 #21215 [Verbose] > │ let v8 : float = -0.0030787608005179976 * v7 │
00:07:36 #21216 [Verbose] > │ let v9 : float = v8 * v2 │
00:07:36 #21217 [Verbose] > │ let v10 : float = v9 / 2.0 │
00:07:36 #21218 [Verbose] > │ let v11 : float = -0.8 * v1 │
00:07:36 #21219 [Verbose] > │ let v12 : float = v11 + v10 │
00:07:36 #21220 [Verbose] > │ let v13 : float = v12 + -0.026477955 │
00:07:36 #21221 [Verbose] > │ let v14 : float = v13 / 0.0027 │
00:07:36 #21222 [Verbose] > │ let v15 : float = v0 + 0.001 │
00:07:36 #21223 [Verbose] > │ let v16 : float = v2 * 0.001 │
00:07:36 #21224 [Verbose] > │ let v17 : float = v1 + v16 │
00:07:36 #21225 [Verbose] > │ let v18 : float = v14 * 0.001 │
00:07:36 #21226 [Verbose] > │ let v19 : float = v2 + v18 │
00:07:36 #21227 [Verbose] > │ let v20 : float = v3 - 1.0 │
00:07:36 #21228 [Verbose] > │ method3(v15, v17, v19, v20) │
00:07:36 #21229 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:36 #21230 [Verbose] > │ []) * (float [])) [])) = │
00:07:36 #21231 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (301) │
00:07:36 #21232 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:36 #21233 [Verbose] > │ while method1(v1) do │
00:07:36 #21234 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:36 #21235 [Verbose] > │ let v4 : float = float v3 │
00:07:36 #21236 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:07:36 #21237 [Verbose] > │ v0.[int v3] <- v5 │
00:07:36 #21238 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:36 #21239 [Verbose] > │ v1.l0 <- v6 │
00:07:36 #21240 [Verbose] > │ () │
00:07:36 #21241 [Verbose] > │ let v7 : int32 = v0.Length │
00:07:36 #21242 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:07:36 #21243 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:07:36 #21244 [Verbose] > │ while method2(v7, v9) do │
00:07:36 #21245 [Verbose] > │ let v11 : int32 = v9.l0 │
00:07:36 #21246 [Verbose] > │ let v12 : float = v0.[int v11] │
00:07:36 #21247 [Verbose] > │ let v13 : float = 0.0 │
00:07:36 #21248 [Verbose] > │ let v14 : float = 0.1 │
00:07:36 #21249 [Verbose] > │ let v15 : float = 0.0 │
00:07:36 #21250 [Verbose] > │ let v16 : float = 0.0 │
00:07:36 #21251 [Verbose] > │ let struct (v17 : float, v18 : float, v19 : float) = method3(v13, │
00:07:36 #21252 [Verbose] > │ v14, v15, v16) │
00:07:36 #21253 [Verbose] > │ let v20 : float = 0.0 │
00:07:36 #21254 [Verbose] > │ let v21 : float = 0.1 │
00:07:36 #21255 [Verbose] > │ let v22 : float = 0.0 │
00:07:36 #21256 [Verbose] > │ let v23 : float = 1.0 │
00:07:36 #21257 [Verbose] > │ let struct (v24 : float, v25 : float, v26 : float) = method3(v20, │
00:07:36 #21258 [Verbose] > │ v21, v22, v23) │
00:07:36 #21259 [Verbose] > │ let v27 : float = v24 - v17 │
00:07:36 #21260 [Verbose] > │ let v28 : float = v12 / v27 │
00:07:36 #21261 [Verbose] > │ let v29 : float = round v28 │
00:07:36 #21262 [Verbose] > │ let v30 : float = -v29 │
00:07:36 #21263 [Verbose] > │ let v31 : bool = v29 >= v30 │
00:07:36 #21264 [Verbose] > │ let v32 : float = │
00:07:36 #21265 [Verbose] > │ if v31 then │
00:07:36 #21266 [Verbose] > │ v29 │
00:07:36 #21267 [Verbose] > │ else │
00:07:36 #21268 [Verbose] > │ v30 │
00:07:36 #21269 [Verbose] > │ let v33 : float = 0.0 │
00:07:36 #21270 [Verbose] > │ let v34 : float = 0.1 │
00:07:36 #21271 [Verbose] > │ let v35 : float = 0.0 │
00:07:36 #21272 [Verbose] > │ let struct (v36 : float, v37 : float, v38 : float) = method3(v33, │
00:07:36 #21273 [Verbose] > │ v34, v35, v32) │
00:07:36 #21274 [Verbose] > │ v8.[int v11] <- v37 │
00:07:36 #21275 [Verbose] > │ let v39 : int32 = v11 + 1 │
00:07:36 #21276 [Verbose] > │ v9.l0 <- v39 │
00:07:36 #21277 [Verbose] > │ () │
00:07:36 #21278 [Verbose] > │ let v40 : string = "position (m)" │
00:07:36 #21279 [Verbose] > │ let v41 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:36 #21280 [Verbose] > │ (v40, v0, v8)|] │
00:07:36 #21281 [Verbose] > │ let v42 : string = "ping pong ball on a slinky" │
00:07:36 #21282 [Verbose] > │ let v43 : string = "time (s)" │
00:07:36 #21283 [Verbose] > │ let v44 : string = "" │
00:07:36 #21284 [Verbose] > │ struct (v42, v43, v44, v41) │
00:07:36 #21285 [Verbose] > │ method0() │
00:07:36 #21286 [Verbose] > │ │
00:07:36 #21287 [Verbose] > │ │
00:07:36 #21288 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:36 #21289 [Verbose] >
00:07:36 #21290 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:36 #21291 [Verbose] > // // test
00:07:36 #21292 [Verbose] >
00:07:36 #21293 [Verbose] > inl pingpong_velocity t =
00:07:36 #21294 [Verbose] > velocity_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t
00:07:36 #21295 [Verbose] >
00:07:36 #21296 [Verbose] > inl x = am'.init_series 0 3 0.01
00:07:36 #21297 [Verbose] > inl y = x |> am.map pingpong_velocity
00:07:36 #21298 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "velocity (m/s)", x, y ]]
00:07:36 #21299 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0904-0451-0e4c8c806dea\main.spi
00:07:37 #21300 [Verbose] >
00:07:37 #21301 [Verbose] > ╭─[ 345.60ms - return value ]──────────────────────────────────────────────────╮
00:07:37 #21302 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:37 #21303 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:37 #21304 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:37 #21305 [Verbose] > │ stroke="none"/> │
00:07:37 #21306 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:37 #21307 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:37 #21308 [Verbose] > │ fill="#FFFFFF"> │
00:07:37 #21309 [Verbose] > │ ping pong ball on a slinky │
00:07:37 #21310 [Verbose] > │ </text> │
00:07:37 #21311 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │
00:07:37 #21312 [Verbose] > │ y2="75"/> │
00:07:37 #21313 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:37 #21314 [Verbose] > │ y2="75"/> │
00:07:37 #21315 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │
00:07:37 #21316 [Verbose] > │ y2="75"/> │
00:07:37 #21317 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │
00:07:37 #21318 [Verbose] > │ y2="75"/> │
00:07:37 #21319 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9... │
00:07:37 #21320 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:37 #21321 [Verbose] >
00:07:37 #21322 [Verbose] > ╭─[ 357.18ms - stdout ]────────────────────────────────────────────────────────╮
00:07:37 #21323 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:37 #21324 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:37 #21325 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:37 #21326 [Verbose] > │ let v2 : bool = v1 < 301 │
00:07:37 #21327 [Verbose] > │ v2 │
00:07:37 #21328 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:37 #21329 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:37 #21330 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:37 #21331 [Verbose] > │ v3 │
00:07:37 #21332 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │
00:07:37 #21333 [Verbose] > │ * float * float) = │
00:07:37 #21334 [Verbose] > │ let v4 : bool = v3 <= 0.0 │
00:07:37 #21335 [Verbose] > │ if v4 then │
00:07:37 #21336 [Verbose] > │ struct (v0, v1, v2) │
00:07:37 #21337 [Verbose] > │ else │
00:07:37 #21338 [Verbose] > │ let v5 : float = -v2 │
00:07:37 #21339 [Verbose] > │ let v6 : bool = v2 >= v5 │
00:07:37 #21340 [Verbose] > │ let v7 : float = │
00:07:37 #21341 [Verbose] > │ if v6 then │
00:07:37 #21342 [Verbose] > │ v2 │
00:07:37 #21343 [Verbose] > │ else │
00:07:37 #21344 [Verbose] > │ v5 │
00:07:37 #21345 [Verbose] > │ let v8 : float = -0.0030787608005179976 * v7 │
00:07:37 #21346 [Verbose] > │ let v9 : float = v8 * v2 │
00:07:37 #21347 [Verbose] > │ let v10 : float = v9 / 2.0 │
00:07:37 #21348 [Verbose] > │ let v11 : float = -0.8 * v1 │
00:07:37 #21349 [Verbose] > │ let v12 : float = v11 + v10 │
00:07:37 #21350 [Verbose] > │ let v13 : float = v12 + -0.026477955 │
00:07:37 #21351 [Verbose] > │ let v14 : float = v13 / 0.0027 │
00:07:37 #21352 [Verbose] > │ let v15 : float = v0 + 0.001 │
00:07:37 #21353 [Verbose] > │ let v16 : float = v2 * 0.001 │
00:07:37 #21354 [Verbose] > │ let v17 : float = v1 + v16 │
00:07:37 #21355 [Verbose] > │ let v18 : float = v14 * 0.001 │
00:07:37 #21356 [Verbose] > │ let v19 : float = v2 + v18 │
00:07:37 #21357 [Verbose] > │ let v20 : float = v3 - 1.0 │
00:07:37 #21358 [Verbose] > │ method3(v15, v17, v19, v20) │
00:07:37 #21359 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:37 #21360 [Verbose] > │ []) * (float [])) [])) = │
00:07:37 #21361 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (301) │
00:07:37 #21362 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:37 #21363 [Verbose] > │ while method1(v1) do │
00:07:37 #21364 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:37 #21365 [Verbose] > │ let v4 : float = float v3 │
00:07:37 #21366 [Verbose] > │ let v5 : float = 0.01 * v4 │
00:07:37 #21367 [Verbose] > │ v0.[int v3] <- v5 │
00:07:37 #21368 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:37 #21369 [Verbose] > │ v1.l0 <- v6 │
00:07:37 #21370 [Verbose] > │ () │
00:07:37 #21371 [Verbose] > │ let v7 : int32 = v0.Length │
00:07:37 #21372 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:07:37 #21373 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:07:37 #21374 [Verbose] > │ while method2(v7, v9) do │
00:07:37 #21375 [Verbose] > │ let v11 : int32 = v9.l0 │
00:07:37 #21376 [Verbose] > │ let v12 : float = v0.[int v11] │
00:07:37 #21377 [Verbose] > │ let v13 : float = 0.0 │
00:07:37 #21378 [Verbose] > │ let v14 : float = 0.1 │
00:07:37 #21379 [Verbose] > │ let v15 : float = 0.0 │
00:07:37 #21380 [Verbose] > │ let v16 : float = 0.0 │
00:07:37 #21381 [Verbose] > │ let struct (v17 : float, v18 : float, v19 : float) = method3(v13, │
00:07:37 #21382 [Verbose] > │ v14, v15, v16) │
00:07:37 #21383 [Verbose] > │ let v20 : float = 0.0 │
00:07:37 #21384 [Verbose] > │ let v21 : float = 0.1 │
00:07:37 #21385 [Verbose] > │ let v22 : float = 0.0 │
00:07:37 #21386 [Verbose] > │ let v23 : float = 1.0 │
00:07:37 #21387 [Verbose] > │ let struct (v24 : float, v25 : float, v26 : float) = method3(v20, │
00:07:37 #21388 [Verbose] > │ v21, v22, v23) │
00:07:37 #21389 [Verbose] > │ let v27 : float = v24 - v17 │
00:07:37 #21390 [Verbose] > │ let v28 : float = v12 / v27 │
00:07:37 #21391 [Verbose] > │ let v29 : float = round v28 │
00:07:37 #21392 [Verbose] > │ let v30 : float = -v29 │
00:07:37 #21393 [Verbose] > │ let v31 : bool = v29 >= v30 │
00:07:37 #21394 [Verbose] > │ let v32 : float = │
00:07:37 #21395 [Verbose] > │ if v31 then │
00:07:37 #21396 [Verbose] > │ v29 │
00:07:37 #21397 [Verbose] > │ else │
00:07:37 #21398 [Verbose] > │ v30 │
00:07:37 #21399 [Verbose] > │ let v33 : float = 0.0 │
00:07:37 #21400 [Verbose] > │ let v34 : float = 0.1 │
00:07:37 #21401 [Verbose] > │ let v35 : float = 0.0 │
00:07:37 #21402 [Verbose] > │ let struct (v36 : float, v37 : float, v38 : float) = method3(v33, │
00:07:37 #21403 [Verbose] > │ v34, v35, v32) │
00:07:37 #21404 [Verbose] > │ v8.[int v11] <- v38 │
00:07:37 #21405 [Verbose] > │ let v39 : int32 = v11 + 1 │
00:07:37 #21406 [Verbose] > │ v9.l0 <- v39 │
00:07:37 #21407 [Verbose] > │ () │
00:07:37 #21408 [Verbose] > │ let v40 : string = "velocity (m/s)" │
00:07:37 #21409 [Verbose] > │ let v41 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:37 #21410 [Verbose] > │ (v40, v0, v8)|] │
00:07:37 #21411 [Verbose] > │ let v42 : string = "ping pong ball on a slinky" │
00:07:37 #21412 [Verbose] > │ let v43 : string = "time (s)" │
00:07:37 #21413 [Verbose] > │ let v44 : string = "" │
00:07:37 #21414 [Verbose] > │ struct (v42, v43, v44, v41) │
00:07:37 #21415 [Verbose] > │ method0() │
00:07:37 #21416 [Verbose] > │ │
00:07:37 #21417 [Verbose] > │ │
00:07:37 #21418 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:37 #21419 [Verbose] >
00:07:37 #21420 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:37 #21421 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:37 #21422 [Verbose] > │ ## shift │
00:07:37 #21423 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:37 #21424 [Verbose] >
00:07:37 #21425 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:37 #21426 [Verbose] > type update_function s = s -> s
00:07:37 #21427 [Verbose] >
00:07:37 #21428 [Verbose] > type differential_equation s ds = s -> ds
00:07:37 #21429 [Verbose] >
00:07:37 #21430 [Verbose] > type numerical_method s ds = differential_equation s ds -> update_function s
00:07:37 #21431 [Verbose] >
00:07:37 #21432 [Verbose] >
00:07:37 #21433 [Verbose] > inl solver method =
00:07:37 #21434 [Verbose] > method >> seq.iterate
00:07:37 #21435 [Verbose] > inl solver' method =
00:07:37 #21436 [Verbose] > method >> seq.iterate'
00:07:37 #21437 [Verbose] > inl solver_ method =
00:07:37 #21438 [Verbose] > method >> seq.iterate_
00:07:37 #21439 [Verbose] >
00:07:37 #21440 [Verbose] >
00:07:37 #21441 [Verbose] > inl euler_cromer_1d dt deriv (state_1d (t0, x0, v0) as t) =
00:07:37 #21442 [Verbose] > inl (rrr (_, _, dvdt)) = deriv t
00:07:37 #21443 [Verbose] > inl t1 = t0 + dt
00:07:37 #21444 [Verbose] > inl v1 = v0 + dvdt * dt
00:07:37 #21445 [Verbose] > inl x1 = x0 + v1 * dt
00:07:37 #21446 [Verbose] > state_1d (t1, x1, v1)
00:07:37 #21447 [Verbose] >
00:07:37 #21448 [Verbose] > inl update_txv_ec dt m fs =
00:07:37 #21449 [Verbose] > euler_cromer_1d dt (newton_second_1d m fs)
00:07:37 #21450 [Verbose] >
00:07:37 #21451 [Verbose] > prototype (+++) ds : ds -> ds -> ds
00:07:37 #21452 [Verbose] > prototype scale ds : f64 -> ds -> ds
00:07:37 #21453 [Verbose] >
00:07:37 #21454 [Verbose] > instance (+++) rrr = fun (rrr (dtdt0, dxdt0, dvdt0)) (rrr (dtdt1, dxdt1, dvdt1))
00:07:37 #21455 [Verbose] > =>
00:07:37 #21456 [Verbose] > rrr (dtdt0 + dtdt1, dxdt0 + dxdt1, dvdt0 + dvdt1)
00:07:37 #21457 [Verbose] >
00:07:37 #21458 [Verbose] > instance scale rrr = fun w (rrr (dtdt0, dxdt0, dvdt0)) =>
00:07:37 #21459 [Verbose] > rrr (w * dtdt0, w * dxdt0, w * dvdt0)
00:07:37 #21460 [Verbose] >
00:07:37 #21461 [Verbose] > prototype shift s : forall ds. f64 -> ds -> s -> s
00:07:37 #21462 [Verbose] >
00:07:37 #21463 [Verbose] > instance shift state_1d = fun dt ds (state_1d (t, x, v)) =>
00:07:37 #21464 [Verbose] > inl dtdt, dxdt, dvdt =
00:07:37 #21465 [Verbose] > real
00:07:37 #21466 [Verbose] > match ds with
00:07:37 #21467 [Verbose] > | rrr x => x
00:07:37 #21468 [Verbose] > | state_1d x => x
00:07:37 #21469 [Verbose] > state_1d (t + dtdt * dt, x + dxdt * dt, v + dvdt * dt)
00:07:37 #21470 [Verbose] >
00:07:37 #21471 [Verbose] > inl euler dt deriv st0 =
00:07:37 #21472 [Verbose] > shift dt (deriv st0) st0
00:07:37 #21473 [Verbose] >
00:07:37 #21474 [Verbose] > inl runge_kutta_4 dt deriv st0 =
00:07:37 #21475 [Verbose] > inl m0 = deriv st0
00:07:37 #21476 [Verbose] > inl m1 = deriv (shift (dt / 2) m0 st0)
00:07:37 #21477 [Verbose] > inl m2 = deriv (shift (dt / 2) m1 st0)
00:07:37 #21478 [Verbose] > inl m3 = deriv (shift dt m2 st0)
00:07:37 #21479 [Verbose] > shift (dt / 6) (m0 +++ m1 +++ m1 +++ m2 +++ m2 +++ m3) st0
00:07:37 #21480 [Verbose] >
00:07:37 #21481 [Verbose] > inl exponential (_, x0, v0) =
00:07:37 #21482 [Verbose] > 1f64, v0, x0
00:07:37 #21483 [Verbose] >
00:07:37 #21484 [Verbose] > inl of_state_1d (state_1d (t, x, v)) =
00:07:37 #21485 [Verbose] > t, x, v
00:07:37 #21486 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0944-4475-4931c24f62b7\main.spi
00:07:37 #21487 [Verbose] >
00:07:37 #21488 [Verbose] > ╭─[ 216.72ms - stdout ]────────────────────────────────────────────────────────╮
00:07:37 #21489 [Verbose] > │ () │
00:07:37 #21490 [Verbose] > │ │
00:07:37 #21491 [Verbose] > │ │
00:07:37 #21492 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:37 #21493 [Verbose] >
00:07:37 #21494 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:37 #21495 [Verbose] > // // test
00:07:37 #21496 [Verbose] >
00:07:37 #21497 [Verbose] > solver (euler 0.01) (of_state_1d >> exponential >> state_1d) (state_1d (0, 1,
00:07:37 #21498 [Verbose] > 1)) 800i32
00:07:37 #21499 [Verbose] > |> _assert_eq (state_1d (7.999999999999874, 2864.8311229272326,
00:07:37 #21500 [Verbose] > 2864.8311229272326))
00:07:37 #21501 [Verbose] >
00:07:37 #21502 [Verbose] > solver (euler_cromer_1d 0.1) (of_state_1d >> exponential >> rrr) (state_1d (0,
00:07:37 #21503 [Verbose] > 1, 1)) 80i32
00:07:37 #21504 [Verbose] > |> _assert_eq (state_1d (7.999999999999988, 3043.379244966009,
00:07:37 #21505 [Verbose] > 2895.0121485099035))
00:07:37 #21506 [Verbose] >
00:07:37 #21507 [Verbose] > solver (runge_kutta_4 1) (of_state_1d >> exponential >> rrr) (state_1d (0, 1,
00:07:37 #21508 [Verbose] > 1)) 8i32
00:07:37 #21509 [Verbose] > |> _assert_eq (state_1d (8.0, 2894.789038540849, 2894.789038540849))
00:07:37 #21510 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0966-6653-627a7d8fe4fc\main.spi
00:07:37 #21511 [Verbose] >
00:07:37 #21512 [Verbose] > ╭─[ 373.66ms - stdout ]────────────────────────────────────────────────────────╮
00:07:37 #21513 [Verbose] > │ let rec method0 () : unit = │
00:07:37 #21514 [Verbose] > │ let v0 : string = $"%A{struct (7.999999999999874, 2864.8311229272326, │
00:07:37 #21515 [Verbose] > │ 2864.8311229272326)}" │
00:07:37 #21516 [Verbose] > │ System.Console.WriteLine v0 │
00:07:37 #21517 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (7.999999999999874, │
00:07:37 #21518 [Verbose] > │ 2864.8311229272326, 2864.8311229272326)} / expected: %A{struct │
00:07:37 #21519 [Verbose] > │ (7.999999999999874, 2864.8311229272326, 2864.8311229272326)}" │
00:07:37 #21520 [Verbose] > │ let v2 : string = $"%A{struct (7.999999999999988, 3043.379244966009, │
00:07:37 #21521 [Verbose] > │ 2895.0121485099035)}" │
00:07:37 #21522 [Verbose] > │ System.Console.WriteLine v2 │
00:07:37 #21523 [Verbose] > │ let v3 : string = $"__expect / actual: %A{struct (7.999999999999988, │
00:07:37 #21524 [Verbose] > │ 3043.379244966009, 2895.0121485099035)} / expected: %A{struct │
00:07:37 #21525 [Verbose] > │ (7.999999999999988, 3043.379244966009, 2895.0121485099035)}" │
00:07:37 #21526 [Verbose] > │ let v4 : string = $"%A{struct (8.0, 2894.789038540849, │
00:07:37 #21527 [Verbose] > │ 2894.789038540849)}" │
00:07:37 #21528 [Verbose] > │ System.Console.WriteLine v4 │
00:07:37 #21529 [Verbose] > │ let v5 : string = $"__expect / actual: %A{struct (8.0, │
00:07:37 #21530 [Verbose] > │ 2894.789038540849, 2894.789038540849)} / expected: %A{struct (8.0, │
00:07:37 #21531 [Verbose] > │ 2894.789038540849, 2894.789038540849)}" │
00:07:37 #21532 [Verbose] > │ () │
00:07:37 #21533 [Verbose] > │ method0() │
00:07:37 #21534 [Verbose] > │ │
00:07:37 #21535 [Verbose] > │ struct (8.0, 2864.831123, 2864.831123) │
00:07:37 #21536 [Verbose] > │ struct (8.0, 3043.379245, 2895.012149) │
00:07:37 #21537 [Verbose] > │ struct (8.0, 2894.789039, 2894.789039) │
00:07:37 #21538 [Verbose] > │ │
00:07:37 #21539 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:37 #21540 [Verbose] >
00:07:37 #21541 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:37 #21542 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:37 #21543 [Verbose] > │ ## vec │
00:07:37 #21544 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:37 #21545 [Verbose] >
00:07:37 #21546 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:37 #21547 [Verbose] > type vec =
00:07:37 #21548 [Verbose] > {
00:07:37 #21549 [Verbose] > x : f64
00:07:37 #21550 [Verbose] > y : f64
00:07:37 #21551 [Verbose] > z : f64
00:07:37 #21552 [Verbose] > }
00:07:37 #21553 [Verbose] >
00:07:37 #21554 [Verbose] > inl vec x y z : vec =
00:07:37 #21555 [Verbose] > { x y z }
00:07:37 #21556 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1005-0579-062c3304fc45\main.spi
00:07:38 #21557 [Verbose] >
00:07:38 #21558 [Verbose] > ╭─[ 297.26ms - stdout ]────────────────────────────────────────────────────────╮
00:07:38 #21559 [Verbose] > │ () │
00:07:38 #21560 [Verbose] > │ │
00:07:38 #21561 [Verbose] > │ │
00:07:38 #21562 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:38 #21563 [Verbose] >
00:07:38 #21564 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:38 #21565 [Verbose] > // // test
00:07:38 #21566 [Verbose] >
00:07:38 #21567 [Verbose] > vec 1 2 3 .z
00:07:38 #21568 [Verbose] > |> _assert_eq 3
00:07:38 #21569 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1035-3576-34af0f754d85\main.spi
00:07:38 #21570 [Verbose] >
00:07:38 #21571 [Verbose] > ╭─[ 220.62ms - stdout ]────────────────────────────────────────────────────────╮
00:07:38 #21572 [Verbose] > │ let rec method0 () : unit = │
00:07:38 #21573 [Verbose] > │ let v0 : string = $"%A{3.0}" │
00:07:38 #21574 [Verbose] > │ System.Console.WriteLine v0 │
00:07:38 #21575 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.0} / expected: %A{3.0}" │
00:07:38 #21576 [Verbose] > │ () │
00:07:38 #21577 [Verbose] > │ method0() │
00:07:38 #21578 [Verbose] > │ │
00:07:38 #21579 [Verbose] > │ 3.0 │
00:07:38 #21580 [Verbose] > │ │
00:07:38 #21581 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:38 #21582 [Verbose] >
00:07:38 #21583 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:38 #21584 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:38 #21585 [Verbose] > │ ### consts │
00:07:38 #21586 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:38 #21587 [Verbose] >
00:07:38 #21588 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:38 #21589 [Verbose] > inl i_hat () = vec 1 0 0
00:07:38 #21590 [Verbose] > inl j_hat () = vec 0 1 0
00:07:38 #21591 [Verbose] > inl k_hat () = vec 0 0 1
00:07:38 #21592 [Verbose] > inl zero_vec () = vec 0 0 0
00:07:38 #21593 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1058-5859-51b46ab0709d\main.spi
00:07:38 #21594 [Verbose] >
00:07:38 #21595 [Verbose] > ╭─[ 392.40ms - stdout ]────────────────────────────────────────────────────────╮
00:07:38 #21596 [Verbose] > │ () │
00:07:38 #21597 [Verbose] > │ │
00:07:38 #21598 [Verbose] > │ │
00:07:38 #21599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:38 #21600 [Verbose] >
00:07:38 #21601 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:38 #21602 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:38 #21603 [Verbose] > │ ### ^+^ │
00:07:38 #21604 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:38 #21605 [Verbose] >
00:07:38 #21606 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:38 #21607 [Verbose] > inl (^+^) (a : vec) (b : vec) =
00:07:38 #21608 [Verbose] > vec (a.x + b.x) (a.y + b.y) (a.z + b.z)
00:07:38 #21609 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1098-9845-9463dda1f879\main.spi
00:07:38 #21610 [Verbose] >
00:07:38 #21611 [Verbose] > ╭─[ 261.66ms - stdout ]────────────────────────────────────────────────────────╮
00:07:38 #21612 [Verbose] > │ () │
00:07:38 #21613 [Verbose] > │ │
00:07:38 #21614 [Verbose] > │ │
00:07:38 #21615 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:38 #21616 [Verbose] >
00:07:38 #21617 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:38 #21618 [Verbose] > // // test
00:07:38 #21619 [Verbose] >
00:07:38 #21620 [Verbose] > vec 1 2 3 ^+^ vec 4 5 6
00:07:38 #21621 [Verbose] > |> _assert_eq (vec 5 7 9)
00:07:39 #21622 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1124-2490-286f71bcabe6\main.spi
00:07:39 #21623 [Verbose] >
00:07:39 #21624 [Verbose] > ╭─[ 269.65ms - stdout ]────────────────────────────────────────────────────────╮
00:07:39 #21625 [Verbose] > │ let rec method0 () : unit = │
00:07:39 #21626 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}" │
00:07:39 #21627 [Verbose] > │ System.Console.WriteLine v0 │
00:07:39 #21628 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} / │
00:07:39 #21629 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}" │
00:07:39 #21630 [Verbose] > │ () │
00:07:39 #21631 [Verbose] > │ method0() │
00:07:39 #21632 [Verbose] > │ │
00:07:39 #21633 [Verbose] > │ struct (5.0, 7.0, 9.0) │
00:07:39 #21634 [Verbose] > │ │
00:07:39 #21635 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:39 #21636 [Verbose] >
00:07:39 #21637 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:39 #21638 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:39 #21639 [Verbose] > │ ### sum_vec │
00:07:39 #21640 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:39 #21641 [Verbose] >
00:07:39 #21642 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:39 #21643 [Verbose] > inl sum_vec vs =
00:07:39 #21644 [Verbose] > vs |> listm.fold (^+^) (zero_vec ())
00:07:39 #21645 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1152-5275-52df8fc87147\main.spi
00:07:39 #21646 [Verbose] >
00:07:39 #21647 [Verbose] > ╭─[ 216.57ms - stdout ]────────────────────────────────────────────────────────╮
00:07:39 #21648 [Verbose] > │ () │
00:07:39 #21649 [Verbose] > │ │
00:07:39 #21650 [Verbose] > │ │
00:07:39 #21651 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:39 #21652 [Verbose] >
00:07:39 #21653 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:39 #21654 [Verbose] > // // test
00:07:39 #21655 [Verbose] >
00:07:39 #21656 [Verbose] > [[ vec 1 2 3; vec 4 5 6 ]]
00:07:39 #21657 [Verbose] > |> sum_vec
00:07:39 #21658 [Verbose] > |> _assert_eq (vec 5 7 9)
00:07:39 #21659 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1175-7501-79428d69be7a\main.spi
00:07:39 #21660 [Verbose] >
00:07:39 #21661 [Verbose] > ╭─[ 411.05ms - stdout ]────────────────────────────────────────────────────────╮
00:07:39 #21662 [Verbose] > │ let rec method0 () : unit = │
00:07:39 #21663 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}" │
00:07:39 #21664 [Verbose] > │ System.Console.WriteLine v0 │
00:07:39 #21665 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} / │
00:07:39 #21666 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}" │
00:07:39 #21667 [Verbose] > │ () │
00:07:39 #21668 [Verbose] > │ method0() │
00:07:39 #21669 [Verbose] > │ │
00:07:39 #21670 [Verbose] > │ struct (5.0, 7.0, 9.0) │
00:07:39 #21671 [Verbose] > │ │
00:07:39 #21672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:39 #21673 [Verbose] >
00:07:39 #21674 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:39 #21675 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:39 #21676 [Verbose] > │ ### *^ │
00:07:39 #21677 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:39 #21678 [Verbose] >
00:07:39 #21679 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:39 #21680 [Verbose] > inl (*^) c { x y z } =
00:07:39 #21681 [Verbose] > vec (c * x) (c * y) (c * z)
00:07:40 #21682 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1217-1728-1b75a857772a\main.spi
00:07:40 #21683 [Verbose] >
00:07:40 #21684 [Verbose] > ╭─[ 230.15ms - stdout ]────────────────────────────────────────────────────────╮
00:07:40 #21685 [Verbose] > │ () │
00:07:40 #21686 [Verbose] > │ │
00:07:40 #21687 [Verbose] > │ │
00:07:40 #21688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:40 #21689 [Verbose] >
00:07:40 #21690 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:40 #21691 [Verbose] > // // test
00:07:40 #21692 [Verbose] >
00:07:40 #21693 [Verbose] > 5 *^ vec 1 2 3
00:07:40 #21694 [Verbose] > |> _assert_eq (vec 5 10 15)
00:07:40 #21695 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1240-4043-411c263c2608\main.spi
00:07:40 #21696 [Verbose] >
00:07:40 #21697 [Verbose] > ╭─[ 270.95ms - stdout ]────────────────────────────────────────────────────────╮
00:07:40 #21698 [Verbose] > │ let rec method0 () : unit = │
00:07:40 #21699 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}" │
00:07:40 #21700 [Verbose] > │ System.Console.WriteLine v0 │
00:07:40 #21701 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} / │
00:07:40 #21702 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}" │
00:07:40 #21703 [Verbose] > │ () │
00:07:40 #21704 [Verbose] > │ method0() │
00:07:40 #21705 [Verbose] > │ │
00:07:40 #21706 [Verbose] > │ struct (5.0, 10.0, 15.0) │
00:07:40 #21707 [Verbose] > │ │
00:07:40 #21708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:40 #21709 [Verbose] >
00:07:40 #21710 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:40 #21711 [Verbose] > // // test
00:07:40 #21712 [Verbose] >
00:07:40 #21713 [Verbose] > 3 *^ i_hat () ^+^ 4 *^ k_hat ()
00:07:40 #21714 [Verbose] > |> _assert_eq (vec 3 0 4)
00:07:40 #21715 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1268-6813-645c7c9db2ff\main.spi
00:07:40 #21716 [Verbose] >
00:07:40 #21717 [Verbose] > ╭─[ 228.55ms - stdout ]────────────────────────────────────────────────────────╮
00:07:40 #21718 [Verbose] > │ let rec method0 () : unit = │
00:07:40 #21719 [Verbose] > │ let v0 : string = $"%A{struct (3.0, 0.0, 4.0)}" │
00:07:40 #21720 [Verbose] > │ System.Console.WriteLine v0 │
00:07:40 #21721 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (3.0, 0.0, 4.0)} / │
00:07:40 #21722 [Verbose] > │ expected: %A{struct (3.0, 0.0, 4.0)}" │
00:07:40 #21723 [Verbose] > │ () │
00:07:40 #21724 [Verbose] > │ method0() │
00:07:40 #21725 [Verbose] > │ │
00:07:40 #21726 [Verbose] > │ struct (3.0, 0.0, 4.0) │
00:07:40 #21727 [Verbose] > │ │
00:07:40 #21728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:40 #21729 [Verbose] >
00:07:40 #21730 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:40 #21731 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:40 #21732 [Verbose] > │ ### ^* │
00:07:40 #21733 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:40 #21734 [Verbose] >
00:07:40 #21735 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:40 #21736 [Verbose] > inl (^*) v c =
00:07:40 #21737 [Verbose] > (*^) c v
00:07:40 #21738 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1291-9169-9bc6c31f2c2f\main.spi
00:07:40 #21739 [Verbose] >
00:07:40 #21740 [Verbose] > ╭─[ 264.33ms - stdout ]────────────────────────────────────────────────────────╮
00:07:40 #21741 [Verbose] > │ () │
00:07:40 #21742 [Verbose] > │ │
00:07:40 #21743 [Verbose] > │ │
00:07:40 #21744 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:40 #21745 [Verbose] >
00:07:40 #21746 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:40 #21747 [Verbose] > // // test
00:07:40 #21748 [Verbose] >
00:07:40 #21749 [Verbose] > vec 1 2 3 ^* 5
00:07:40 #21750 [Verbose] > |> _assert_eq (vec 5 10 15)
00:07:41 #21751 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1319-1911-1a358669d134\main.spi
00:07:41 #21752 [Verbose] >
00:07:41 #21753 [Verbose] > ╭─[ 216.35ms - stdout ]────────────────────────────────────────────────────────╮
00:07:41 #21754 [Verbose] > │ let rec method0 () : unit = │
00:07:41 #21755 [Verbose] > │ let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}" │
00:07:41 #21756 [Verbose] > │ System.Console.WriteLine v0 │
00:07:41 #21757 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} / │
00:07:41 #21758 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}" │
00:07:41 #21759 [Verbose] > │ () │
00:07:41 #21760 [Verbose] > │ method0() │
00:07:41 #21761 [Verbose] > │ │
00:07:41 #21762 [Verbose] > │ struct (5.0, 10.0, 15.0) │
00:07:41 #21763 [Verbose] > │ │
00:07:41 #21764 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:41 #21765 [Verbose] >
00:07:41 #21766 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:41 #21767 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:41 #21768 [Verbose] > │ ### ^/ │
00:07:41 #21769 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:41 #21770 [Verbose] >
00:07:41 #21771 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:41 #21772 [Verbose] > inl (^/) { x y z } c =
00:07:41 #21773 [Verbose] > vec (x / c) (y / c) (z / c)
00:07:41 #21774 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1341-4144-4ad111c652bf\main.spi
00:07:41 #21775 [Verbose] >
00:07:41 #21776 [Verbose] > ╭─[ 280.58ms - stdout ]────────────────────────────────────────────────────────╮
00:07:41 #21777 [Verbose] > │ () │
00:07:41 #21778 [Verbose] > │ │
00:07:41 #21779 [Verbose] > │ │
00:07:41 #21780 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:41 #21781 [Verbose] >
00:07:41 #21782 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:41 #21783 [Verbose] > // // test
00:07:41 #21784 [Verbose] >
00:07:41 #21785 [Verbose] > vec 1 2 3 ^/ 5
00:07:41 #21786 [Verbose] > |> _assert_eq (vec 0.2 0.4 0.6)
00:07:41 #21787 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1369-6972-6ed5bd07031e\main.spi
00:07:41 #21788 [Verbose] >
00:07:41 #21789 [Verbose] > ╭─[ 276.03ms - stdout ]────────────────────────────────────────────────────────╮
00:07:41 #21790 [Verbose] > │ let rec method0 () : unit = │
00:07:41 #21791 [Verbose] > │ let v0 : string = $"%A{struct (0.2, 0.4, 0.6)}" │
00:07:41 #21792 [Verbose] > │ System.Console.WriteLine v0 │
00:07:41 #21793 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (0.2, 0.4, 0.6)} / │
00:07:41 #21794 [Verbose] > │ expected: %A{struct (0.2, 0.4, 0.6)}" │
00:07:41 #21795 [Verbose] > │ () │
00:07:41 #21796 [Verbose] > │ method0() │
00:07:41 #21797 [Verbose] > │ │
00:07:41 #21798 [Verbose] > │ struct (0.2, 0.4, 0.6) │
00:07:41 #21799 [Verbose] > │ │
00:07:41 #21800 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:41 #21801 [Verbose] >
00:07:41 #21802 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:41 #21803 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:41 #21804 [Verbose] > │ ### negate_vec │
00:07:41 #21805 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:41 #21806 [Verbose] >
00:07:41 #21807 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:41 #21808 [Verbose] > inl negate_vec v =
00:07:41 #21809 [Verbose] > v ^* -1
00:07:41 #21810 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1398-9814-976874ea9d88\main.spi
00:07:41 #21811 [Verbose] >
00:07:41 #21812 [Verbose] > ╭─[ 260.73ms - stdout ]────────────────────────────────────────────────────────╮
00:07:41 #21813 [Verbose] > │ () │
00:07:41 #21814 [Verbose] > │ │
00:07:41 #21815 [Verbose] > │ │
00:07:41 #21816 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:41 #21817 [Verbose] >
00:07:41 #21818 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:41 #21819 [Verbose] > // // test
00:07:41 #21820 [Verbose] >
00:07:41 #21821 [Verbose] > vec 1 2 3
00:07:41 #21822 [Verbose] > |> negate_vec
00:07:41 #21823 [Verbose] > |> _assert_eq (vec -1 -2 -3)
00:07:42 #21824 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1424-2429-2151023398b1\main.spi
00:07:42 #21825 [Verbose] >
00:07:42 #21826 [Verbose] > ╭─[ 242.99ms - stdout ]────────────────────────────────────────────────────────╮
00:07:42 #21827 [Verbose] > │ let rec method0 () : unit = │
00:07:42 #21828 [Verbose] > │ let v0 : string = $"%A{struct (-1.0, -2.0, -3.0)}" │
00:07:42 #21829 [Verbose] > │ System.Console.WriteLine v0 │
00:07:42 #21830 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (-1.0, -2.0, -3.0)} / │
00:07:42 #21831 [Verbose] > │ expected: %A{struct (-1.0, -2.0, -3.0)}" │
00:07:42 #21832 [Verbose] > │ () │
00:07:42 #21833 [Verbose] > │ method0() │
00:07:42 #21834 [Verbose] > │ │
00:07:42 #21835 [Verbose] > │ struct (-1.0, -2.0, -3.0) │
00:07:42 #21836 [Verbose] > │ │
00:07:42 #21837 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:42 #21838 [Verbose] >
00:07:42 #21839 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:42 #21840 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:42 #21841 [Verbose] > │ ### ^-^ │
00:07:42 #21842 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:42 #21843 [Verbose] >
00:07:42 #21844 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:42 #21845 [Verbose] > inl (^-^) a b =
00:07:42 #21846 [Verbose] > a ^+^ (negate_vec b)
00:07:42 #21847 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1449-4957-4252283faf1c\main.spi
00:07:42 #21848 [Verbose] >
00:07:42 #21849 [Verbose] > ╭─[ 293.13ms - stdout ]────────────────────────────────────────────────────────╮
00:07:42 #21850 [Verbose] > │ () │
00:07:42 #21851 [Verbose] > │ │
00:07:42 #21852 [Verbose] > │ │
00:07:42 #21853 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:42 #21854 [Verbose] >
00:07:42 #21855 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:42 #21856 [Verbose] > // // test
00:07:42 #21857 [Verbose] >
00:07:42 #21858 [Verbose] > vec 1 2 3 ^-^ vec 4 5 6
00:07:42 #21859 [Verbose] > |> _assert_eq (vec -3 -3 -3)
00:07:42 #21860 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1479-7910-752ef8de65ee\main.spi
00:07:42 #21861 [Verbose] >
00:07:42 #21862 [Verbose] > ╭─[ 274.93ms - stdout ]────────────────────────────────────────────────────────╮
00:07:42 #21863 [Verbose] > │ let rec method0 () : unit = │
00:07:42 #21864 [Verbose] > │ let v0 : string = $"%A{struct (-3.0, -3.0, -3.0)}" │
00:07:42 #21865 [Verbose] > │ System.Console.WriteLine v0 │
00:07:42 #21866 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (-3.0, -3.0, -3.0)} / │
00:07:42 #21867 [Verbose] > │ expected: %A{struct (-3.0, -3.0, -3.0)}" │
00:07:42 #21868 [Verbose] > │ () │
00:07:42 #21869 [Verbose] > │ method0() │
00:07:42 #21870 [Verbose] > │ │
00:07:42 #21871 [Verbose] > │ struct (-3.0, -3.0, -3.0) │
00:07:42 #21872 [Verbose] > │ │
00:07:42 #21873 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:42 #21874 [Verbose] >
00:07:42 #21875 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:42 #21876 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:42 #21877 [Verbose] > │ ### <.> │
00:07:42 #21878 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:42 #21879 [Verbose] >
00:07:42 #21880 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:42 #21881 [Verbose] > inl (<.>) { x = ax y = ay z = az } { x = bx y = by z = bz } =
00:07:42 #21882 [Verbose] > ax * bx + ay * by + az * bz
00:07:42 #21883 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1507-0767-0bcb822b08a2\main.spi
00:07:43 #21884 [Verbose] >
00:07:43 #21885 [Verbose] > ╭─[ 258.94ms - stdout ]────────────────────────────────────────────────────────╮
00:07:43 #21886 [Verbose] > │ () │
00:07:43 #21887 [Verbose] > │ │
00:07:43 #21888 [Verbose] > │ │
00:07:43 #21889 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:43 #21890 [Verbose] >
00:07:43 #21891 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:43 #21892 [Verbose] > // // test
00:07:43 #21893 [Verbose] >
00:07:43 #21894 [Verbose] > vec 1 2 3 <.> vec 4 5 6
00:07:43 #21895 [Verbose] > |> _assert_eq 32
00:07:43 #21896 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1533-3362-3ad7b56f9708\main.spi
00:07:43 #21897 [Verbose] >
00:07:43 #21898 [Verbose] > ╭─[ 272.28ms - stdout ]────────────────────────────────────────────────────────╮
00:07:43 #21899 [Verbose] > │ let rec method0 () : unit = │
00:07:43 #21900 [Verbose] > │ let v0 : string = $"%A{32.0}" │
00:07:43 #21901 [Verbose] > │ System.Console.WriteLine v0 │
00:07:43 #21902 [Verbose] > │ let v1 : string = $"__expect / actual: %A{32.0} / expected: %A{32.0}" │
00:07:43 #21903 [Verbose] > │ () │
00:07:43 #21904 [Verbose] > │ method0() │
00:07:43 #21905 [Verbose] > │ │
00:07:43 #21906 [Verbose] > │ 32.0 │
00:07:43 #21907 [Verbose] > │ │
00:07:43 #21908 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:43 #21909 [Verbose] >
00:07:43 #21910 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:43 #21911 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:43 #21912 [Verbose] > │ ### \>\< │
00:07:43 #21913 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:43 #21914 [Verbose] >
00:07:43 #21915 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:43 #21916 [Verbose] > inl (><) (a : vec) (b : vec) =
00:07:43 #21917 [Verbose] > vec
00:07:43 #21918 [Verbose] > (a.y * b.z - a.z * b.y)
00:07:43 #21919 [Verbose] > (a.z * b.x - a.x * b.z)
00:07:43 #21920 [Verbose] > (a.x * b.y - a.y * b.x)
00:07:43 #21921 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1561-6167-6cbf5b7dfe12\main.spi
00:07:43 #21922 [Verbose] >
00:07:43 #21923 [Verbose] > ╭─[ 298.52ms - stdout ]────────────────────────────────────────────────────────╮
00:07:43 #21924 [Verbose] > │ () │
00:07:43 #21925 [Verbose] > │ │
00:07:43 #21926 [Verbose] > │ │
00:07:43 #21927 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:43 #21928 [Verbose] >
00:07:43 #21929 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:43 #21930 [Verbose] > // // test
00:07:43 #21931 [Verbose] >
00:07:43 #21932 [Verbose] > vec 1 2 3 >< vec 4 5 6
00:07:43 #21933 [Verbose] > |> _assert_eq (vec -3 6 -3)
00:07:43 #21934 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1591-9184-92f576c62fc3\main.spi
00:07:43 #21935 [Verbose] >
00:07:43 #21936 [Verbose] > ╭─[ 221.22ms - stdout ]────────────────────────────────────────────────────────╮
00:07:43 #21937 [Verbose] > │ let rec method0 () : unit = │
00:07:43 #21938 [Verbose] > │ let v0 : string = $"%A{struct (-3.0, 6.0, -3.0)}" │
00:07:43 #21939 [Verbose] > │ System.Console.WriteLine v0 │
00:07:43 #21940 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (-3.0, 6.0, -3.0)} / │
00:07:43 #21941 [Verbose] > │ expected: %A{struct (-3.0, 6.0, -3.0)}" │
00:07:43 #21942 [Verbose] > │ () │
00:07:43 #21943 [Verbose] > │ method0() │
00:07:43 #21944 [Verbose] > │ │
00:07:43 #21945 [Verbose] > │ struct (-3.0, 6.0, -3.0) │
00:07:43 #21946 [Verbose] > │ │
00:07:43 #21947 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:43 #21948 [Verbose] >
00:07:43 #21949 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:43 #21950 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:43 #21951 [Verbose] > │ ### magnitude │
00:07:43 #21952 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:43 #21953 [Verbose] >
00:07:43 #21954 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:43 #21955 [Verbose] > inl magnitude v =
00:07:43 #21956 [Verbose] > v <.> v |> sqrt
00:07:44 #21957 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1614-1460-14893d908202\main.spi
00:07:44 #21958 [Verbose] >
00:07:44 #21959 [Verbose] > ╭─[ 285.83ms - stdout ]────────────────────────────────────────────────────────╮
00:07:44 #21960 [Verbose] > │ () │
00:07:44 #21961 [Verbose] > │ │
00:07:44 #21962 [Verbose] > │ │
00:07:44 #21963 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:44 #21964 [Verbose] >
00:07:44 #21965 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:44 #21966 [Verbose] > // // test
00:07:44 #21967 [Verbose] >
00:07:44 #21968 [Verbose] > vec 1 2 3
00:07:44 #21969 [Verbose] > |> magnitude
00:07:44 #21970 [Verbose] > |> _assert_approx_eq None 3.7416573867739413
00:07:44 #21971 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1643-4349-4824ff50f02f\main.spi
00:07:44 #21972 [Verbose] >
00:07:44 #21973 [Verbose] > ╭─[ 232.98ms - stdout ]────────────────────────────────────────────────────────╮
00:07:44 #21974 [Verbose] > │ let rec method0 () : unit = │
00:07:44 #21975 [Verbose] > │ let v0 : string = $"%A{3.7416573867739413}" │
00:07:44 #21976 [Verbose] > │ System.Console.WriteLine v0 │
00:07:44 #21977 [Verbose] > │ let v1 : string = $"__expect / actual: %A{3.7416573867739413} / │
00:07:44 #21978 [Verbose] > │ expected: %A{3.7416573867739413}" │
00:07:44 #21979 [Verbose] > │ () │
00:07:44 #21980 [Verbose] > │ method0() │
00:07:44 #21981 [Verbose] > │ │
00:07:44 #21982 [Verbose] > │ 3.741657387 │
00:07:44 #21983 [Verbose] > │ │
00:07:44 #21984 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:44 #21985 [Verbose] >
00:07:44 #21986 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:44 #21987 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:44 #21988 [Verbose] > │ ### v1 │
00:07:44 #21989 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:44 #21990 [Verbose] >
00:07:44 #21991 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:44 #21992 [Verbose] > inl v1 t =
00:07:44 #21993 [Verbose] > 2 *^ (t ** 2 *^ i_hat () ^+^ 3 *^ (t ** 3 *^ j_hat () ^+^ t ** 4 *^ k_hat
00:07:44 #21994 [Verbose] > ()))
00:07:44 #21995 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1667-6793-63c76edca65e\main.spi
00:07:44 #21996 [Verbose] >
00:07:44 #21997 [Verbose] > ╭─[ 267.55ms - stdout ]────────────────────────────────────────────────────────╮
00:07:44 #21998 [Verbose] > │ () │
00:07:44 #21999 [Verbose] > │ │
00:07:44 #22000 [Verbose] > │ │
00:07:44 #22001 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:44 #22002 [Verbose] >
00:07:44 #22003 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:44 #22004 [Verbose] > // // test
00:07:44 #22005 [Verbose] >
00:07:44 #22006 [Verbose] > v1 1
00:07:44 #22007 [Verbose] > |> _assert_eq (vec 2 6 6)
00:07:44 #22008 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1694-9485-9fff3c38286d\main.spi
00:07:44 #22009 [Verbose] >
00:07:44 #22010 [Verbose] > ╭─[ 272.59ms - stdout ]────────────────────────────────────────────────────────╮
00:07:44 #22011 [Verbose] > │ let rec method0 () : unit = │
00:07:44 #22012 [Verbose] > │ let v0 : string = $"%A{struct (2.0, 6.0, 6.0)}" │
00:07:44 #22013 [Verbose] > │ System.Console.WriteLine v0 │
00:07:44 #22014 [Verbose] > │ let v1 : string = $"__expect / actual: %A{struct (2.0, 6.0, 6.0)} / │
00:07:44 #22015 [Verbose] > │ expected: %A{struct (2.0, 6.0, 6.0)}" │
00:07:44 #22016 [Verbose] > │ () │
00:07:44 #22017 [Verbose] > │ method0() │
00:07:44 #22018 [Verbose] > │ │
00:07:44 #22019 [Verbose] > │ struct (2.0, 6.0, 6.0) │
00:07:44 #22020 [Verbose] > │ │
00:07:44 #22021 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:44 #22022 [Verbose] >
00:07:44 #22023 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:44 #22024 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:44 #22025 [Verbose] > │ ### vec_derivative │
00:07:44 #22026 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:44 #22027 [Verbose] >
00:07:44 #22028 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:44 #22029 [Verbose] > type vec_derivative = (f64 -> vec) -> f64 -> vec
00:07:44 #22030 [Verbose] >
00:07:44 #22031 [Verbose] > inl vec_derivative dt : vec_derivative =
00:07:44 #22032 [Verbose] > fun v t =>
00:07:44 #22033 [Verbose] > (v (t + dt / 2) ^-^ v (t - dt / 2)) ^/ dt
00:07:45 #22034 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1723-2303-2cf8601e26c2\main.spi
00:07:45 #22035 [Verbose] >
00:07:45 #22036 [Verbose] > ╭─[ 245.32ms - stdout ]────────────────────────────────────────────────────────╮
00:07:45 #22037 [Verbose] > │ () │
00:07:45 #22038 [Verbose] > │ │
00:07:45 #22039 [Verbose] > │ │
00:07:45 #22040 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:45 #22041 [Verbose] >
00:07:45 #22042 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:45 #22043 [Verbose] > // // test
00:07:45 #22044 [Verbose] >
00:07:45 #22045 [Verbose] > vec_derivative 0.01 v1 3 .x
00:07:45 #22046 [Verbose] > |> _assert_approx_eq None (derivative 0.01 (v1 >> fun v => v.x) 3)
00:07:45 #22047 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1747-4765-4bc4947c4bc0\main.spi
00:07:45 #22048 [Verbose] >
00:07:45 #22049 [Verbose] > ╭─[ 349.07ms - stdout ]────────────────────────────────────────────────────────╮
00:07:45 #22050 [Verbose] > │ let rec method0 () : unit = │
00:07:45 #22051 [Verbose] > │ let v0 : string = $"%A{11.999999999999744}" │
00:07:45 #22052 [Verbose] > │ System.Console.WriteLine v0 │
00:07:45 #22053 [Verbose] > │ let v1 : string = $"__expect / actual: %A{11.999999999999744} / │
00:07:45 #22054 [Verbose] > │ expected: %A{11.999999999999744}" │
00:07:45 #22055 [Verbose] > │ () │
00:07:45 #22056 [Verbose] > │ method0() │
00:07:45 #22057 [Verbose] > │ │
00:07:45 #22058 [Verbose] > │ 12.0 │
00:07:45 #22059 [Verbose] > │ │
00:07:45 #22060 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:45 #22061 [Verbose] >
00:07:45 #22062 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:45 #22063 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:45 #22064 [Verbose] > │ ## states_ps │
00:07:45 #22065 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:45 #22066 [Verbose] >
00:07:45 #22067 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:45 #22068 [Verbose] > nominal particle_state =
00:07:45 #22069 [Verbose] > {
00:07:45 #22070 [Verbose] > mass : f64
00:07:45 #22071 [Verbose] > charge : f64
00:07:45 #22072 [Verbose] > time : f64
00:07:45 #22073 [Verbose] > pos_vec : vec
00:07:45 #22074 [Verbose] > velocity : vec
00:07:45 #22075 [Verbose] > }
00:07:45 #22076 [Verbose] >
00:07:45 #22077 [Verbose] > inl default_particle_state () : particle_state =
00:07:45 #22078 [Verbose] > particle_state {
00:07:45 #22079 [Verbose] > mass = 1
00:07:45 #22080 [Verbose] > charge = 0
00:07:45 #22081 [Verbose] > time = 0
00:07:45 #22082 [Verbose] > pos_vec = zero_vec ()
00:07:45 #22083 [Verbose] > velocity = zero_vec ()
00:07:45 #22084 [Verbose] > }
00:07:45 #22085 [Verbose] >
00:07:45 #22086 [Verbose] > type one_body_force = particle_state -> vec
00:07:45 #22087 [Verbose] >
00:07:45 #22088 [Verbose] > nominal d_particle_state =
00:07:45 #22089 [Verbose] > {
00:07:45 #22090 [Verbose] > dmdt : f64
00:07:45 #22091 [Verbose] > dqdt : f64
00:07:45 #22092 [Verbose] > dtdt : f64
00:07:45 #22093 [Verbose] > drdt : vec
00:07:45 #22094 [Verbose] > dvdt : vec
00:07:45 #22095 [Verbose] > }
00:07:45 #22096 [Verbose] >
00:07:45 #22097 [Verbose] > inl newton_second_ps (fs : list one_body_force) (st : particle_state) :
00:07:45 #22098 [Verbose] > d_particle_state =
00:07:45 #22099 [Verbose] > inl f_net = fs |> listm.map (fun f => f st) |> sum_vec
00:07:45 #22100 [Verbose] > d_particle_state {
00:07:45 #22101 [Verbose] > dmdt = 0
00:07:45 #22102 [Verbose] > dqdt = 0
00:07:45 #22103 [Verbose] > dtdt = 1
00:07:45 #22104 [Verbose] > drdt = st.velocity
00:07:45 #22105 [Verbose] > dvdt = f_net ^/ st.mass
00:07:45 #22106 [Verbose] > }
00:07:45 #22107 [Verbose] >
00:07:45 #22108 [Verbose] > inl earth_surface_gravity (st : particle_state) =
00:07:45 #22109 [Verbose] > inl g = 9.80665
00:07:45 #22110 [Verbose] > -st.mass * g *^ k_hat ()
00:07:45 #22111 [Verbose] >
00:07:45 #22112 [Verbose] > inl air_resistance drag rho area (st : particle_state) =
00:07:45 #22113 [Verbose] > -0.5 * drag * rho * area * magnitude st.velocity *^ st.velocity
00:07:45 #22114 [Verbose] >
00:07:45 #22115 [Verbose] > inl euler_cromer_ps dt (deriv : particle_state -> d_particle_state)
00:07:45 #22116 [Verbose] > (particle_state st) =
00:07:45 #22117 [Verbose] > inl dst : d_particle_state = deriv (particle_state st)
00:07:45 #22118 [Verbose] > inl v' = st.velocity ^+^ dst.dvdt ^* dt
00:07:45 #22119 [Verbose] > particle_state { st with
00:07:45 #22120 [Verbose] > time = st.time + dt
00:07:45 #22121 [Verbose] > pos_vec = st.pos_vec ^+^ v' ^* dt
00:07:45 #22122 [Verbose] > velocity = st.velocity ^+^ dst.dvdt ^* dt
00:07:45 #22123 [Verbose] > }
00:07:45 #22124 [Verbose] >
00:07:45 #22125 [Verbose] > instance (+++) d_particle_state = fun (dps : d_particle_state) (dps' :
00:07:45 #22126 [Verbose] > d_particle_state) =>
00:07:45 #22127 [Verbose] > d_particle_state {
00:07:45 #22128 [Verbose] > dmdt = dps.dmdt + dps'.dmdt
00:07:45 #22129 [Verbose] > dqdt = dps.dqdt + dps'.dqdt
00:07:45 #22130 [Verbose] > dtdt = dps.dtdt + dps'.dtdt
00:07:45 #22131 [Verbose] > drdt = dps.drdt ^+^ dps'.drdt
00:07:45 #22132 [Verbose] > dvdt = dps.dvdt ^+^ dps'.dvdt
00:07:45 #22133 [Verbose] > }
00:07:45 #22134 [Verbose] >
00:07:45 #22135 [Verbose] > instance scale d_particle_state = fun w (dps : d_particle_state) =>
00:07:45 #22136 [Verbose] > d_particle_state {
00:07:45 #22137 [Verbose] > dmdt = w * dps.dmdt
00:07:45 #22138 [Verbose] > dqdt = w * dps.dqdt
00:07:45 #22139 [Verbose] > dtdt = w * dps.dtdt
00:07:45 #22140 [Verbose] > drdt = w *^ dps.drdt
00:07:45 #22141 [Verbose] > dvdt = w *^ dps.dvdt
00:07:45 #22142 [Verbose] > }
00:07:45 #22143 [Verbose] >
00:07:45 #22144 [Verbose] > instance shift particle_state = fun dt dps (particle_state st) =>
00:07:45 #22145 [Verbose] > inl (d_particle_state dps) =
00:07:45 #22146 [Verbose] > real
00:07:45 #22147 [Verbose] > match dps with
00:07:45 #22148 [Verbose] > | d_particle_state _ => dps
00:07:45 #22149 [Verbose] > particle_state { st with
00:07:45 #22150 [Verbose] > time = st.time + dps.dtdt * dt
00:07:45 #22151 [Verbose] > pos_vec = st.pos_vec ^+^ dps.drdt ^* dt
00:07:45 #22152 [Verbose] > velocity = st.velocity ^+^ dps.dvdt ^* dt
00:07:45 #22153 [Verbose] > }
00:07:45 #22154 [Verbose] >
00:07:45 #22155 [Verbose] > inl states_ps (method : numerical_method particle_state d_particle_state) : _ ->
00:07:45 #22156 [Verbose] > _ -> i32 -> particle_state =
00:07:45 #22157 [Verbose] > newton_second_ps >> method >> seq.iterate_
00:07:45 #22158 [Verbose] >
00:07:45 #22159 [Verbose] > inl z_ge0 sts =
00:07:45 #22160 [Verbose] > sts
00:07:45 #22161 [Verbose] > |> seq.take_while_ (fun (particle_state st) _ => st.pos_vec.z >= 0)
00:07:45 #22162 [Verbose] >
00:07:45 #22163 [Verbose] > inl trajectory sts =
00:07:45 #22164 [Verbose] > sts |> listm.map (fun (particle_state st) => st.pos_vec.y, st.pos_vec.z)
00:07:45 #22165 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1783-8371-829cde6a7660\main.spi
00:07:45 #22166 [Verbose] >
00:07:45 #22167 [Verbose] > ╭─[ 267.78ms - stdout ]────────────────────────────────────────────────────────╮
00:07:45 #22168 [Verbose] > │ () │
00:07:45 #22169 [Verbose] > │ │
00:07:45 #22170 [Verbose] > │ │
00:07:45 #22171 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:45 #22172 [Verbose] >
00:07:45 #22173 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:45 #22174 [Verbose] > // // test
00:07:45 #22175 [Verbose] >
00:07:45 #22176 [Verbose] > inl update_ps (method : numerical_method particle_state d_particle_state) =
00:07:45 #22177 [Verbose] > newton_second_ps >> method
00:07:45 #22178 [Verbose] >
00:07:45 #22179 [Verbose] > inl position_ps (method : numerical_method particle_state d_particle_state) fs
00:07:45 #22180 [Verbose] > st t =
00:07:45 #22181 [Verbose] > inl states : i32 -> particle_state = states_ps method fs st
00:07:45 #22182 [Verbose] > inl dt = (states 1).time - (states 0).time
00:07:45 #22183 [Verbose] > inl num_steps = t / dt |> math.round |> abs
00:07:45 #22184 [Verbose] > inl st1 = solver' method (newton_second_ps fs) st num_steps
00:07:45 #22185 [Verbose] > st1.pos_vec
00:07:45 #22186 [Verbose] >
00:07:45 #22187 [Verbose] > inl sun_gravity (st : particle_state) : vec =
00:07:45 #22188 [Verbose] > inl big_g = 0.0000000000667408
00:07:45 #22189 [Verbose] > inl sun_mass = 1988480000000000000000000000000
00:07:45 #22190 [Verbose] > -big_g * sun_mass * st.mass *^ st.pos_vec ^/ magnitude st.pos_vec ** 3
00:07:45 #22191 [Verbose] >
00:07:45 #22192 [Verbose] > inl wind_force v_wind drag rho area (st : particle_state) =
00:07:45 #22193 [Verbose] > inl v_rel = st.velocity ^-^ v_wind
00:07:45 #22194 [Verbose] > -0.5 * drag * rho * area * magnitude v_rel *^ v_rel
00:07:45 #22195 [Verbose] >
00:07:45 #22196 [Verbose] > inl rock_state () =
00:07:45 #22197 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:45 #22198 [Verbose] > particle_state { default_particle_state' with
00:07:45 #22199 [Verbose] > mass = 2
00:07:45 #22200 [Verbose] > velocity = vec 3 0 4
00:07:45 #22201 [Verbose] > }
00:07:45 #22202 [Verbose] >
00:07:45 #22203 [Verbose] > inl halley_update dt =
00:07:45 #22204 [Verbose] > update_ps (euler_cromer_ps dt) [[ sun_gravity ]]
00:07:45 #22205 [Verbose] >
00:07:45 #22206 [Verbose] > inl halley_initial () =
00:07:45 #22207 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:45 #22208 [Verbose] > particle_state { default_particle_state' with
00:07:45 #22209 [Verbose] > mass = 220000000000000
00:07:45 #22210 [Verbose] > pos_vec = 87660000000 *^ i_hat ()
00:07:45 #22211 [Verbose] > velocity = 54569 *^ j_hat ()
00:07:45 #22212 [Verbose] > }
00:07:45 #22213 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1810-1039-131031657717\main.spi
00:07:46 #22214 [Verbose] >
00:07:46 #22215 [Verbose] > ╭─[ 279.44ms - stdout ]────────────────────────────────────────────────────────╮
00:07:46 #22216 [Verbose] > │ () │
00:07:46 #22217 [Verbose] > │ │
00:07:46 #22218 [Verbose] > │ │
00:07:46 #22219 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:46 #22220 [Verbose] >
00:07:46 #22221 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:46 #22222 [Verbose] > // // test
00:07:46 #22223 [Verbose] >
00:07:46 #22224 [Verbose] > inl baseball_forces () =
00:07:46 #22225 [Verbose] > inl area = pi * (0.074 / 2) ** 2
00:07:46 #22226 [Verbose] > [[
00:07:46 #22227 [Verbose] > earth_surface_gravity
00:07:46 #22228 [Verbose] > air_resistance 0.3 1.225 area
00:07:46 #22229 [Verbose] > ]]
00:07:46 #22230 [Verbose] >
00:07:46 #22231 [Verbose] > inl baseball_trajectory dt v0 theta_deg =
00:07:46 #22232 [Verbose] > inl theta_rad = theta_deg * pi / 180
00:07:46 #22233 [Verbose] > inl vy0 = v0 * cos theta_rad
00:07:46 #22234 [Verbose] > inl vz0 = v0 * sin theta_rad
00:07:46 #22235 [Verbose] > inl initial_state =
00:07:46 #22236 [Verbose] > particle_state {
00:07:46 #22237 [Verbose] > mass = 0.145
00:07:46 #22238 [Verbose] > charge = 0
00:07:46 #22239 [Verbose] > time = 0
00:07:46 #22240 [Verbose] > pos_vec = zero_vec ()
00:07:46 #22241 [Verbose] > velocity = vec 0 vy0 vz0
00:07:46 #22242 [Verbose] > }
00:07:46 #22243 [Verbose] > states_ps (euler_cromer_ps dt) (baseball_forces ()) initial_state
00:07:46 #22244 [Verbose] > >> Some
00:07:46 #22245 [Verbose] > |> z_ge0
00:07:46 #22246 [Verbose] > |> trajectory
00:07:46 #22247 [Verbose] >
00:07:46 #22248 [Verbose] > inl baseball_range dt v0 theta_deg =
00:07:46 #22249 [Verbose] > baseball_trajectory dt v0 theta_deg
00:07:46 #22250 [Verbose] > |> listm.fold (fun _ (y, _) => y) 0
00:07:46 #22251 [Verbose] >
00:07:46 #22252 [Verbose] > inl x : a _ f64 = am'.init_series 10 80 1
00:07:46 #22253 [Verbose] > inl y = x |> am.map (baseball_range 0.01 45)
00:07:46 #22254 [Verbose] > "range for a baseball hit at 45 m/s",
00:07:46 #22255 [Verbose] > "angle above horizontal (degrees)",
00:07:46 #22256 [Verbose] > "",
00:07:46 #22257 [Verbose] > ;[[ "horizontal range (m)", x, y ]]
00:07:46 #22258 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1838-3855-3297ba116680\main.spi
00:07:47 #22259 [Verbose] >
00:07:47 #22260 [Verbose] > ╭─[ 1.14s - return value ]─────────────────────────────────────────────────────╮
00:07:47 #22261 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:47 #22262 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:47 #22263 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:47 #22264 [Verbose] > │ stroke="none"/> │
00:07:47 #22265 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:47 #22266 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:47 #22267 [Verbose] > │ fill="#FFFFFF"> │
00:07:47 #22268 [Verbose] > │ range for a baseball hit at 45 m/s │
00:07:47 #22269 [Verbose] > │ </text> │
00:07:47 #22270 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="55" y1="424" x2="55" │
00:07:47 #22271 [Verbose] > │ y2="75"/> │
00:07:47 #22272 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:07:47 #22273 [Verbose] > │ y2="75"/> │
00:07:47 #22274 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:47 #22275 [Verbose] > │ y2="75"/> │
00:07:47 #22276 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:07:47 #22277 [Verbose] > │ y2="75"/> │
00:07:47 #22278 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="... │
00:07:47 #22279 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:47 #22280 [Verbose] >
00:07:47 #22281 [Verbose] > ╭─[ 1.15s - stdout ]───────────────────────────────────────────────────────────╮
00:07:47 #22282 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:07:47 #22283 [Verbose] > │ and UH0 = │
00:07:47 #22284 [Verbose] > │ | UH0_0 │
00:07:47 #22285 [Verbose] > │ | UH0_1 of float * float * float * float * float * float * float * float │
00:07:47 #22286 [Verbose] > │ * float * UH0 │
00:07:47 #22287 [Verbose] > │ and UH1 = │
00:07:47 #22288 [Verbose] > │ | UH1_0 │
00:07:47 #22289 [Verbose] > │ | UH1_1 of float * float * UH1 │
00:07:47 #22290 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:07:47 #22291 [Verbose] > │ let v1 : int32 = v0.l0 │
00:07:47 #22292 [Verbose] > │ let v2 : bool = v1 < 71 │
00:07:47 #22293 [Verbose] > │ v2 │
00:07:47 #22294 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool = │
00:07:47 #22295 [Verbose] > │ let v2 : int32 = v1.l0 │
00:07:47 #22296 [Verbose] > │ let v3 : bool = v2 < v0 │
00:07:47 #22297 [Verbose] > │ v3 │
00:07:47 #22298 [Verbose] > │ and method4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:07:47 #22299 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float * │
00:07:47 #22300 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:07:47 #22301 [Verbose] > │ let v10 : bool = v9 <= 0 │
00:07:47 #22302 [Verbose] > │ if v10 then │
00:07:47 #22303 [Verbose] > │ struct (v0, v1, v2, v3, v4, v5, v6, v7, v8) │
00:07:47 #22304 [Verbose] > │ else │
00:07:47 #22305 [Verbose] > │ let v11 : float = v6 * v6 │
00:07:47 #22306 [Verbose] > │ let v12 : float = v7 * v7 │
00:07:47 #22307 [Verbose] > │ let v13 : float = v11 + v12 │
00:07:47 #22308 [Verbose] > │ let v14 : float = v8 * v8 │
00:07:47 #22309 [Verbose] > │ let v15 : float = v13 + v14 │
00:07:47 #22310 [Verbose] > │ let v16 : float = sqrt v15 │
00:07:47 #22311 [Verbose] > │ let v17 : float = -0.0007902794129829633 * v16 │
00:07:47 #22312 [Verbose] > │ let v18 : float = v17 * v6 │
00:07:47 #22313 [Verbose] > │ let v19 : float = v17 * v7 │
00:07:47 #22314 [Verbose] > │ let v20 : float = v17 * v8 │
00:07:47 #22315 [Verbose] > │ let v21 : float = -v1 │
00:07:47 #22316 [Verbose] > │ let v22 : float = v21 * 9.80665 │
00:07:47 #22317 [Verbose] > │ let v23 : float = v22 * 0.0 │
00:07:47 #22318 [Verbose] > │ let v24 : float = v23 + v18 │
00:07:47 #22319 [Verbose] > │ let v25 : float = v23 + v19 │
00:07:47 #22320 [Verbose] > │ let v26 : float = v22 + v20 │
00:07:47 #22321 [Verbose] > │ let v27 : float = v24 / v1 │
00:07:47 #22322 [Verbose] > │ let v28 : float = v25 / v1 │
00:07:47 #22323 [Verbose] > │ let v29 : float = v26 / v1 │
00:07:47 #22324 [Verbose] > │ let v30 : float = 0.01 * v27 │
00:07:47 #22325 [Verbose] > │ let v31 : float = 0.01 * v28 │
00:07:47 #22326 [Verbose] > │ let v32 : float = 0.01 * v29 │
00:07:47 #22327 [Verbose] > │ let v33 : float = v6 + v30 │
00:07:47 #22328 [Verbose] > │ let v34 : float = v7 + v31 │
00:07:47 #22329 [Verbose] > │ let v35 : float = v8 + v32 │
00:07:47 #22330 [Verbose] > │ let v36 : float = v5 + 0.01 │
00:07:47 #22331 [Verbose] > │ let v37 : float = 0.01 * v33 │
00:07:47 #22332 [Verbose] > │ let v38 : float = 0.01 * v34 │
00:07:47 #22333 [Verbose] > │ let v39 : float = 0.01 * v35 │
00:07:47 #22334 [Verbose] > │ let v40 : float = v2 + v37 │
00:07:47 #22335 [Verbose] > │ let v41 : float = v3 + v38 │
00:07:47 #22336 [Verbose] > │ let v42 : float = v4 + v39 │
00:07:47 #22337 [Verbose] > │ let v43 : int32 = v9 - 1 │
00:07:47 #22338 [Verbose] > │ method4(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43) │
00:07:47 #22339 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 = │
00:07:47 #22340 [Verbose] > │ match v0 with │
00:07:47 #22341 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:47 #22342 [Verbose] > │ let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:07:47 #22343 [Verbose] > │ method5(v11, v12) │
00:07:47 #22344 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:47 #22345 [Verbose] > │ v1 │
00:07:47 #22346 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 = │
00:07:47 #22347 [Verbose] > │ let v4 : float = 0.0 │
00:07:47 #22348 [Verbose] > │ let v5 : float = 0.145 │
00:07:47 #22349 [Verbose] > │ let v6 : float = 0.0 │
00:07:47 #22350 [Verbose] > │ let v7 : float = 0.0 │
00:07:47 #22351 [Verbose] > │ let v8 : float = 0.0 │
00:07:47 #22352 [Verbose] > │ let v9 : float = 0.0 │
00:07:47 #22353 [Verbose] > │ let v10 : float = 0.0 │
00:07:47 #22354 [Verbose] > │ let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 : │
00:07:47 #22355 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method4(v4, v5, │
00:07:47 #22356 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3) │
00:07:47 #22357 [Verbose] > │ let v20 : bool = v15 >= 0.0 │
00:07:47 #22358 [Verbose] > │ if v20 then │
00:07:47 #22359 [Verbose] > │ let v21 : UH0 = UH0_1(v11, v12, v13, v14, v15, v16, v17, v18, v19, │
00:07:47 #22360 [Verbose] > │ v2) │
00:07:47 #22361 [Verbose] > │ let v22 : int32 = v3 + 1 │
00:07:47 #22362 [Verbose] > │ method3(v0, v1, v21, v22) │
00:07:47 #22363 [Verbose] > │ else │
00:07:47 #22364 [Verbose] > │ let v24 : UH0 = UH0_0 │
00:07:47 #22365 [Verbose] > │ method5(v2, v24) │
00:07:47 #22366 [Verbose] > │ and method6 (v0 : UH0, v1 : UH1) : UH1 = │
00:07:47 #22367 [Verbose] > │ match v0 with │
00:07:47 #22368 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:47 #22369 [Verbose] > │ let v12 : UH1 = method6(v11, v1) │
00:07:47 #22370 [Verbose] > │ UH1_1(v5, v6, v12) │
00:07:47 #22371 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:47 #22372 [Verbose] > │ v1 │
00:07:47 #22373 [Verbose] > │ and method7 (v0 : UH1, v1 : float) : float = │
00:07:47 #22374 [Verbose] > │ match v0 with │
00:07:47 #22375 [Verbose] > │ | UH1_1(v2, v3, v4) -> (* Cons *) │
00:07:47 #22376 [Verbose] > │ method7(v4, v2) │
00:07:47 #22377 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:07:47 #22378 [Verbose] > │ v1 │
00:07:47 #22379 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:47 #22380 [Verbose] > │ []) * (float [])) [])) = │
00:07:47 #22381 [Verbose] > │ let v0 : (float []) = Array.zeroCreate<float> (71) │
00:07:47 #22382 [Verbose] > │ let v1 : Mut0 = {l0 = 0} : Mut0 │
00:07:47 #22383 [Verbose] > │ while method1(v1) do │
00:07:47 #22384 [Verbose] > │ let v3 : int32 = v1.l0 │
00:07:47 #22385 [Verbose] > │ let v4 : float = float v3 │
00:07:47 #22386 [Verbose] > │ let v5 : float = 10.0 + v4 │
00:07:47 #22387 [Verbose] > │ v0.[int v3] <- v5 │
00:07:47 #22388 [Verbose] > │ let v6 : int32 = v3 + 1 │
00:07:47 #22389 [Verbose] > │ v1.l0 <- v6 │
00:07:47 #22390 [Verbose] > │ () │
00:07:47 #22391 [Verbose] > │ let v7 : int32 = v0.Length │
00:07:47 #22392 [Verbose] > │ let v8 : (float []) = Array.zeroCreate<float> (v7) │
00:07:47 #22393 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:07:47 #22394 [Verbose] > │ while method2(v7, v9) do │
00:07:47 #22395 [Verbose] > │ let v11 : int32 = v9.l0 │
00:07:47 #22396 [Verbose] > │ let v12 : float = v0.[int v11] │
00:07:47 #22397 [Verbose] > │ let v13 : float = v12 * 3.141592653589793 │
00:07:47 #22398 [Verbose] > │ let v14 : float = v13 / 180.0 │
00:07:47 #22399 [Verbose] > │ let v15 : float = cos v14 │
00:07:47 #22400 [Verbose] > │ let v16 : float = 45.0 * v15 │
00:07:47 #22401 [Verbose] > │ let v17 : float = sin v14 │
00:07:47 #22402 [Verbose] > │ let v18 : float = 45.0 * v17 │
00:07:47 #22403 [Verbose] > │ let v19 : UH0 = UH0_0 │
00:07:47 #22404 [Verbose] > │ let v20 : int32 = 0 │
00:07:47 #22405 [Verbose] > │ let v21 : UH0 = method3(v16, v18, v19, v20) │
00:07:47 #22406 [Verbose] > │ let v22 : UH1 = UH1_0 │
00:07:47 #22407 [Verbose] > │ let v23 : UH1 = method6(v21, v22) │
00:07:47 #22408 [Verbose] > │ let v24 : float = 0.0 │
00:07:47 #22409 [Verbose] > │ let v25 : float = method7(v23, v24) │
00:07:47 #22410 [Verbose] > │ v8.[int v11] <- v25 │
00:07:47 #22411 [Verbose] > │ let v26 : int32 = v11 + 1 │
00:07:47 #22412 [Verbose] > │ v9.l0 <- v26 │
00:07:47 #22413 [Verbose] > │ () │
00:07:47 #22414 [Verbose] > │ let v27 : string = "horizontal range (m)" │
00:07:47 #22415 [Verbose] > │ let v28 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:47 #22416 [Verbose] > │ (v27, v0, v8)|] │
00:07:47 #22417 [Verbose] > │ let v29 : string = "range for a baseball hit at 45 m/s" │
00:07:47 #22418 [Verbose] > │ let v30 : string = "angle above horizontal (degrees)" │
00:07:47 #22419 [Verbose] > │ let v31 : string = "" │
00:07:47 #22420 [Verbose] > │ struct (v29, v30, v31, v28) │
00:07:47 #22421 [Verbose] > │ method0() │
00:07:47 #22422 [Verbose] > │ │
00:07:47 #22423 [Verbose] > │ │
00:07:47 #22424 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:47 #22425 [Verbose] >
00:07:47 #22426 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:47 #22427 [Verbose] > // // test
00:07:47 #22428 [Verbose] >
00:07:47 #22429 [Verbose] > inl best_angle (min, max) =
00:07:47 #22430 [Verbose] > let rec loop theta_deg (best_range, best_theta_deg) =
00:07:47 #22431 [Verbose] > if theta_deg > max
00:07:47 #22432 [Verbose] > then best_range, best_theta_deg
00:07:47 #22433 [Verbose] > else
00:07:47 #22434 [Verbose] > inl range = baseball_range 0.01 45 theta_deg
00:07:47 #22435 [Verbose] > loop
00:07:47 #22436 [Verbose] > (theta_deg + 1)
00:07:47 #22437 [Verbose] > (if range > best_range
00:07:47 #22438 [Verbose] > then range, theta_deg
00:07:47 #22439 [Verbose] > else best_range, best_theta_deg)
00:07:47 #22440 [Verbose] > loop min (0f64, min)
00:07:47 #22441 [Verbose] >
00:07:47 #22442 [Verbose] > best_angle (30f64, 60f64)
00:07:47 #22443 [Verbose] > |> _assert_eq (116.77499158246208, 41)
00:07:47 #22444 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1961-6153-6059132c9594\main.spi
00:07:48 #22445 [Verbose] >
00:07:48 #22446 [Verbose] > ╭─[ 828.28ms - stdout ]────────────────────────────────────────────────────────╮
00:07:48 #22447 [Verbose] > │ type UH0 = │
00:07:48 #22448 [Verbose] > │ | UH0_0 │
00:07:48 #22449 [Verbose] > │ | UH0_1 of float * float * float * float * float * float * float * float │
00:07:48 #22450 [Verbose] > │ * float * UH0 │
00:07:48 #22451 [Verbose] > │ and UH1 = │
00:07:48 #22452 [Verbose] > │ | UH1_0 │
00:07:48 #22453 [Verbose] > │ | UH1_1 of float * float * UH1 │
00:07:48 #22454 [Verbose] > │ let rec method3 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │
00:07:48 #22455 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float │
00:07:48 #22456 [Verbose] > │ * float * float * float * float * float * float * float * float) = │
00:07:48 #22457 [Verbose] > │ let v10 : bool = v9 <= 0 │
00:07:48 #22458 [Verbose] > │ if v10 then │
00:07:48 #22459 [Verbose] > │ struct (v0, v1, v2, v3, v4, v5, v6, v7, v8) │
00:07:48 #22460 [Verbose] > │ else │
00:07:48 #22461 [Verbose] > │ let v11 : float = v6 * v6 │
00:07:48 #22462 [Verbose] > │ let v12 : float = v7 * v7 │
00:07:48 #22463 [Verbose] > │ let v13 : float = v11 + v12 │
00:07:48 #22464 [Verbose] > │ let v14 : float = v8 * v8 │
00:07:48 #22465 [Verbose] > │ let v15 : float = v13 + v14 │
00:07:48 #22466 [Verbose] > │ let v16 : float = sqrt v15 │
00:07:48 #22467 [Verbose] > │ let v17 : float = -0.0007902794129829633 * v16 │
00:07:48 #22468 [Verbose] > │ let v18 : float = v17 * v6 │
00:07:48 #22469 [Verbose] > │ let v19 : float = v17 * v7 │
00:07:48 #22470 [Verbose] > │ let v20 : float = v17 * v8 │
00:07:48 #22471 [Verbose] > │ let v21 : float = -v1 │
00:07:48 #22472 [Verbose] > │ let v22 : float = v21 * 9.80665 │
00:07:48 #22473 [Verbose] > │ let v23 : float = v22 * 0.0 │
00:07:48 #22474 [Verbose] > │ let v24 : float = v23 + v18 │
00:07:48 #22475 [Verbose] > │ let v25 : float = v23 + v19 │
00:07:48 #22476 [Verbose] > │ let v26 : float = v22 + v20 │
00:07:48 #22477 [Verbose] > │ let v27 : float = v24 / v1 │
00:07:48 #22478 [Verbose] > │ let v28 : float = v25 / v1 │
00:07:48 #22479 [Verbose] > │ let v29 : float = v26 / v1 │
00:07:48 #22480 [Verbose] > │ let v30 : float = 0.01 * v27 │
00:07:48 #22481 [Verbose] > │ let v31 : float = 0.01 * v28 │
00:07:48 #22482 [Verbose] > │ let v32 : float = 0.01 * v29 │
00:07:48 #22483 [Verbose] > │ let v33 : float = v6 + v30 │
00:07:48 #22484 [Verbose] > │ let v34 : float = v7 + v31 │
00:07:48 #22485 [Verbose] > │ let v35 : float = v8 + v32 │
00:07:48 #22486 [Verbose] > │ let v36 : float = v5 + 0.01 │
00:07:48 #22487 [Verbose] > │ let v37 : float = 0.01 * v33 │
00:07:48 #22488 [Verbose] > │ let v38 : float = 0.01 * v34 │
00:07:48 #22489 [Verbose] > │ let v39 : float = 0.01 * v35 │
00:07:48 #22490 [Verbose] > │ let v40 : float = v2 + v37 │
00:07:48 #22491 [Verbose] > │ let v41 : float = v3 + v38 │
00:07:48 #22492 [Verbose] > │ let v42 : float = v4 + v39 │
00:07:48 #22493 [Verbose] > │ let v43 : int32 = v9 - 1 │
00:07:48 #22494 [Verbose] > │ method3(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43) │
00:07:48 #22495 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 = │
00:07:48 #22496 [Verbose] > │ match v0 with │
00:07:48 #22497 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:48 #22498 [Verbose] > │ let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:07:48 #22499 [Verbose] > │ method4(v11, v12) │
00:07:48 #22500 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:48 #22501 [Verbose] > │ v1 │
00:07:48 #22502 [Verbose] > │ and method2 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 = │
00:07:48 #22503 [Verbose] > │ let v4 : float = 0.0 │
00:07:48 #22504 [Verbose] > │ let v5 : float = 0.145 │
00:07:48 #22505 [Verbose] > │ let v6 : float = 0.0 │
00:07:48 #22506 [Verbose] > │ let v7 : float = 0.0 │
00:07:48 #22507 [Verbose] > │ let v8 : float = 0.0 │
00:07:48 #22508 [Verbose] > │ let v9 : float = 0.0 │
00:07:48 #22509 [Verbose] > │ let v10 : float = 0.0 │
00:07:48 #22510 [Verbose] > │ let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 : │
00:07:48 #22511 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method3(v4, v5, │
00:07:48 #22512 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3) │
00:07:48 #22513 [Verbose] > │ let v20 : bool = v15 >= 0.0 │
00:07:48 #22514 [Verbose] > │ if v20 then │
00:07:48 #22515 [Verbose] > │ let v21 : UH0 = UH0_1(v11, v12, v13, v14, v15, v16, v17, v18, v19, │
00:07:48 #22516 [Verbose] > │ v2) │
00:07:48 #22517 [Verbose] > │ let v22 : int32 = v3 + 1 │
00:07:48 #22518 [Verbose] > │ method2(v0, v1, v21, v22) │
00:07:48 #22519 [Verbose] > │ else │
00:07:48 #22520 [Verbose] > │ let v24 : UH0 = UH0_0 │
00:07:48 #22521 [Verbose] > │ method4(v2, v24) │
00:07:48 #22522 [Verbose] > │ and method5 (v0 : UH0, v1 : UH1) : UH1 = │
00:07:48 #22523 [Verbose] > │ match v0 with │
00:07:48 #22524 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:48 #22525 [Verbose] > │ let v12 : UH1 = method5(v11, v1) │
00:07:48 #22526 [Verbose] > │ UH1_1(v5, v6, v12) │
00:07:48 #22527 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:48 #22528 [Verbose] > │ v1 │
00:07:48 #22529 [Verbose] > │ and method6 (v0 : UH1, v1 : float) : float = │
00:07:48 #22530 [Verbose] > │ match v0 with │
00:07:48 #22531 [Verbose] > │ | UH1_1(v2, v3, v4) -> (* Cons *) │
00:07:48 #22532 [Verbose] > │ method6(v4, v2) │
00:07:48 #22533 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:07:48 #22534 [Verbose] > │ v1 │
00:07:48 #22535 [Verbose] > │ and method1 (v0 : float, v1 : float, v2 : float) : struct (float * float) = │
00:07:48 #22536 [Verbose] > │ let v3 : bool = v0 > 60.0 │
00:07:48 #22537 [Verbose] > │ if v3 then │
00:07:48 #22538 [Verbose] > │ struct (v2, v1) │
00:07:48 #22539 [Verbose] > │ else │
00:07:48 #22540 [Verbose] > │ let v4 : float = v0 * 3.141592653589793 │
00:07:48 #22541 [Verbose] > │ let v5 : float = v4 / 180.0 │
00:07:48 #22542 [Verbose] > │ let v6 : float = cos v5 │
00:07:48 #22543 [Verbose] > │ let v7 : float = 45.0 * v6 │
00:07:48 #22544 [Verbose] > │ let v8 : float = sin v5 │
00:07:48 #22545 [Verbose] > │ let v9 : float = 45.0 * v8 │
00:07:48 #22546 [Verbose] > │ let v10 : UH0 = UH0_0 │
00:07:48 #22547 [Verbose] > │ let v11 : int32 = 0 │
00:07:48 #22548 [Verbose] > │ let v12 : UH0 = method2(v7, v9, v10, v11) │
00:07:48 #22549 [Verbose] > │ let v13 : UH1 = UH1_0 │
00:07:48 #22550 [Verbose] > │ let v14 : UH1 = method5(v12, v13) │
00:07:48 #22551 [Verbose] > │ let v15 : float = 0.0 │
00:07:48 #22552 [Verbose] > │ let v16 : float = method6(v14, v15) │
00:07:48 #22553 [Verbose] > │ let v17 : float = v0 + 1.0 │
00:07:48 #22554 [Verbose] > │ let v18 : bool = v16 > v2 │
00:07:48 #22555 [Verbose] > │ let struct (v19 : float, v20 : float) = │
00:07:48 #22556 [Verbose] > │ if v18 then │
00:07:48 #22557 [Verbose] > │ struct (v16, v0) │
00:07:48 #22558 [Verbose] > │ else │
00:07:48 #22559 [Verbose] > │ struct (v2, v1) │
00:07:48 #22560 [Verbose] > │ method1(v17, v20, v19) │
00:07:48 #22561 [Verbose] > │ and method7 (v0 : bool) : bool = │
00:07:48 #22562 [Verbose] > │ v0 │
00:07:48 #22563 [Verbose] > │ and method0 () : unit = │
00:07:48 #22564 [Verbose] > │ let v0 : float = 30.0 │
00:07:48 #22565 [Verbose] > │ let v1 : float = 0.0 │
00:07:48 #22566 [Verbose] > │ let v2 : float = 30.0 │
00:07:48 #22567 [Verbose] > │ let struct (v3 : float, v4 : float) = method1(v0, v2, v1) │
00:07:48 #22568 [Verbose] > │ let v5 : string = $"%A{struct (v3, v4)}" │
00:07:48 #22569 [Verbose] > │ System.Console.WriteLine v5 │
00:07:48 #22570 [Verbose] > │ let v6 : bool = v3 = 116.77499158246208 │
00:07:48 #22571 [Verbose] > │ let v8 : bool = │
00:07:48 #22572 [Verbose] > │ if v6 then │
00:07:48 #22573 [Verbose] > │ let v7 : bool = v4 = 41.0 │
00:07:48 #22574 [Verbose] > │ v7 │
00:07:48 #22575 [Verbose] > │ else │
00:07:48 #22576 [Verbose] > │ false │
00:07:48 #22577 [Verbose] > │ let v10 : bool = │
00:07:48 #22578 [Verbose] > │ if v8 then │
00:07:48 #22579 [Verbose] > │ true │
00:07:48 #22580 [Verbose] > │ else │
00:07:48 #22581 [Verbose] > │ method7(v8) │
00:07:48 #22582 [Verbose] > │ let v11 : string = $"__expect / actual: %A{struct (v3, v4)} / expected: │
00:07:48 #22583 [Verbose] > │ %A{struct (116.77499158246208, 41.0)}" │
00:07:48 #22584 [Verbose] > │ let v12 : bool = v10 = false │
00:07:48 #22585 [Verbose] > │ if v12 then │
00:07:48 #22586 [Verbose] > │ failwith<unit> v11 │
00:07:48 #22587 [Verbose] > │ method0() │
00:07:48 #22588 [Verbose] > │ │
00:07:48 #22589 [Verbose] > │ struct (116.7749916, 41.0) │
00:07:48 #22590 [Verbose] > │ │
00:07:48 #22591 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:48 #22592 [Verbose] >
00:07:48 #22593 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:48 #22594 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:48 #22595 [Verbose] > │ ## relativity_ps │
00:07:48 #22596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:48 #22597 [Verbose] >
00:07:48 #22598 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:48 #22599 [Verbose] > inl relativity_ps fs (st : particle_state) =
00:07:48 #22600 [Verbose] > inl f_net = fs |> listm.map (fun f => f st) |> sum_vec
00:07:48 #22601 [Verbose] > inl c = 299792458
00:07:48 #22602 [Verbose] > inl u = st.velocity ^/ c
00:07:48 #22603 [Verbose] > inl acc = sqrt (1 - (u <.> u)) *^ (f_net ^-^ (f_net <.> u) *^ u) ^/ st.mass
00:07:48 #22604 [Verbose] > d_particle_state {
00:07:48 #22605 [Verbose] > dmdt = 0
00:07:48 #22606 [Verbose] > dqdt = 0
00:07:48 #22607 [Verbose] > dtdt = 1
00:07:48 #22608 [Verbose] > drdt = st.velocity
00:07:48 #22609 [Verbose] > dvdt = acc
00:07:48 #22610 [Verbose] > }
00:07:48 #22611 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2050-5049-59722124d80b\main.spi
00:07:48 #22612 [Verbose] >
00:07:48 #22613 [Verbose] > ╭─[ 285.51ms - stdout ]────────────────────────────────────────────────────────╮
00:07:48 #22614 [Verbose] > │ () │
00:07:48 #22615 [Verbose] > │ │
00:07:48 #22616 [Verbose] > │ │
00:07:48 #22617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:48 #22618 [Verbose] >
00:07:48 #22619 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:48 #22620 [Verbose] > // // test
00:07:48 #22621 [Verbose] >
00:07:48 #22622 [Verbose] > inl year = 365.25 * 24 * 60 * 60
00:07:48 #22623 [Verbose] > inl c = 299792458
00:07:48 #22624 [Verbose] > inl ~method = runge_kutta_4 100000
00:07:48 #22625 [Verbose] > inl forces = [[ fun _ => 10 *^ i_hat () ]]
00:07:48 #22626 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:48 #22627 [Verbose] > inl initial_state =
00:07:48 #22628 [Verbose] > particle_state { default_particle_state' with
00:07:48 #22629 [Verbose] > mass = 1
00:07:48 #22630 [Verbose] > }
00:07:48 #22631 [Verbose] >
00:07:48 #22632 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state
00:07:48 #22633 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state
00:07:48 #22634 [Verbose] >
00:07:48 #22635 [Verbose] > inl newton_x, newton_y =
00:07:48 #22636 [Verbose] > newton_states
00:07:48 #22637 [Verbose] > >> Some
00:07:48 #22638 [Verbose] > |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)
00:07:48 #22639 [Verbose] > |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)
00:07:48 #22640 [Verbose] > |> listm'.unzip
00:07:48 #22641 [Verbose] >
00:07:48 #22642 [Verbose] > inl _, relativity_y =
00:07:48 #22643 [Verbose] > relativity_states
00:07:48 #22644 [Verbose] > >> Some
00:07:48 #22645 [Verbose] > |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)
00:07:48 #22646 [Verbose] > |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)
00:07:48 #22647 [Verbose] > |> listm'.unzip
00:07:48 #22648 [Verbose] >
00:07:48 #22649 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray
00:07:48 #22650 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray
00:07:48 #22651 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray
00:07:48 #22652 [Verbose] >
00:07:48 #22653 [Verbose] > "response to a constant force",
00:07:48 #22654 [Verbose] > "time (years)",
00:07:48 #22655 [Verbose] > "velocity (multiples of c)",
00:07:48 #22656 [Verbose] > ;[[
00:07:48 #22657 [Verbose] > "newtonian", newton_x, newton_y
00:07:48 #22658 [Verbose] > "relativistic", newton_x, relativity_y
00:07:48 #22659 [Verbose] > ]]
00:07:48 #22660 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2079-7929-704e6694504b\main.spi
00:07:49 #22661 [Verbose] >
00:07:49 #22662 [Verbose] > ╭─[ 753.98ms - return value ]──────────────────────────────────────────────────╮
00:07:49 #22663 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:49 #22664 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:49 #22665 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:49 #22666 [Verbose] > │ stroke="none"/> │
00:07:49 #22667 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:49 #22668 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:49 #22669 [Verbose] > │ fill="#FFFFFF"> │
00:07:49 #22670 [Verbose] > │ response to a constant force │
00:07:49 #22671 [Verbose] > │ </text> │
00:07:49 #22672 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:07:49 #22673 [Verbose] > │ y2="75"/> │
00:07:49 #22674 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:49 #22675 [Verbose] > │ y2="75"/> │
00:07:49 #22676 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:07:49 #22677 [Verbose] > │ y2="75"/> │
00:07:49 #22678 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:07:49 #22679 [Verbose] > │ y2="75"/> │
00:07:49 #22680 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=... │
00:07:49 #22681 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:49 #22682 [Verbose] >
00:07:49 #22683 [Verbose] > ╭─[ 769.63ms - stdout ]────────────────────────────────────────────────────────╮
00:07:49 #22684 [Verbose] > │ type UH0 = │
00:07:49 #22685 [Verbose] > │ | UH0_0 │
00:07:49 #22686 [Verbose] > │ | UH0_1 of float * float * float * float * float * float * float * float │
00:07:49 #22687 [Verbose] > │ * float * UH0 │
00:07:49 #22688 [Verbose] > │ and UH1 = │
00:07:49 #22689 [Verbose] > │ | UH1_0 │
00:07:49 #22690 [Verbose] > │ | UH1_1 of float * float * UH1 │
00:07:49 #22691 [Verbose] > │ and UH2 = │
00:07:49 #22692 [Verbose] > │ | UH2_0 │
00:07:49 #22693 [Verbose] > │ | UH2_1 of float * UH2 │
00:07:49 #22694 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float * │
00:07:49 #22695 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:07:49 #22696 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3 │
00:07:49 #22697 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : │
00:07:49 #22698 [Verbose] > │ float) : struct (float * float * float * float * float * float * float * │
00:07:49 #22699 [Verbose] > │ float * float) = │
00:07:49 #22700 [Verbose] > │ let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 : │
00:07:49 #22701 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1, │
00:07:49 #22702 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9) │
00:07:49 #22703 [Verbose] > │ let v19 : float = v15 * 50000.0 │
00:07:49 #22704 [Verbose] > │ let v20 : float = v6 + v19 │
00:07:49 #22705 [Verbose] > │ let v21 : float = 50000.0 * v12 │
00:07:49 #22706 [Verbose] > │ let v22 : float = 50000.0 * v13 │
00:07:49 #22707 [Verbose] > │ let v23 : float = 50000.0 * v14 │
00:07:49 #22708 [Verbose] > │ let v24 : float = v3 + v21 │
00:07:49 #22709 [Verbose] > │ let v25 : float = v4 + v22 │
00:07:49 #22710 [Verbose] > │ let v26 : float = v5 + v23 │
00:07:49 #22711 [Verbose] > │ let v27 : float = 50000.0 * v16 │
00:07:49 #22712 [Verbose] > │ let v28 : float = 50000.0 * v17 │
00:07:49 #22713 [Verbose] > │ let v29 : float = 50000.0 * v18 │
00:07:49 #22714 [Verbose] > │ let v30 : float = v7 + v27 │
00:07:49 #22715 [Verbose] > │ let v31 : float = v8 + v28 │
00:07:49 #22716 [Verbose] > │ let v32 : float = v9 + v29 │
00:07:49 #22717 [Verbose] > │ let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 : │
00:07:49 #22718 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1, │
00:07:49 #22719 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32) │
00:07:49 #22720 [Verbose] > │ let v42 : float = v38 * 50000.0 │
00:07:49 #22721 [Verbose] > │ let v43 : float = v6 + v42 │
00:07:49 #22722 [Verbose] > │ let v44 : float = 50000.0 * v35 │
00:07:49 #22723 [Verbose] > │ let v45 : float = 50000.0 * v36 │
00:07:49 #22724 [Verbose] > │ let v46 : float = 50000.0 * v37 │
00:07:49 #22725 [Verbose] > │ let v47 : float = v3 + v44 │
00:07:49 #22726 [Verbose] > │ let v48 : float = v4 + v45 │
00:07:49 #22727 [Verbose] > │ let v49 : float = v5 + v46 │
00:07:49 #22728 [Verbose] > │ let v50 : float = 50000.0 * v39 │
00:07:49 #22729 [Verbose] > │ let v51 : float = 50000.0 * v40 │
00:07:49 #22730 [Verbose] > │ let v52 : float = 50000.0 * v41 │
00:07:49 #22731 [Verbose] > │ let v53 : float = v7 + v50 │
00:07:49 #22732 [Verbose] > │ let v54 : float = v8 + v51 │
00:07:49 #22733 [Verbose] > │ let v55 : float = v9 + v52 │
00:07:49 #22734 [Verbose] > │ let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 : │
00:07:49 #22735 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1, │
00:07:49 #22736 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55) │
00:07:49 #22737 [Verbose] > │ let v65 : float = v61 * 100000.0 │
00:07:49 #22738 [Verbose] > │ let v66 : float = v6 + v65 │
00:07:49 #22739 [Verbose] > │ let v67 : float = 100000.0 * v58 │
00:07:49 #22740 [Verbose] > │ let v68 : float = 100000.0 * v59 │
00:07:49 #22741 [Verbose] > │ let v69 : float = 100000.0 * v60 │
00:07:49 #22742 [Verbose] > │ let v70 : float = v3 + v67 │
00:07:49 #22743 [Verbose] > │ let v71 : float = v4 + v68 │
00:07:49 #22744 [Verbose] > │ let v72 : float = v5 + v69 │
00:07:49 #22745 [Verbose] > │ let v73 : float = 100000.0 * v62 │
00:07:49 #22746 [Verbose] > │ let v74 : float = 100000.0 * v63 │
00:07:49 #22747 [Verbose] > │ let v75 : float = 100000.0 * v64 │
00:07:49 #22748 [Verbose] > │ let v76 : float = v7 + v73 │
00:07:49 #22749 [Verbose] > │ let v77 : float = v8 + v74 │
00:07:49 #22750 [Verbose] > │ let v78 : float = v9 + v75 │
00:07:49 #22751 [Verbose] > │ let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 : │
00:07:49 #22752 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1, │
00:07:49 #22753 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78) │
00:07:49 #22754 [Verbose] > │ let v88 : float = v10 + v33 │
00:07:49 #22755 [Verbose] > │ let v89 : float = v11 + v34 │
00:07:49 #22756 [Verbose] > │ let v90 : float = v15 + v38 │
00:07:49 #22757 [Verbose] > │ let v91 : float = v12 + v35 │
00:07:49 #22758 [Verbose] > │ let v92 : float = v13 + v36 │
00:07:49 #22759 [Verbose] > │ let v93 : float = v14 + v37 │
00:07:49 #22760 [Verbose] > │ let v94 : float = v16 + v39 │
00:07:49 #22761 [Verbose] > │ let v95 : float = v17 + v40 │
00:07:49 #22762 [Verbose] > │ let v96 : float = v18 + v41 │
00:07:49 #22763 [Verbose] > │ let v97 : float = v88 + v33 │
00:07:49 #22764 [Verbose] > │ let v98 : float = v89 + v34 │
00:07:49 #22765 [Verbose] > │ let v99 : float = v90 + v38 │
00:07:49 #22766 [Verbose] > │ let v100 : float = v91 + v35 │
00:07:49 #22767 [Verbose] > │ let v101 : float = v92 + v36 │
00:07:49 #22768 [Verbose] > │ let v102 : float = v93 + v37 │
00:07:49 #22769 [Verbose] > │ let v103 : float = v94 + v39 │
00:07:49 #22770 [Verbose] > │ let v104 : float = v95 + v40 │
00:07:49 #22771 [Verbose] > │ let v105 : float = v96 + v41 │
00:07:49 #22772 [Verbose] > │ let v106 : float = v97 + v56 │
00:07:49 #22773 [Verbose] > │ let v107 : float = v98 + v57 │
00:07:49 #22774 [Verbose] > │ let v108 : float = v99 + v61 │
00:07:49 #22775 [Verbose] > │ let v109 : float = v100 + v58 │
00:07:49 #22776 [Verbose] > │ let v110 : float = v101 + v59 │
00:07:49 #22777 [Verbose] > │ let v111 : float = v102 + v60 │
00:07:49 #22778 [Verbose] > │ let v112 : float = v103 + v62 │
00:07:49 #22779 [Verbose] > │ let v113 : float = v104 + v63 │
00:07:49 #22780 [Verbose] > │ let v114 : float = v105 + v64 │
00:07:49 #22781 [Verbose] > │ let v115 : float = v106 + v56 │
00:07:49 #22782 [Verbose] > │ let v116 : float = v107 + v57 │
00:07:49 #22783 [Verbose] > │ let v117 : float = v108 + v61 │
00:07:49 #22784 [Verbose] > │ let v118 : float = v109 + v58 │
00:07:49 #22785 [Verbose] > │ let v119 : float = v110 + v59 │
00:07:49 #22786 [Verbose] > │ let v120 : float = v111 + v60 │
00:07:49 #22787 [Verbose] > │ let v121 : float = v112 + v62 │
00:07:49 #22788 [Verbose] > │ let v122 : float = v113 + v63 │
00:07:49 #22789 [Verbose] > │ let v123 : float = v114 + v64 │
00:07:49 #22790 [Verbose] > │ let v124 : float = v115 + v79 │
00:07:49 #22791 [Verbose] > │ let v125 : float = v116 + v80 │
00:07:49 #22792 [Verbose] > │ let v126 : float = v117 + v84 │
00:07:49 #22793 [Verbose] > │ let v127 : float = v118 + v81 │
00:07:49 #22794 [Verbose] > │ let v128 : float = v119 + v82 │
00:07:49 #22795 [Verbose] > │ let v129 : float = v120 + v83 │
00:07:49 #22796 [Verbose] > │ let v130 : float = v121 + v85 │
00:07:49 #22797 [Verbose] > │ let v131 : float = v122 + v86 │
00:07:49 #22798 [Verbose] > │ let v132 : float = v123 + v87 │
00:07:49 #22799 [Verbose] > │ let v133 : float = v126 * 16666.666666666668 │
00:07:49 #22800 [Verbose] > │ let v134 : float = v6 + v133 │
00:07:49 #22801 [Verbose] > │ let v135 : float = 16666.666666666668 * v127 │
00:07:49 #22802 [Verbose] > │ let v136 : float = 16666.666666666668 * v128 │
00:07:49 #22803 [Verbose] > │ let v137 : float = 16666.666666666668 * v129 │
00:07:49 #22804 [Verbose] > │ let v138 : float = v3 + v135 │
00:07:49 #22805 [Verbose] > │ let v139 : float = v4 + v136 │
00:07:49 #22806 [Verbose] > │ let v140 : float = v5 + v137 │
00:07:49 #22807 [Verbose] > │ let v141 : float = 16666.666666666668 * v130 │
00:07:49 #22808 [Verbose] > │ let v142 : float = 16666.666666666668 * v131 │
00:07:49 #22809 [Verbose] > │ let v143 : float = 16666.666666666668 * v132 │
00:07:49 #22810 [Verbose] > │ let v144 : float = v7 + v141 │
00:07:49 #22811 [Verbose] > │ let v145 : float = v8 + v142 │
00:07:49 #22812 [Verbose] > │ let v146 : float = v9 + v143 │
00:07:49 #22813 [Verbose] > │ struct (v1, v2, v138, v139, v140, v134, v144, v145, v146) │
00:07:49 #22814 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │
00:07:49 #22815 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float * │
00:07:49 #22816 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float * │
00:07:49 #22817 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float * │
00:07:49 #22818 [Verbose] > │ float * float * float * float * float * float)) = │
00:07:49 #22819 [Verbose] > │ closure1(v0) │
00:07:49 #22820 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:07:49 #22821 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:07:49 #22822 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:07:49 #22823 [Verbose] > │ let v9 : float = 10.0 / v1 │
00:07:49 #22824 [Verbose] > │ let v10 : float = 0.0 / v1 │
00:07:49 #22825 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v9, v10, v10) │
00:07:49 #22826 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:07:49 #22827 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:07:49 #22828 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:07:49 #22829 [Verbose] > │ let v9 : float = v6 / 299792458.0 │
00:07:49 #22830 [Verbose] > │ let v10 : float = v7 / 299792458.0 │
00:07:49 #22831 [Verbose] > │ let v11 : float = v8 / 299792458.0 │
00:07:49 #22832 [Verbose] > │ let v12 : float = v9 * v9 │
00:07:49 #22833 [Verbose] > │ let v13 : float = v10 * v10 │
00:07:49 #22834 [Verbose] > │ let v14 : float = v12 + v13 │
00:07:49 #22835 [Verbose] > │ let v15 : float = v11 * v11 │
00:07:49 #22836 [Verbose] > │ let v16 : float = v14 + v15 │
00:07:49 #22837 [Verbose] > │ let v17 : float = 1.0 - v16 │
00:07:49 #22838 [Verbose] > │ let v18 : float = sqrt v17 │
00:07:49 #22839 [Verbose] > │ let v19 : float = 10.0 * v9 │
00:07:49 #22840 [Verbose] > │ let v20 : float = 0.0 * v10 │
00:07:49 #22841 [Verbose] > │ let v21 : float = v19 + v20 │
00:07:49 #22842 [Verbose] > │ let v22 : float = 0.0 * v11 │
00:07:49 #22843 [Verbose] > │ let v23 : float = v21 + v22 │
00:07:49 #22844 [Verbose] > │ let v24 : float = v23 * v9 │
00:07:49 #22845 [Verbose] > │ let v25 : float = v23 * v10 │
00:07:49 #22846 [Verbose] > │ let v26 : float = v23 * v11 │
00:07:49 #22847 [Verbose] > │ let v27 : float = -1.0 * v24 │
00:07:49 #22848 [Verbose] > │ let v28 : float = -1.0 * v25 │
00:07:49 #22849 [Verbose] > │ let v29 : float = -1.0 * v26 │
00:07:49 #22850 [Verbose] > │ let v30 : float = 10.0 + v27 │
00:07:49 #22851 [Verbose] > │ let v31 : float = v18 * v30 │
00:07:49 #22852 [Verbose] > │ let v32 : float = v18 * v28 │
00:07:49 #22853 [Verbose] > │ let v33 : float = v18 * v29 │
00:07:49 #22854 [Verbose] > │ let v34 : float = v31 / v1 │
00:07:49 #22855 [Verbose] > │ let v35 : float = v32 / v1 │
00:07:49 #22856 [Verbose] > │ let v36 : float = v33 / v1 │
00:07:49 #22857 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v34, v35, v36) │
00:07:49 #22858 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float * │
00:07:49 #22859 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:07:49 #22860 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 : │
00:07:49 #22861 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 : │
00:07:49 #22862 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float * │
00:07:49 #22863 [Verbose] > │ float * float) = │
00:07:49 #22864 [Verbose] > │ let v11 : bool = v10 <= 0 │
00:07:49 #22865 [Verbose] > │ if v11 then │
00:07:49 #22866 [Verbose] > │ struct (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:07:49 #22867 [Verbose] > │ else │
00:07:49 #22868 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:07:49 #22869 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct │
00:07:49 #22870 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:07:49 #22871 [Verbose] > │ let v21 : int32 = v10 - 1 │
00:07:49 #22872 [Verbose] > │ method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) │
00:07:49 #22873 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 = │
00:07:49 #22874 [Verbose] > │ match v0 with │
00:07:49 #22875 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:49 #22876 [Verbose] > │ let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:07:49 #22877 [Verbose] > │ method3(v11, v12) │
00:07:49 #22878 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:49 #22879 [Verbose] > │ v1 │
00:07:49 #22880 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float * │
00:07:49 #22881 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:07:49 #22882 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:07:49 #22883 [Verbose] > │ let v3 : float = 0.0 │
00:07:49 #22884 [Verbose] > │ let v4 : float = 1.0 │
00:07:49 #22885 [Verbose] > │ let v5 : float = 0.0 │
00:07:49 #22886 [Verbose] > │ let v6 : float = 0.0 │
00:07:49 #22887 [Verbose] > │ let v7 : float = 0.0 │
00:07:49 #22888 [Verbose] > │ let v8 : float = 0.0 │
00:07:49 #22889 [Verbose] > │ let v9 : float = 0.0 │
00:07:49 #22890 [Verbose] > │ let v10 : float = 0.0 │
00:07:49 #22891 [Verbose] > │ let v11 : float = 0.0 │
00:07:49 #22892 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:07:49 #22893 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:07:49 #22894 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:07:49 #22895 [Verbose] > │ let v21 : bool = v17 <= 31557600.0 │
00:07:49 #22896 [Verbose] > │ if v21 then │
00:07:49 #22897 [Verbose] > │ let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:07:49 #22898 [Verbose] > │ v1) │
00:07:49 #22899 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:07:49 #22900 [Verbose] > │ method1(v0, v22, v23) │
00:07:49 #22901 [Verbose] > │ else │
00:07:49 #22902 [Verbose] > │ let v25 : UH0 = UH0_0 │
00:07:49 #22903 [Verbose] > │ method3(v1, v25) │
00:07:49 #22904 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 = │
00:07:49 #22905 [Verbose] > │ match v0 with │
00:07:49 #22906 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:49 #22907 [Verbose] > │ let v12 : UH1 = method4(v11, v1) │
00:07:49 #22908 [Verbose] > │ let v13 : float = v7 / 31557600.0 │
00:07:49 #22909 [Verbose] > │ let v14 : float = v8 / 299792458.0 │
00:07:49 #22910 [Verbose] > │ UH1_1(v13, v14, v12) │
00:07:49 #22911 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:49 #22912 [Verbose] > │ v1 │
00:07:49 #22913 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) = │
00:07:49 #22914 [Verbose] > │ match v0 with │
00:07:49 #22915 [Verbose] > │ | UH1_1(v3, v4, v5) -> (* Cons *) │
00:07:49 #22916 [Verbose] > │ let v6 : UH2 = UH2_1(v3, v1) │
00:07:49 #22917 [Verbose] > │ let v7 : UH2 = UH2_1(v4, v2) │
00:07:49 #22918 [Verbose] > │ method5(v5, v6, v7) │
00:07:49 #22919 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:07:49 #22920 [Verbose] > │ struct (v1, v2) │
00:07:49 #22921 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 = │
00:07:49 #22922 [Verbose] > │ match v0 with │
00:07:49 #22923 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:07:49 #22924 [Verbose] > │ let v4 : UH2 = UH2_1(v2, v1) │
00:07:49 #22925 [Verbose] > │ method6(v3, v4) │
00:07:49 #22926 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:49 #22927 [Verbose] > │ v1 │
00:07:49 #22928 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float * │
00:07:49 #22929 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:07:49 #22930 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:07:49 #22931 [Verbose] > │ let v3 : float = 0.0 │
00:07:49 #22932 [Verbose] > │ let v4 : float = 1.0 │
00:07:49 #22933 [Verbose] > │ let v5 : float = 0.0 │
00:07:49 #22934 [Verbose] > │ let v6 : float = 0.0 │
00:07:49 #22935 [Verbose] > │ let v7 : float = 0.0 │
00:07:49 #22936 [Verbose] > │ let v8 : float = 0.0 │
00:07:49 #22937 [Verbose] > │ let v9 : float = 0.0 │
00:07:49 #22938 [Verbose] > │ let v10 : float = 0.0 │
00:07:49 #22939 [Verbose] > │ let v11 : float = 0.0 │
00:07:49 #22940 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:07:49 #22941 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:07:49 #22942 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:07:49 #22943 [Verbose] > │ let v21 : bool = v17 <= 31557600.0 │
00:07:49 #22944 [Verbose] > │ if v21 then │
00:07:49 #22945 [Verbose] > │ let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:07:49 #22946 [Verbose] > │ v1) │
00:07:49 #22947 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:07:49 #22948 [Verbose] > │ method7(v0, v22, v23) │
00:07:49 #22949 [Verbose] > │ else │
00:07:49 #22950 [Verbose] > │ let v25 : UH0 = UH0_0 │
00:07:49 #22951 [Verbose] > │ method3(v1, v25) │
00:07:49 #22952 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 = │
00:07:49 #22953 [Verbose] > │ match v0 with │
00:07:49 #22954 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:49 #22955 [Verbose] > │ let v12 : UH1 = method8(v11, v1) │
00:07:49 #22956 [Verbose] > │ let v13 : float = v7 / 31557600.0 │
00:07:49 #22957 [Verbose] > │ let v14 : float = v8 / 299792458.0 │
00:07:49 #22958 [Verbose] > │ UH1_1(v13, v14, v12) │
00:07:49 #22959 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:49 #22960 [Verbose] > │ v1 │
00:07:49 #22961 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 = │
00:07:49 #22962 [Verbose] > │ match v0 with │
00:07:49 #22963 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:07:49 #22964 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:07:49 #22965 [Verbose] > │ method10(v3, v4) │
00:07:49 #22966 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:49 #22967 [Verbose] > │ v1 │
00:07:49 #22968 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 = │
00:07:49 #22969 [Verbose] > │ match v1 with │
00:07:49 #22970 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:07:49 #22971 [Verbose] > │ v0.[int v2] <- v3 │
00:07:49 #22972 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:07:49 #22973 [Verbose] > │ method11(v0, v4, v5) │
00:07:49 #22974 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:49 #22975 [Verbose] > │ v2 │
00:07:49 #22976 [Verbose] > │ and method9 (v0 : UH2) : (float []) = │
00:07:49 #22977 [Verbose] > │ let v1 : int32 = 0 │
00:07:49 #22978 [Verbose] > │ let v2 : int32 = method10(v0, v1) │
00:07:49 #22979 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:07:49 #22980 [Verbose] > │ let v4 : int32 = 0 │
00:07:49 #22981 [Verbose] > │ let v5 : int32 = method11(v3, v0, v4) │
00:07:49 #22982 [Verbose] > │ v3 │
00:07:49 #22983 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:49 #22984 [Verbose] > │ []) * (float [])) [])) = │
00:07:49 #22985 [Verbose] > │ let v0 : ((struct (float * float * float * float * float * float * float │
00:07:49 #22986 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:49 #22987 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float * │
00:07:49 #22988 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:07:49 #22989 [Verbose] > │ float * float * float * float * float))) = closure0() │
00:07:49 #22990 [Verbose] > │ let v1 : (struct (float * float * float * float * float * float * float │
00:07:49 #22991 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:49 #22992 [Verbose] > │ float * float * float)) = closure2() │
00:07:49 #22993 [Verbose] > │ let v2 : (struct (float * float * float * float * float * float * float │
00:07:49 #22994 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:49 #22995 [Verbose] > │ float * float * float)) = v0 v1 │
00:07:49 #22996 [Verbose] > │ let v3 : (struct (float * float * float * float * float * float * float │
00:07:49 #22997 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:49 #22998 [Verbose] > │ float * float * float)) = closure3() │
00:07:49 #22999 [Verbose] > │ let v4 : (struct (float * float * float * float * float * float * float │
00:07:49 #23000 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:49 #23001 [Verbose] > │ float * float * float)) = v0 v3 │
00:07:49 #23002 [Verbose] > │ let v5 : UH0 = UH0_0 │
00:07:49 #23003 [Verbose] > │ let v6 : int32 = 0 │
00:07:49 #23004 [Verbose] > │ let v7 : UH0 = method1(v2, v5, v6) │
00:07:49 #23005 [Verbose] > │ let v8 : UH1 = UH1_0 │
00:07:49 #23006 [Verbose] > │ let v9 : UH1 = method4(v7, v8) │
00:07:49 #23007 [Verbose] > │ let v10 : UH2 = UH2_0 │
00:07:49 #23008 [Verbose] > │ let v11 : UH2 = UH2_0 │
00:07:49 #23009 [Verbose] > │ let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11) │
00:07:49 #23010 [Verbose] > │ let v14 : UH2 = UH2_0 │
00:07:49 #23011 [Verbose] > │ let v15 : UH2 = method6(v12, v14) │
00:07:49 #23012 [Verbose] > │ let v16 : UH2 = UH2_0 │
00:07:49 #23013 [Verbose] > │ let v17 : UH2 = method6(v13, v16) │
00:07:49 #23014 [Verbose] > │ let v18 : UH0 = UH0_0 │
00:07:49 #23015 [Verbose] > │ let v19 : int32 = 0 │
00:07:49 #23016 [Verbose] > │ let v20 : UH0 = method7(v4, v18, v19) │
00:07:49 #23017 [Verbose] > │ let v21 : UH1 = UH1_0 │
00:07:49 #23018 [Verbose] > │ let v22 : UH1 = method8(v20, v21) │
00:07:49 #23019 [Verbose] > │ let v23 : UH2 = UH2_0 │
00:07:49 #23020 [Verbose] > │ let v24 : UH2 = UH2_0 │
00:07:49 #23021 [Verbose] > │ let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24) │
00:07:49 #23022 [Verbose] > │ let v27 : UH2 = UH2_0 │
00:07:49 #23023 [Verbose] > │ let v28 : UH2 = method6(v25, v27) │
00:07:49 #23024 [Verbose] > │ let v29 : UH2 = UH2_0 │
00:07:49 #23025 [Verbose] > │ let v30 : UH2 = method6(v26, v29) │
00:07:49 #23026 [Verbose] > │ let v31 : (float []) = method9(v15) │
00:07:49 #23027 [Verbose] > │ let v32 : (float []) = method9(v17) │
00:07:49 #23028 [Verbose] > │ let v33 : (float []) = method9(v30) │
00:07:49 #23029 [Verbose] > │ let v34 : string = "newtonian" │
00:07:49 #23030 [Verbose] > │ let v35 : string = "relativistic" │
00:07:49 #23031 [Verbose] > │ let v36 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:49 #23032 [Verbose] > │ (v34, v31, v32); struct (v35, v31, v33)|] │
00:07:49 #23033 [Verbose] > │ let v37 : string = "response to a constant force" │
00:07:49 #23034 [Verbose] > │ let v38 : string = "time (years)" │
00:07:49 #23035 [Verbose] > │ let v39 : string = "velocity (multiples of c)" │
00:07:49 #23036 [Verbose] > │ struct (v37, v38, v39, v36) │
00:07:49 #23037 [Verbose] > │ method0() │
00:07:49 #23038 [Verbose] > │ │
00:07:49 #23039 [Verbose] > │ │
00:07:49 #23040 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:49 #23041 [Verbose] >
00:07:49 #23042 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:49 #23043 [Verbose] > inl uniform_lorentz_force v_e v_b (st : particle_state) =
00:07:49 #23044 [Verbose] > st.charge *^ (v_e ^+^ st.velocity >< v_b)
00:07:49 #23045 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2176-7604-73d338611edb\main.spi
00:07:49 #23046 [Verbose] >
00:07:49 #23047 [Verbose] > ╭─[ 287.49ms - stdout ]────────────────────────────────────────────────────────╮
00:07:49 #23048 [Verbose] > │ () │
00:07:49 #23049 [Verbose] > │ │
00:07:49 #23050 [Verbose] > │ │
00:07:49 #23051 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:49 #23052 [Verbose] >
00:07:49 #23053 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:49 #23054 [Verbose] > // // test
00:07:49 #23055 [Verbose] >
00:07:49 #23056 [Verbose] > inl c : f64 = 299792458
00:07:49 #23057 [Verbose] > inl ~method = runge_kutta_4 0.000000001
00:07:49 #23058 [Verbose] > inl forces = [[ uniform_lorentz_force (zero_vec ()) (k_hat ()) ]]
00:07:49 #23059 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:49 #23060 [Verbose] > inl initial_state =
00:07:49 #23061 [Verbose] > particle_state { default_particle_state' with
00:07:49 #23062 [Verbose] > mass = 0.000000000000000000000000001672621898
00:07:49 #23063 [Verbose] > charge = 0.0000000000000000001602176621
00:07:49 #23064 [Verbose] > velocity = 0.8 *^ (c *^ j_hat ())
00:07:49 #23065 [Verbose] > }
00:07:49 #23066 [Verbose] >
00:07:49 #23067 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state
00:07:49 #23068 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state
00:07:49 #23069 [Verbose] >
00:07:49 #23070 [Verbose] > inl newton_x, newton_y =
00:07:49 #23071 [Verbose] > newton_states
00:07:49 #23072 [Verbose] > >> Some
00:07:49 #23073 [Verbose] > |> seq.take_while_ (fun (particle_state st) i => i < 100i32)
00:07:49 #23074 [Verbose] > |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)
00:07:49 #23075 [Verbose] > |> listm'.unzip
00:07:49 #23076 [Verbose] >
00:07:49 #23077 [Verbose] > inl relativity_x, relativity_y =
00:07:49 #23078 [Verbose] > relativity_states
00:07:49 #23079 [Verbose] > >> Some
00:07:49 #23080 [Verbose] > |> seq.take_while_ (fun (particle_state st) i => i < 165i32)
00:07:49 #23081 [Verbose] > |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)
00:07:49 #23082 [Verbose] > |> listm'.unzip
00:07:49 #23083 [Verbose] >
00:07:49 #23084 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray
00:07:49 #23085 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray
00:07:49 #23086 [Verbose] >
00:07:49 #23087 [Verbose] > inl relativity_x : a i32 _ = relativity_x |> listm.toArray
00:07:49 #23088 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray
00:07:49 #23089 [Verbose] >
00:07:49 #23090 [Verbose] > "proton in a 1-t magnetic field",
00:07:49 #23091 [Verbose] > "x (m)",
00:07:49 #23092 [Verbose] > "y (m)",
00:07:49 #23093 [Verbose] > ;[[
00:07:49 #23094 [Verbose] > "newtonian", newton_x, newton_y
00:07:49 #23095 [Verbose] > "relativistic", relativity_x, relativity_y
00:07:49 #23096 [Verbose] > ]]
00:07:49 #23097 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2205-0525-0a71af35de20\main.spi
00:07:50 #23098 [Verbose] >
00:07:50 #23099 [Verbose] > ╭─[ 646.55ms - return value ]──────────────────────────────────────────────────╮
00:07:50 #23100 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:50 #23101 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:50 #23102 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:50 #23103 [Verbose] > │ stroke="none"/> │
00:07:50 #23104 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:50 #23105 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:50 #23106 [Verbose] > │ fill="#FFFFFF"> │
00:07:50 #23107 [Verbose] > │ proton in a 1-t magnetic field │
00:07:50 #23108 [Verbose] > │ </text> │
00:07:50 #23109 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="58" y1="424" x2="58" │
00:07:50 #23110 [Verbose] > │ y2="75"/> │
00:07:50 #23111 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:50 #23112 [Verbose] > │ y2="75"/> │
00:07:50 #23113 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="81" y1="424" x2="81" │
00:07:50 #23114 [Verbose] > │ y2="75"/> │
00:07:50 #23115 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │
00:07:50 #23116 [Verbose] > │ y2="75"/> │
00:07:50 #23117 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x... │
00:07:50 #23118 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:50 #23119 [Verbose] >
00:07:50 #23120 [Verbose] > ╭─[ 658.62ms - stdout ]────────────────────────────────────────────────────────╮
00:07:50 #23121 [Verbose] > │ type UH0 = │
00:07:50 #23122 [Verbose] > │ | UH0_0 │
00:07:50 #23123 [Verbose] > │ | UH0_1 of float * float * float * float * float * float * float * float │
00:07:50 #23124 [Verbose] > │ * float * UH0 │
00:07:50 #23125 [Verbose] > │ and UH1 = │
00:07:50 #23126 [Verbose] > │ | UH1_0 │
00:07:50 #23127 [Verbose] > │ | UH1_1 of float * float * UH1 │
00:07:50 #23128 [Verbose] > │ and UH2 = │
00:07:50 #23129 [Verbose] > │ | UH2_0 │
00:07:50 #23130 [Verbose] > │ | UH2_1 of float * UH2 │
00:07:50 #23131 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float * │
00:07:50 #23132 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:07:50 #23133 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3 │
00:07:50 #23134 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : │
00:07:50 #23135 [Verbose] > │ float) : struct (float * float * float * float * float * float * float * │
00:07:50 #23136 [Verbose] > │ float * float) = │
00:07:50 #23137 [Verbose] > │ let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 : │
00:07:50 #23138 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1, │
00:07:50 #23139 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9) │
00:07:50 #23140 [Verbose] > │ let v19 : float = v15 * 5E-10 │
00:07:50 #23141 [Verbose] > │ let v20 : float = v6 + v19 │
00:07:50 #23142 [Verbose] > │ let v21 : float = 5E-10 * v12 │
00:07:50 #23143 [Verbose] > │ let v22 : float = 5E-10 * v13 │
00:07:50 #23144 [Verbose] > │ let v23 : float = 5E-10 * v14 │
00:07:50 #23145 [Verbose] > │ let v24 : float = v3 + v21 │
00:07:50 #23146 [Verbose] > │ let v25 : float = v4 + v22 │
00:07:50 #23147 [Verbose] > │ let v26 : float = v5 + v23 │
00:07:50 #23148 [Verbose] > │ let v27 : float = 5E-10 * v16 │
00:07:50 #23149 [Verbose] > │ let v28 : float = 5E-10 * v17 │
00:07:50 #23150 [Verbose] > │ let v29 : float = 5E-10 * v18 │
00:07:50 #23151 [Verbose] > │ let v30 : float = v7 + v27 │
00:07:50 #23152 [Verbose] > │ let v31 : float = v8 + v28 │
00:07:50 #23153 [Verbose] > │ let v32 : float = v9 + v29 │
00:07:50 #23154 [Verbose] > │ let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 : │
00:07:50 #23155 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1, │
00:07:50 #23156 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32) │
00:07:50 #23157 [Verbose] > │ let v42 : float = v38 * 5E-10 │
00:07:50 #23158 [Verbose] > │ let v43 : float = v6 + v42 │
00:07:50 #23159 [Verbose] > │ let v44 : float = 5E-10 * v35 │
00:07:50 #23160 [Verbose] > │ let v45 : float = 5E-10 * v36 │
00:07:50 #23161 [Verbose] > │ let v46 : float = 5E-10 * v37 │
00:07:50 #23162 [Verbose] > │ let v47 : float = v3 + v44 │
00:07:50 #23163 [Verbose] > │ let v48 : float = v4 + v45 │
00:07:50 #23164 [Verbose] > │ let v49 : float = v5 + v46 │
00:07:50 #23165 [Verbose] > │ let v50 : float = 5E-10 * v39 │
00:07:50 #23166 [Verbose] > │ let v51 : float = 5E-10 * v40 │
00:07:50 #23167 [Verbose] > │ let v52 : float = 5E-10 * v41 │
00:07:50 #23168 [Verbose] > │ let v53 : float = v7 + v50 │
00:07:50 #23169 [Verbose] > │ let v54 : float = v8 + v51 │
00:07:50 #23170 [Verbose] > │ let v55 : float = v9 + v52 │
00:07:50 #23171 [Verbose] > │ let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 : │
00:07:50 #23172 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1, │
00:07:50 #23173 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55) │
00:07:50 #23174 [Verbose] > │ let v65 : float = v61 * 1E-09 │
00:07:50 #23175 [Verbose] > │ let v66 : float = v6 + v65 │
00:07:50 #23176 [Verbose] > │ let v67 : float = 1E-09 * v58 │
00:07:50 #23177 [Verbose] > │ let v68 : float = 1E-09 * v59 │
00:07:50 #23178 [Verbose] > │ let v69 : float = 1E-09 * v60 │
00:07:50 #23179 [Verbose] > │ let v70 : float = v3 + v67 │
00:07:50 #23180 [Verbose] > │ let v71 : float = v4 + v68 │
00:07:50 #23181 [Verbose] > │ let v72 : float = v5 + v69 │
00:07:50 #23182 [Verbose] > │ let v73 : float = 1E-09 * v62 │
00:07:50 #23183 [Verbose] > │ let v74 : float = 1E-09 * v63 │
00:07:50 #23184 [Verbose] > │ let v75 : float = 1E-09 * v64 │
00:07:50 #23185 [Verbose] > │ let v76 : float = v7 + v73 │
00:07:50 #23186 [Verbose] > │ let v77 : float = v8 + v74 │
00:07:50 #23187 [Verbose] > │ let v78 : float = v9 + v75 │
00:07:50 #23188 [Verbose] > │ let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 : │
00:07:50 #23189 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1, │
00:07:50 #23190 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78) │
00:07:50 #23191 [Verbose] > │ let v88 : float = v10 + v33 │
00:07:50 #23192 [Verbose] > │ let v89 : float = v11 + v34 │
00:07:50 #23193 [Verbose] > │ let v90 : float = v15 + v38 │
00:07:50 #23194 [Verbose] > │ let v91 : float = v12 + v35 │
00:07:50 #23195 [Verbose] > │ let v92 : float = v13 + v36 │
00:07:50 #23196 [Verbose] > │ let v93 : float = v14 + v37 │
00:07:50 #23197 [Verbose] > │ let v94 : float = v16 + v39 │
00:07:50 #23198 [Verbose] > │ let v95 : float = v17 + v40 │
00:07:50 #23199 [Verbose] > │ let v96 : float = v18 + v41 │
00:07:50 #23200 [Verbose] > │ let v97 : float = v88 + v33 │
00:07:50 #23201 [Verbose] > │ let v98 : float = v89 + v34 │
00:07:50 #23202 [Verbose] > │ let v99 : float = v90 + v38 │
00:07:50 #23203 [Verbose] > │ let v100 : float = v91 + v35 │
00:07:50 #23204 [Verbose] > │ let v101 : float = v92 + v36 │
00:07:50 #23205 [Verbose] > │ let v102 : float = v93 + v37 │
00:07:50 #23206 [Verbose] > │ let v103 : float = v94 + v39 │
00:07:50 #23207 [Verbose] > │ let v104 : float = v95 + v40 │
00:07:50 #23208 [Verbose] > │ let v105 : float = v96 + v41 │
00:07:50 #23209 [Verbose] > │ let v106 : float = v97 + v56 │
00:07:50 #23210 [Verbose] > │ let v107 : float = v98 + v57 │
00:07:50 #23211 [Verbose] > │ let v108 : float = v99 + v61 │
00:07:50 #23212 [Verbose] > │ let v109 : float = v100 + v58 │
00:07:50 #23213 [Verbose] > │ let v110 : float = v101 + v59 │
00:07:50 #23214 [Verbose] > │ let v111 : float = v102 + v60 │
00:07:50 #23215 [Verbose] > │ let v112 : float = v103 + v62 │
00:07:50 #23216 [Verbose] > │ let v113 : float = v104 + v63 │
00:07:50 #23217 [Verbose] > │ let v114 : float = v105 + v64 │
00:07:50 #23218 [Verbose] > │ let v115 : float = v106 + v56 │
00:07:50 #23219 [Verbose] > │ let v116 : float = v107 + v57 │
00:07:50 #23220 [Verbose] > │ let v117 : float = v108 + v61 │
00:07:50 #23221 [Verbose] > │ let v118 : float = v109 + v58 │
00:07:50 #23222 [Verbose] > │ let v119 : float = v110 + v59 │
00:07:50 #23223 [Verbose] > │ let v120 : float = v111 + v60 │
00:07:50 #23224 [Verbose] > │ let v121 : float = v112 + v62 │
00:07:50 #23225 [Verbose] > │ let v122 : float = v113 + v63 │
00:07:50 #23226 [Verbose] > │ let v123 : float = v114 + v64 │
00:07:50 #23227 [Verbose] > │ let v124 : float = v115 + v79 │
00:07:50 #23228 [Verbose] > │ let v125 : float = v116 + v80 │
00:07:50 #23229 [Verbose] > │ let v126 : float = v117 + v84 │
00:07:50 #23230 [Verbose] > │ let v127 : float = v118 + v81 │
00:07:50 #23231 [Verbose] > │ let v128 : float = v119 + v82 │
00:07:50 #23232 [Verbose] > │ let v129 : float = v120 + v83 │
00:07:50 #23233 [Verbose] > │ let v130 : float = v121 + v85 │
00:07:50 #23234 [Verbose] > │ let v131 : float = v122 + v86 │
00:07:50 #23235 [Verbose] > │ let v132 : float = v123 + v87 │
00:07:50 #23236 [Verbose] > │ let v133 : float = v126 * 1.6666666666666669E-10 │
00:07:50 #23237 [Verbose] > │ let v134 : float = v6 + v133 │
00:07:50 #23238 [Verbose] > │ let v135 : float = 1.6666666666666669E-10 * v127 │
00:07:50 #23239 [Verbose] > │ let v136 : float = 1.6666666666666669E-10 * v128 │
00:07:50 #23240 [Verbose] > │ let v137 : float = 1.6666666666666669E-10 * v129 │
00:07:50 #23241 [Verbose] > │ let v138 : float = v3 + v135 │
00:07:50 #23242 [Verbose] > │ let v139 : float = v4 + v136 │
00:07:50 #23243 [Verbose] > │ let v140 : float = v5 + v137 │
00:07:50 #23244 [Verbose] > │ let v141 : float = 1.6666666666666669E-10 * v130 │
00:07:50 #23245 [Verbose] > │ let v142 : float = 1.6666666666666669E-10 * v131 │
00:07:50 #23246 [Verbose] > │ let v143 : float = 1.6666666666666669E-10 * v132 │
00:07:50 #23247 [Verbose] > │ let v144 : float = v7 + v141 │
00:07:50 #23248 [Verbose] > │ let v145 : float = v8 + v142 │
00:07:50 #23249 [Verbose] > │ let v146 : float = v9 + v143 │
00:07:50 #23250 [Verbose] > │ struct (v1, v2, v138, v139, v140, v134, v144, v145, v146) │
00:07:50 #23251 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │
00:07:50 #23252 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float * │
00:07:50 #23253 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float * │
00:07:50 #23254 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float * │
00:07:50 #23255 [Verbose] > │ float * float * float * float * float * float)) = │
00:07:50 #23256 [Verbose] > │ closure1(v0) │
00:07:50 #23257 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:07:50 #23258 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:07:50 #23259 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:07:50 #23260 [Verbose] > │ let v9 : float = v8 * 0.0 │
00:07:50 #23261 [Verbose] > │ let v10 : float = v7 - v9 │
00:07:50 #23262 [Verbose] > │ let v11 : float = v9 - v6 │
00:07:50 #23263 [Verbose] > │ let v12 : float = v6 * 0.0 │
00:07:50 #23264 [Verbose] > │ let v13 : float = v7 * 0.0 │
00:07:50 #23265 [Verbose] > │ let v14 : float = v12 - v13 │
00:07:50 #23266 [Verbose] > │ let v15 : float = v0 * v10 │
00:07:50 #23267 [Verbose] > │ let v16 : float = v0 * v11 │
00:07:50 #23268 [Verbose] > │ let v17 : float = v0 * v14 │
00:07:50 #23269 [Verbose] > │ let v18 : float = v15 / v1 │
00:07:50 #23270 [Verbose] > │ let v19 : float = v16 / v1 │
00:07:50 #23271 [Verbose] > │ let v20 : float = v17 / v1 │
00:07:50 #23272 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v18, v19, v20) │
00:07:50 #23273 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:07:50 #23274 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:07:50 #23275 [Verbose] > │ float * float * float * float * float * float * float * float) = │
00:07:50 #23276 [Verbose] > │ let v9 : float = v8 * 0.0 │
00:07:50 #23277 [Verbose] > │ let v10 : float = v7 - v9 │
00:07:50 #23278 [Verbose] > │ let v11 : float = v9 - v6 │
00:07:50 #23279 [Verbose] > │ let v12 : float = v6 * 0.0 │
00:07:50 #23280 [Verbose] > │ let v13 : float = v7 * 0.0 │
00:07:50 #23281 [Verbose] > │ let v14 : float = v12 - v13 │
00:07:50 #23282 [Verbose] > │ let v15 : float = v0 * v10 │
00:07:50 #23283 [Verbose] > │ let v16 : float = v0 * v11 │
00:07:50 #23284 [Verbose] > │ let v17 : float = v0 * v14 │
00:07:50 #23285 [Verbose] > │ let v18 : float = v6 / 299792458.0 │
00:07:50 #23286 [Verbose] > │ let v19 : float = v7 / 299792458.0 │
00:07:50 #23287 [Verbose] > │ let v20 : float = v8 / 299792458.0 │
00:07:50 #23288 [Verbose] > │ let v21 : float = v18 * v18 │
00:07:50 #23289 [Verbose] > │ let v22 : float = v19 * v19 │
00:07:50 #23290 [Verbose] > │ let v23 : float = v21 + v22 │
00:07:50 #23291 [Verbose] > │ let v24 : float = v20 * v20 │
00:07:50 #23292 [Verbose] > │ let v25 : float = v23 + v24 │
00:07:50 #23293 [Verbose] > │ let v26 : float = 1.0 - v25 │
00:07:50 #23294 [Verbose] > │ let v27 : float = sqrt v26 │
00:07:50 #23295 [Verbose] > │ let v28 : float = v15 * v18 │
00:07:50 #23296 [Verbose] > │ let v29 : float = v16 * v19 │
00:07:50 #23297 [Verbose] > │ let v30 : float = v28 + v29 │
00:07:50 #23298 [Verbose] > │ let v31 : float = v17 * v20 │
00:07:50 #23299 [Verbose] > │ let v32 : float = v30 + v31 │
00:07:50 #23300 [Verbose] > │ let v33 : float = v32 * v18 │
00:07:50 #23301 [Verbose] > │ let v34 : float = v32 * v19 │
00:07:50 #23302 [Verbose] > │ let v35 : float = v32 * v20 │
00:07:50 #23303 [Verbose] > │ let v36 : float = -1.0 * v33 │
00:07:50 #23304 [Verbose] > │ let v37 : float = -1.0 * v34 │
00:07:50 #23305 [Verbose] > │ let v38 : float = -1.0 * v35 │
00:07:50 #23306 [Verbose] > │ let v39 : float = v15 + v36 │
00:07:50 #23307 [Verbose] > │ let v40 : float = v16 + v37 │
00:07:50 #23308 [Verbose] > │ let v41 : float = v17 + v38 │
00:07:50 #23309 [Verbose] > │ let v42 : float = v27 * v39 │
00:07:50 #23310 [Verbose] > │ let v43 : float = v27 * v40 │
00:07:50 #23311 [Verbose] > │ let v44 : float = v27 * v41 │
00:07:50 #23312 [Verbose] > │ let v45 : float = v42 / v1 │
00:07:50 #23313 [Verbose] > │ let v46 : float = v43 / v1 │
00:07:50 #23314 [Verbose] > │ let v47 : float = v44 / v1 │
00:07:50 #23315 [Verbose] > │ struct (0.0, 0.0, v6, v7, v8, 1.0, v45, v46, v47) │
00:07:50 #23316 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float * │
00:07:50 #23317 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:07:50 #23318 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 : │
00:07:50 #23319 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 : │
00:07:50 #23320 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float * │
00:07:50 #23321 [Verbose] > │ float * float) = │
00:07:50 #23322 [Verbose] > │ let v11 : bool = v10 <= 0 │
00:07:50 #23323 [Verbose] > │ if v11 then │
00:07:50 #23324 [Verbose] > │ struct (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:07:50 #23325 [Verbose] > │ else │
00:07:50 #23326 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:07:50 #23327 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct │
00:07:50 #23328 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9) │
00:07:50 #23329 [Verbose] > │ let v21 : int32 = v10 - 1 │
00:07:50 #23330 [Verbose] > │ method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) │
00:07:50 #23331 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 = │
00:07:50 #23332 [Verbose] > │ match v0 with │
00:07:50 #23333 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:50 #23334 [Verbose] > │ let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:07:50 #23335 [Verbose] > │ method3(v11, v12) │
00:07:50 #23336 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:50 #23337 [Verbose] > │ v1 │
00:07:50 #23338 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float * │
00:07:50 #23339 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:07:50 #23340 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:07:50 #23341 [Verbose] > │ let v3 : float = 1.602176621E-19 │
00:07:50 #23342 [Verbose] > │ let v4 : float = 1.672621898E-27 │
00:07:50 #23343 [Verbose] > │ let v5 : float = 0.0 │
00:07:50 #23344 [Verbose] > │ let v6 : float = 0.0 │
00:07:50 #23345 [Verbose] > │ let v7 : float = 0.0 │
00:07:50 #23346 [Verbose] > │ let v8 : float = 0.0 │
00:07:50 #23347 [Verbose] > │ let v9 : float = 0.0 │
00:07:50 #23348 [Verbose] > │ let v10 : float = 239833966.4 │
00:07:50 #23349 [Verbose] > │ let v11 : float = 0.0 │
00:07:50 #23350 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:07:50 #23351 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:07:50 #23352 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:07:50 #23353 [Verbose] > │ let v21 : bool = v2 < 100 │
00:07:50 #23354 [Verbose] > │ if v21 then │
00:07:50 #23355 [Verbose] > │ let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:07:50 #23356 [Verbose] > │ v1) │
00:07:50 #23357 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:07:50 #23358 [Verbose] > │ method1(v0, v22, v23) │
00:07:50 #23359 [Verbose] > │ else │
00:07:50 #23360 [Verbose] > │ let v25 : UH0 = UH0_0 │
00:07:50 #23361 [Verbose] > │ method3(v1, v25) │
00:07:50 #23362 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 = │
00:07:50 #23363 [Verbose] > │ match v0 with │
00:07:50 #23364 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:50 #23365 [Verbose] > │ let v12 : UH1 = method4(v11, v1) │
00:07:50 #23366 [Verbose] > │ UH1_1(v4, v5, v12) │
00:07:50 #23367 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:50 #23368 [Verbose] > │ v1 │
00:07:50 #23369 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) = │
00:07:50 #23370 [Verbose] > │ match v0 with │
00:07:50 #23371 [Verbose] > │ | UH1_1(v3, v4, v5) -> (* Cons *) │
00:07:50 #23372 [Verbose] > │ let v6 : UH2 = UH2_1(v3, v1) │
00:07:50 #23373 [Verbose] > │ let v7 : UH2 = UH2_1(v4, v2) │
00:07:50 #23374 [Verbose] > │ method5(v5, v6, v7) │
00:07:50 #23375 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:07:50 #23376 [Verbose] > │ struct (v1, v2) │
00:07:50 #23377 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 = │
00:07:50 #23378 [Verbose] > │ match v0 with │
00:07:50 #23379 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:07:50 #23380 [Verbose] > │ let v4 : UH2 = UH2_1(v2, v1) │
00:07:50 #23381 [Verbose] > │ method6(v3, v4) │
00:07:50 #23382 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:50 #23383 [Verbose] > │ v1 │
00:07:50 #23384 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float * │
00:07:50 #23385 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float * │
00:07:50 #23386 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 = │
00:07:50 #23387 [Verbose] > │ let v3 : float = 1.602176621E-19 │
00:07:50 #23388 [Verbose] > │ let v4 : float = 1.672621898E-27 │
00:07:50 #23389 [Verbose] > │ let v5 : float = 0.0 │
00:07:50 #23390 [Verbose] > │ let v6 : float = 0.0 │
00:07:50 #23391 [Verbose] > │ let v7 : float = 0.0 │
00:07:50 #23392 [Verbose] > │ let v8 : float = 0.0 │
00:07:50 #23393 [Verbose] > │ let v9 : float = 0.0 │
00:07:50 #23394 [Verbose] > │ let v10 : float = 239833966.4 │
00:07:50 #23395 [Verbose] > │ let v11 : float = 0.0 │
00:07:50 #23396 [Verbose] > │ let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 : │
00:07:50 #23397 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │
00:07:50 #23398 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2) │
00:07:50 #23399 [Verbose] > │ let v21 : bool = v2 < 165 │
00:07:50 #23400 [Verbose] > │ if v21 then │
00:07:50 #23401 [Verbose] > │ let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20, │
00:07:50 #23402 [Verbose] > │ v1) │
00:07:50 #23403 [Verbose] > │ let v23 : int32 = v2 + 1 │
00:07:50 #23404 [Verbose] > │ method7(v0, v22, v23) │
00:07:50 #23405 [Verbose] > │ else │
00:07:50 #23406 [Verbose] > │ let v25 : UH0 = UH0_0 │
00:07:50 #23407 [Verbose] > │ method3(v1, v25) │
00:07:50 #23408 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 = │
00:07:50 #23409 [Verbose] > │ match v0 with │
00:07:50 #23410 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:50 #23411 [Verbose] > │ let v12 : UH1 = method8(v11, v1) │
00:07:50 #23412 [Verbose] > │ UH1_1(v4, v5, v12) │
00:07:50 #23413 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:50 #23414 [Verbose] > │ v1 │
00:07:50 #23415 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 = │
00:07:50 #23416 [Verbose] > │ match v0 with │
00:07:50 #23417 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:07:50 #23418 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:07:50 #23419 [Verbose] > │ method10(v3, v4) │
00:07:50 #23420 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:50 #23421 [Verbose] > │ v1 │
00:07:50 #23422 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 = │
00:07:50 #23423 [Verbose] > │ match v1 with │
00:07:50 #23424 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:07:50 #23425 [Verbose] > │ v0.[int v2] <- v3 │
00:07:50 #23426 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:07:50 #23427 [Verbose] > │ method11(v0, v4, v5) │
00:07:50 #23428 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:50 #23429 [Verbose] > │ v2 │
00:07:50 #23430 [Verbose] > │ and method9 (v0 : UH2) : (float []) = │
00:07:50 #23431 [Verbose] > │ let v1 : int32 = 0 │
00:07:50 #23432 [Verbose] > │ let v2 : int32 = method10(v0, v1) │
00:07:50 #23433 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:07:50 #23434 [Verbose] > │ let v4 : int32 = 0 │
00:07:50 #23435 [Verbose] > │ let v5 : int32 = method11(v3, v0, v4) │
00:07:50 #23436 [Verbose] > │ v3 │
00:07:50 #23437 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:50 #23438 [Verbose] > │ []) * (float [])) [])) = │
00:07:50 #23439 [Verbose] > │ let v0 : ((struct (float * float * float * float * float * float * float │
00:07:50 #23440 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:50 #23441 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float * │
00:07:50 #23442 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float * │
00:07:50 #23443 [Verbose] > │ float * float * float * float * float))) = closure0() │
00:07:50 #23444 [Verbose] > │ let v1 : (struct (float * float * float * float * float * float * float │
00:07:50 #23445 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:50 #23446 [Verbose] > │ float * float * float)) = closure2() │
00:07:50 #23447 [Verbose] > │ let v2 : (struct (float * float * float * float * float * float * float │
00:07:50 #23448 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:50 #23449 [Verbose] > │ float * float * float)) = v0 v1 │
00:07:50 #23450 [Verbose] > │ let v3 : (struct (float * float * float * float * float * float * float │
00:07:50 #23451 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:50 #23452 [Verbose] > │ float * float * float)) = closure3() │
00:07:50 #23453 [Verbose] > │ let v4 : (struct (float * float * float * float * float * float * float │
00:07:50 #23454 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float * │
00:07:50 #23455 [Verbose] > │ float * float * float)) = v0 v3 │
00:07:50 #23456 [Verbose] > │ let v5 : UH0 = UH0_0 │
00:07:50 #23457 [Verbose] > │ let v6 : int32 = 0 │
00:07:50 #23458 [Verbose] > │ let v7 : UH0 = method1(v2, v5, v6) │
00:07:50 #23459 [Verbose] > │ let v8 : UH1 = UH1_0 │
00:07:50 #23460 [Verbose] > │ let v9 : UH1 = method4(v7, v8) │
00:07:50 #23461 [Verbose] > │ let v10 : UH2 = UH2_0 │
00:07:50 #23462 [Verbose] > │ let v11 : UH2 = UH2_0 │
00:07:50 #23463 [Verbose] > │ let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11) │
00:07:50 #23464 [Verbose] > │ let v14 : UH2 = UH2_0 │
00:07:50 #23465 [Verbose] > │ let v15 : UH2 = method6(v12, v14) │
00:07:50 #23466 [Verbose] > │ let v16 : UH2 = UH2_0 │
00:07:50 #23467 [Verbose] > │ let v17 : UH2 = method6(v13, v16) │
00:07:50 #23468 [Verbose] > │ let v18 : UH0 = UH0_0 │
00:07:50 #23469 [Verbose] > │ let v19 : int32 = 0 │
00:07:50 #23470 [Verbose] > │ let v20 : UH0 = method7(v4, v18, v19) │
00:07:50 #23471 [Verbose] > │ let v21 : UH1 = UH1_0 │
00:07:50 #23472 [Verbose] > │ let v22 : UH1 = method8(v20, v21) │
00:07:50 #23473 [Verbose] > │ let v23 : UH2 = UH2_0 │
00:07:50 #23474 [Verbose] > │ let v24 : UH2 = UH2_0 │
00:07:50 #23475 [Verbose] > │ let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24) │
00:07:50 #23476 [Verbose] > │ let v27 : UH2 = UH2_0 │
00:07:50 #23477 [Verbose] > │ let v28 : UH2 = method6(v25, v27) │
00:07:50 #23478 [Verbose] > │ let v29 : UH2 = UH2_0 │
00:07:50 #23479 [Verbose] > │ let v30 : UH2 = method6(v26, v29) │
00:07:50 #23480 [Verbose] > │ let v31 : (float []) = method9(v15) │
00:07:50 #23481 [Verbose] > │ let v32 : (float []) = method9(v17) │
00:07:50 #23482 [Verbose] > │ let v33 : (float []) = method9(v28) │
00:07:50 #23483 [Verbose] > │ let v34 : (float []) = method9(v30) │
00:07:50 #23484 [Verbose] > │ let v35 : string = "newtonian" │
00:07:50 #23485 [Verbose] > │ let v36 : string = "relativistic" │
00:07:50 #23486 [Verbose] > │ let v37 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:50 #23487 [Verbose] > │ (v35, v31, v32); struct (v36, v33, v34)|] │
00:07:50 #23488 [Verbose] > │ let v38 : string = "proton in a 1-t magnetic field" │
00:07:50 #23489 [Verbose] > │ let v39 : string = "x (m)" │
00:07:50 #23490 [Verbose] > │ let v40 : string = "y (m)" │
00:07:50 #23491 [Verbose] > │ struct (v38, v39, v40, v37) │
00:07:50 #23492 [Verbose] > │ method0() │
00:07:50 #23493 [Verbose] > │ │
00:07:50 #23494 [Verbose] > │ │
00:07:50 #23495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:50 #23496 [Verbose] >
00:07:50 #23497 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:50 #23498 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:50 #23499 [Verbose] > │ ### system kinetic energy versus time 1 │
00:07:50 #23500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:50 #23501 [Verbose] >
00:07:50 #23502 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:50 #23503 [Verbose] > // // test
00:07:50 #23504 [Verbose] >
00:07:50 #23505 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =
00:07:50 #23506 [Verbose] > inl r1 = st1.pos_vec
00:07:50 #23507 [Verbose] > inl r2 = st2.pos_vec
00:07:50 #23508 [Verbose] > inl r21 = r2 ^-^ r1
00:07:50 #23509 [Verbose] > inl r21mag = magnitude r21
00:07:50 #23510 [Verbose] > f r21mag *^ r21 ^/ r21mag
00:07:50 #23511 [Verbose] >
00:07:50 #23512 [Verbose] > inl billiard_force k re =
00:07:50 #23513 [Verbose] > inl f r =
00:07:50 #23514 [Verbose] > if r >= re
00:07:50 #23515 [Verbose] > then 0
00:07:50 #23516 [Verbose] > else -k * (r - re)
00:07:50 #23517 [Verbose] > central_force f
00:07:50 #23518 [Verbose] >
00:07:50 #23519 [Verbose] > type force_vector = vec
00:07:50 #23520 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector
00:07:50 #23521 [Verbose] >
00:07:50 #23522 [Verbose] > union force =
00:07:50 #23523 [Verbose] > | ExternalForce : i32 * one_body_force
00:07:50 #23524 [Verbose] > | InternalForce : i32 * i32 * two_body_force
00:07:50 #23525 [Verbose] >
00:07:50 #23526 [Verbose] > nominal multi_particle_state = list particle_state
00:07:50 #23527 [Verbose] >
00:07:50 #23528 [Verbose] > nominal d_multi_particle_state = list d_particle_state
00:07:50 #23529 [Verbose] >
00:07:50 #23530 [Verbose] > inl force_on n sts force =
00:07:50 #23531 [Verbose] > match force with
00:07:50 #23532 [Verbose] > | ExternalForce (n0, f_one_body) =>
00:07:50 #23533 [Verbose] > if n = n0
00:07:50 #23534 [Verbose] > then f_one_body
00:07:50 #23535 [Verbose] > else fun _ => zero_vec ()
00:07:50 #23536 [Verbose] > | InternalForce (n0, n1, f_two_body) =>
00:07:50 #23537 [Verbose] > if n = n0
00:07:50 #23538 [Verbose] > then f_two_body (sts |> listm'.item n1)
00:07:50 #23539 [Verbose] > elif n = n1
00:07:50 #23540 [Verbose] > then f_two_body (sts |> listm'.item n0)
00:07:50 #23541 [Verbose] > else fun _ => zero_vec ()
00:07:50 #23542 [Verbose] >
00:07:50 #23543 [Verbose] > inl forces_on n (multi_particle_state sts) fs =
00:07:50 #23544 [Verbose] > fs |> listm.map (force_on n sts)
00:07:50 #23545 [Verbose] >
00:07:50 #23546 [Verbose] > inl newton_second_mps fs (multi_particle_state sts) : d_multi_particle_state =
00:07:50 #23547 [Verbose] > inl deriv (n, st) =
00:07:50 #23548 [Verbose] > newton_second_ps (forces_on n (multi_particle_state sts) fs) st
00:07:50 #23549 [Verbose] > sts |> listm'.indexed |> listm.map deriv |> d_multi_particle_state
00:07:50 #23550 [Verbose] >
00:07:50 #23551 [Verbose] > instance (+++) d_multi_particle_state = fun (d_multi_particle_state dsts1)
00:07:50 #23552 [Verbose] > (d_multi_particle_state dsts2) =>
00:07:50 #23553 [Verbose] > d_multi_particle_state (listm'.zip_with_ (+++) dsts1 dsts2)
00:07:50 #23554 [Verbose] >
00:07:50 #23555 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>
00:07:50 #23556 [Verbose] > d_multi_particle_state (dsts |> listm.map (scale w))
00:07:50 #23557 [Verbose] >
00:07:50 #23558 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>
00:07:50 #23559 [Verbose] > inl (d_multi_particle_state dsts) =
00:07:50 #23560 [Verbose] > real
00:07:50 #23561 [Verbose] > match dsts with
00:07:50 #23562 [Verbose] > | d_multi_particle_state _ => dsts
00:07:50 #23563 [Verbose] > listm'.zip_with_ (shift dt) dsts sts |> multi_particle_state
00:07:50 #23564 [Verbose] >
00:07:50 #23565 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state
00:07:50 #23566 [Verbose] > d_multi_particle_state =
00:07:50 #23567 [Verbose] > fun deriv mpst0 =>
00:07:50 #23568 [Verbose] > inl mpst1 = euler dt deriv mpst0
00:07:50 #23569 [Verbose] > inl (multi_particle_state sts0) = mpst0
00:07:50 #23570 [Verbose] > inl (multi_particle_state sts1) = mpst1
00:07:50 #23571 [Verbose] > sts1
00:07:50 #23572 [Verbose] > |> listm'.zip_ sts0
00:07:50 #23573 [Verbose] > |> listm.map (fun ((particle_state st0), (particle_state st1)) =>
00:07:50 #23574 [Verbose] > particle_state {
00:07:50 #23575 [Verbose] > st1 with
00:07:50 #23576 [Verbose] > pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt
00:07:50 #23577 [Verbose] > }
00:07:50 #23578 [Verbose] > )
00:07:50 #23579 [Verbose] > |> multi_particle_state
00:07:50 #23580 [Verbose] >
00:07:50 #23581 [Verbose] > inl update_mps (method : numerical_method multi_particle_state
00:07:50 #23582 [Verbose] > d_multi_particle_state) =
00:07:50 #23583 [Verbose] > newton_second_mps >> method
00:07:50 #23584 [Verbose] >
00:07:50 #23585 [Verbose] > inl states_mps (method : numerical_method multi_particle_state
00:07:50 #23586 [Verbose] > d_multi_particle_state) =
00:07:50 #23587 [Verbose] > newton_second_mps >> method >> seq.iterate_
00:07:50 #23588 [Verbose] >
00:07:50 #23589 [Verbose] >
00:07:50 #23590 [Verbose] > inl kinetic_energy (particle_state st) =
00:07:50 #23591 [Verbose] > inl m = st.mass
00:07:50 #23592 [Verbose] > inl v = magnitude st.velocity
00:07:50 #23593 [Verbose] > 0.5 * m * v ** 2
00:07:50 #23594 [Verbose] >
00:07:50 #23595 [Verbose] > inl system_ke (multi_particle_state sts) =
00:07:50 #23596 [Verbose] > sts |> listm.map kinetic_energy |> listm'.sum
00:07:50 #23597 [Verbose] >
00:07:50 #23598 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =
00:07:50 #23599 [Verbose] > inl r1 = st1.pos_vec
00:07:50 #23600 [Verbose] > inl r2 = st2.pos_vec
00:07:50 #23601 [Verbose] > inl r21 = r2 ^-^ r1
00:07:50 #23602 [Verbose] > inl r21mag = magnitude r21
00:07:50 #23603 [Verbose] > k * (r21mag - re) ** 2 / 2
00:07:50 #23604 [Verbose] >
00:07:50 #23605 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =
00:07:50 #23606 [Verbose] > inl g = 9.80665
00:07:50 #23607 [Verbose] > inl m = st.mass
00:07:50 #23608 [Verbose] > inl z = st.pos_vec.z
00:07:50 #23609 [Verbose] > m * g * z
00:07:50 #23610 [Verbose] >
00:07:50 #23611 [Verbose] > inl two_springs_pe (multi_particle_state sts) =
00:07:50 #23612 [Verbose] > inl st0 = sts |> listm'.item 0i32
00:07:50 #23613 [Verbose] > inl st1 = sts |> listm'.item 1i32
00:07:50 #23614 [Verbose] > linear_spring_pe 100 0.5 (default_particle_state ()) st0
00:07:50 #23615 [Verbose] > + linear_spring_pe 100 0.5 st0 st1
00:07:50 #23616 [Verbose] > + earth_surface_gravity_pe st0
00:07:50 #23617 [Verbose] > + earth_surface_gravity_pe st1
00:07:50 #23618 [Verbose] >
00:07:50 #23619 [Verbose] > inl two_springs_me mpst =
00:07:50 #23620 [Verbose] > system_ke mpst + two_springs_pe mpst
00:07:50 #23621 [Verbose] >
00:07:50 #23622 [Verbose] > inl ball_radius () = 0.03
00:07:50 #23623 [Verbose] >
00:07:50 #23624 [Verbose] > inl billiard_forces k =
00:07:50 #23625 [Verbose] > [[ InternalForce (0, 1, billiard_force k (2 * ball_radius ())) ]]
00:07:50 #23626 [Verbose] >
00:07:50 #23627 [Verbose] > inl billiard_update n_method k dt =
00:07:50 #23628 [Verbose] > update_mps (n_method dt) (billiard_forces k)
00:07:50 #23629 [Verbose] >
00:07:50 #23630 [Verbose] > inl billiard_initial () =
00:07:50 #23631 [Verbose] > inl ball_mass = 0.160
00:07:50 #23632 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:50 #23633 [Verbose] > multi_particle_state [[
00:07:50 #23634 [Verbose] > particle_state {
00:07:50 #23635 [Verbose] > default_particle_state' with
00:07:50 #23636 [Verbose] > mass = ball_mass
00:07:50 #23637 [Verbose] > pos_vec = zero_vec ()
00:07:50 #23638 [Verbose] > velocity = 0.2 *^ i_hat ()
00:07:50 #23639 [Verbose] > }
00:07:50 #23640 [Verbose] > particle_state {
00:07:50 #23641 [Verbose] > default_particle_state' with
00:07:50 #23642 [Verbose] > mass = ball_mass
00:07:50 #23643 [Verbose] > pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()
00:07:50 #23644 [Verbose] > velocity = zero_vec ()
00:07:50 #23645 [Verbose] > }
00:07:50 #23646 [Verbose] > ]]
00:07:50 #23647 [Verbose] >
00:07:50 #23648 [Verbose] > inl billiard_states ~n_method k dt =
00:07:50 #23649 [Verbose] > states_mps (n_method dt) (billiard_forces k) (billiard_initial ())
00:07:50 #23650 [Verbose] >
00:07:50 #23651 [Verbose] > inl billiard_states_finite n_method k dt =
00:07:50 #23652 [Verbose] > billiard_states n_method k dt
00:07:50 #23653 [Verbose] > >> Some
00:07:50 #23654 [Verbose] > |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>
00:07:50 #23655 [Verbose] > (mpst |> listm'.item 0i32).time <= 10
00:07:50 #23656 [Verbose] > )
00:07:50 #23657 [Verbose] >
00:07:50 #23658 [Verbose] > inl momentum (particle_state st) =
00:07:50 #23659 [Verbose] > inl m = st.mass
00:07:50 #23660 [Verbose] > inl v = st.velocity
00:07:50 #23661 [Verbose] > m *^ v
00:07:50 #23662 [Verbose] >
00:07:50 #23663 [Verbose] > inl system_p (multi_particle_state sts) =
00:07:50 #23664 [Verbose] > sts |> listm.map momentum |> sum_vec
00:07:50 #23665 [Verbose] >
00:07:50 #23666 [Verbose] >
00:07:50 #23667 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =
00:07:50 #23668 [Verbose] > billiard_states_finite euler_cromer_mps 30 0.03
00:07:50 #23669 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:07:50 #23670 [Verbose] > (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)
00:07:50 #23671 [Verbose] > )
00:07:50 #23672 [Verbose] > |> listm'.unzip
00:07:50 #23673 [Verbose] >
00:07:50 #23674 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =
00:07:50 #23675 [Verbose] > billiard_states_finite runge_kutta_4 30 0.03
00:07:50 #23676 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:07:50 #23677 [Verbose] > (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)
00:07:50 #23678 [Verbose] > )
00:07:50 #23679 [Verbose] > |> listm'.unzip
00:07:50 #23680 [Verbose] >
00:07:50 #23681 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray
00:07:50 #23682 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray
00:07:50 #23683 [Verbose] >
00:07:50 #23684 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray
00:07:50 #23685 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray
00:07:50 #23686 [Verbose] >
00:07:50 #23687 [Verbose] > "system kinetic energy versus time",
00:07:50 #23688 [Verbose] > "time (s)",
00:07:50 #23689 [Verbose] > "system kinetic energy (j)",
00:07:50 #23690 [Verbose] > ;[[
00:07:50 #23691 [Verbose] > "euler-cromer", time_ke_ec_x, time_ke_ec_y
00:07:50 #23692 [Verbose] > "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y
00:07:50 #23693 [Verbose] > ]]
00:07:50 #23694 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2291-9184-984a4da2ad3e\main.spi
00:07:53 #23695 [Verbose] >
00:07:53 #23696 [Verbose] > ╭─[ 2.83s - return value ]─────────────────────────────────────────────────────╮
00:07:53 #23697 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:53 #23698 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:53 #23699 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:53 #23700 [Verbose] > │ stroke="none"/> │
00:07:53 #23701 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:53 #23702 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:53 #23703 [Verbose] > │ fill="#FFFFFF"> │
00:07:53 #23704 [Verbose] > │ system kinetic energy versus time │
00:07:53 #23705 [Verbose] > │ </text> │
00:07:53 #23706 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:07:53 #23707 [Verbose] > │ y2="75"/> │
00:07:53 #23708 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:53 #23709 [Verbose] > │ y2="75"/> │
00:07:53 #23710 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:07:53 #23711 [Verbose] > │ y2="75"/> │
00:07:53 #23712 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:07:53 #23713 [Verbose] > │ y2="75"/> │
00:07:53 #23714 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1... │
00:07:53 #23715 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:53 #23716 [Verbose] >
00:07:53 #23717 [Verbose] > ╭─[ 2.85s - stdout ]───────────────────────────────────────────────────────────╮
00:07:53 #23718 [Verbose] > │ type UH0 = │
00:07:53 #23719 [Verbose] > │ | UH0_0 │
00:07:53 #23720 [Verbose] > │ | UH0_1 of float * float * float * float * float * float * float * float │
00:07:53 #23721 [Verbose] > │ * float * UH0 │
00:07:53 #23722 [Verbose] > │ and UH1 = │
00:07:53 #23723 [Verbose] > │ | UH1_0 │
00:07:53 #23724 [Verbose] > │ | UH1_1 of float * float * float * float * float * float * float * float │
00:07:53 #23725 [Verbose] > │ * float * UH1 │
00:07:53 #23726 [Verbose] > │ and UH2 = │
00:07:53 #23727 [Verbose] > │ | UH2_0 │
00:07:53 #23728 [Verbose] > │ | UH2_1 of float * float * float * float * float * float * float * float │
00:07:53 #23729 [Verbose] > │ * float * float * float * float * float * float * float * float * float * │
00:07:53 #23730 [Verbose] > │ float * UH2 │
00:07:53 #23731 [Verbose] > │ and UH3 = │
00:07:53 #23732 [Verbose] > │ | UH3_0 │
00:07:53 #23733 [Verbose] > │ | UH3_1 of int32 * float * float * float * float * float * float * float │
00:07:53 #23734 [Verbose] > │ * float * float * UH3 │
00:07:53 #23735 [Verbose] > │ and [<Struct>] US0 = │
00:07:53 #23736 [Verbose] > │ | US0_0 of f0_0 : float * f0_1 : float * f0_2 : float * f0_3 : float * │
00:07:53 #23737 [Verbose] > │ f0_4 : float * f0_5 : float * f0_6 : float * f0_7 : float * f0_8 : float │
00:07:53 #23738 [Verbose] > │ | US0_1 │
00:07:53 #23739 [Verbose] > │ and UH4 = │
00:07:53 #23740 [Verbose] > │ | UH4_0 │
00:07:53 #23741 [Verbose] > │ | UH4_1 of UH0 * UH4 │
00:07:53 #23742 [Verbose] > │ and UH5 = │
00:07:53 #23743 [Verbose] > │ | UH5_0 │
00:07:53 #23744 [Verbose] > │ | UH5_1 of float * float * UH5 │
00:07:53 #23745 [Verbose] > │ and UH6 = │
00:07:53 #23746 [Verbose] > │ | UH6_0 │
00:07:53 #23747 [Verbose] > │ | UH6_1 of float * UH6 │
00:07:53 #23748 [Verbose] > │ let rec method2 (v0 : UH0, v1 : UH0) : UH0 = │
00:07:53 #23749 [Verbose] > │ match v0 with │
00:07:53 #23750 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:53 #23751 [Verbose] > │ let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:07:53 #23752 [Verbose] > │ method2(v11, v12) │
00:07:53 #23753 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #23754 [Verbose] > │ v1 │
00:07:53 #23755 [Verbose] > │ and method1 (v0 : float, v1 : UH0, v2 : UH1, v3 : UH0) : UH0 = │
00:07:53 #23756 [Verbose] > │ match v2 with │
00:07:53 #23757 [Verbose] > │ | UH1_1(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *) │
00:07:53 #23758 [Verbose] > │ match v3 with │
00:07:53 #23759 [Verbose] > │ | UH0_1(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* Cons │
00:07:53 #23760 [Verbose] > │ *) │
00:07:53 #23761 [Verbose] > │ let v24 : float = v9 * v0 │
00:07:53 #23762 [Verbose] > │ let v25 : float = v19 + v24 │
00:07:53 #23763 [Verbose] > │ let v26 : float = v0 * v6 │
00:07:53 #23764 [Verbose] > │ let v27 : float = v0 * v7 │
00:07:53 #23765 [Verbose] > │ let v28 : float = v0 * v8 │
00:07:53 #23766 [Verbose] > │ let v29 : float = v16 + v26 │
00:07:53 #23767 [Verbose] > │ let v30 : float = v17 + v27 │
00:07:53 #23768 [Verbose] > │ let v31 : float = v18 + v28 │
00:07:53 #23769 [Verbose] > │ let v32 : float = v0 * v10 │
00:07:53 #23770 [Verbose] > │ let v33 : float = v0 * v11 │
00:07:53 #23771 [Verbose] > │ let v34 : float = v0 * v12 │
00:07:53 #23772 [Verbose] > │ let v35 : float = v20 + v32 │
00:07:53 #23773 [Verbose] > │ let v36 : float = v21 + v33 │
00:07:53 #23774 [Verbose] > │ let v37 : float = v22 + v34 │
00:07:53 #23775 [Verbose] > │ let v38 : UH0 = UH0_1(v14, v15, v29, v30, v31, v25, v35, v36, │
00:07:53 #23776 [Verbose] > │ v37, v1) │
00:07:53 #23777 [Verbose] > │ method1(v0, v38, v13, v23) │
00:07:53 #23778 [Verbose] > │ | _ -> │
00:07:53 #23779 [Verbose] > │ let v40 : UH0 = UH0_0 │
00:07:53 #23780 [Verbose] > │ method2(v1, v40) │
00:07:53 #23781 [Verbose] > │ | _ -> │
00:07:53 #23782 [Verbose] > │ let v43 : UH0 = UH0_0 │
00:07:53 #23783 [Verbose] > │ method2(v1, v43) │
00:07:53 #23784 [Verbose] > │ and method4 (v0 : UH2, v1 : UH2) : UH2 = │
00:07:53 #23785 [Verbose] > │ match v0 with │
00:07:53 #23786 [Verbose] > │ | UH2_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, │
00:07:53 #23787 [Verbose] > │ v16, v17, v18, v19, v20) -> (* Cons *) │
00:07:53 #23788 [Verbose] > │ let v21 : UH2 = UH2_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, │
00:07:53 #23789 [Verbose] > │ v13, v14, v15, v16, v17, v18, v19, v1) │
00:07:53 #23790 [Verbose] > │ method4(v20, v21) │
00:07:53 #23791 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:53 #23792 [Verbose] > │ v1 │
00:07:53 #23793 [Verbose] > │ and method3 (v0 : UH2, v1 : UH0, v2 : UH0) : UH2 = │
00:07:53 #23794 [Verbose] > │ match v1 with │
00:07:53 #23795 [Verbose] > │ | UH0_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:07:53 #23796 [Verbose] > │ match v2 with │
00:07:53 #23797 [Verbose] > │ | UH0_1(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │
00:07:53 #23798 [Verbose] > │ *) │
00:07:53 #23799 [Verbose] > │ let v23 : UH2 = UH2_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v13, │
00:07:53 #23800 [Verbose] > │ v14, v15, v16, v17, v18, v19, v20, v21, v0) │
00:07:53 #23801 [Verbose] > │ method3(v23, v12, v22) │
00:07:53 #23802 [Verbose] > │ | _ -> │
00:07:53 #23803 [Verbose] > │ let v25 : UH2 = UH2_0 │
00:07:53 #23804 [Verbose] > │ method4(v0, v25) │
00:07:53 #23805 [Verbose] > │ | _ -> │
00:07:53 #23806 [Verbose] > │ let v28 : UH2 = UH2_0 │
00:07:53 #23807 [Verbose] > │ method4(v0, v28) │
00:07:53 #23808 [Verbose] > │ and method5 (v0 : float, v1 : UH2, v2 : UH0) : UH0 = │
00:07:53 #23809 [Verbose] > │ match v1 with │
00:07:53 #23810 [Verbose] > │ | UH2_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, │
00:07:53 #23811 [Verbose] > │ v17, v18, v19, v20, v21) -> (* Cons *) │
00:07:53 #23812 [Verbose] > │ let v22 : UH0 = method5(v0, v21, v2) │
00:07:53 #23813 [Verbose] > │ let v23 : float = v0 * v18 │
00:07:53 #23814 [Verbose] > │ let v24 : float = v0 * v19 │
00:07:53 #23815 [Verbose] > │ let v25 : float = v0 * v20 │
00:07:53 #23816 [Verbose] > │ let v26 : float = v5 + v23 │
00:07:53 #23817 [Verbose] > │ let v27 : float = v6 + v24 │
00:07:53 #23818 [Verbose] > │ let v28 : float = v7 + v25 │
00:07:53 #23819 [Verbose] > │ UH0_1(v12, v13, v26, v27, v28, v17, v18, v19, v20, v22) │
00:07:53 #23820 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:07:53 #23821 [Verbose] > │ v2 │
00:07:53 #23822 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:07:53 #23823 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:07:53 #23824 [Verbose] > │ let v4 : UH0 = UH0_0 │
00:07:53 #23825 [Verbose] > │ let v5 : UH0 = method1(v0, v4, v3, v2) │
00:07:53 #23826 [Verbose] > │ let v6 : UH2 = UH2_0 │
00:07:53 #23827 [Verbose] > │ let v7 : UH2 = method3(v6, v2, v5) │
00:07:53 #23828 [Verbose] > │ let v8 : UH0 = UH0_0 │
00:07:53 #23829 [Verbose] > │ let v9 : UH0 = method5(v0, v7, v8) │
00:07:53 #23830 [Verbose] > │ v9 │
00:07:53 #23831 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:07:53 #23832 [Verbose] > │ closure2(v0, v1) │
00:07:53 #23833 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:07:53 #23834 [Verbose] > │ closure1(v0) │
00:07:53 #23835 [Verbose] > │ and method6 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) = │
00:07:53 #23836 [Verbose] > │ match v0 with │
00:07:53 #23837 [Verbose] > │ | UH0_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:07:53 #23838 [Verbose] > │ let v13 : int32 = v2 + 1 │
00:07:53 #23839 [Verbose] > │ let v14 : UH3 = UH3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1) │
00:07:53 #23840 [Verbose] > │ method6(v12, v14, v13) │
00:07:53 #23841 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #23842 [Verbose] > │ struct (v1, v2) │
00:07:53 #23843 [Verbose] > │ and method7 (v0 : UH3, v1 : UH3) : UH3 = │
00:07:53 #23844 [Verbose] > │ match v0 with │
00:07:53 #23845 [Verbose] > │ | UH3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:07:53 #23846 [Verbose] > │ let v13 : UH3 = UH3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1) │
00:07:53 #23847 [Verbose] > │ method7(v12, v13) │
00:07:53 #23848 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:07:53 #23849 [Verbose] > │ v1 │
00:07:53 #23850 [Verbose] > │ and closure4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:07:53 #23851 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 : │
00:07:53 #23852 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:07:53 #23853 [Verbose] > │ : float, v17 : float) : struct (float * float * float) = │
00:07:53 #23854 [Verbose] > │ let v18 : float = -1.0 * v2 │
00:07:53 #23855 [Verbose] > │ let v19 : float = -1.0 * v3 │
00:07:53 #23856 [Verbose] > │ let v20 : float = -1.0 * v4 │
00:07:53 #23857 [Verbose] > │ let v21 : float = v11 + v18 │
00:07:53 #23858 [Verbose] > │ let v22 : float = v12 + v19 │
00:07:53 #23859 [Verbose] > │ let v23 : float = v13 + v20 │
00:07:53 #23860 [Verbose] > │ let v24 : float = v21 * v21 │
00:07:53 #23861 [Verbose] > │ let v25 : float = v22 * v22 │
00:07:53 #23862 [Verbose] > │ let v26 : float = v24 + v25 │
00:07:53 #23863 [Verbose] > │ let v27 : float = v23 * v23 │
00:07:53 #23864 [Verbose] > │ let v28 : float = v26 + v27 │
00:07:53 #23865 [Verbose] > │ let v29 : float = sqrt v28 │
00:07:53 #23866 [Verbose] > │ let v30 : bool = v29 >= 0.06 │
00:07:53 #23867 [Verbose] > │ let v33 : float = │
00:07:53 #23868 [Verbose] > │ if v30 then │
00:07:53 #23869 [Verbose] > │ 0.0 │
00:07:53 #23870 [Verbose] > │ else │
00:07:53 #23871 [Verbose] > │ let v31 : float = v29 - 0.06 │
00:07:53 #23872 [Verbose] > │ let v32 : float = -30.0 * v31 │
00:07:53 #23873 [Verbose] > │ v32 │
00:07:53 #23874 [Verbose] > │ let v34 : float = v33 * v21 │
00:07:53 #23875 [Verbose] > │ let v35 : float = v33 * v22 │
00:07:53 #23876 [Verbose] > │ let v36 : float = v33 * v23 │
00:07:53 #23877 [Verbose] > │ let v37 : float = v34 / v29 │
00:07:53 #23878 [Verbose] > │ let v38 : float = v35 / v29 │
00:07:53 #23879 [Verbose] > │ let v39 : float = v36 / v29 │
00:07:53 #23880 [Verbose] > │ struct (v37, v38, v39) │
00:07:53 #23881 [Verbose] > │ and closure5 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │
00:07:53 #23882 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:07:53 #23883 [Verbose] > │ float * float) = │
00:07:53 #23884 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:07:53 #23885 [Verbose] > │ and method8 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 = │
00:07:53 #23886 [Verbose] > │ match v1 with │
00:07:53 #23887 [Verbose] > │ | UH3_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *) │
00:07:53 #23888 [Verbose] > │ let v14 : UH1 = method8(v0, v13, v2) │
00:07:53 #23889 [Verbose] > │ let v15 : bool = v3 = 0 │
00:07:53 #23890 [Verbose] > │ let v134 : (struct (float * float * float * float * float * float * │
00:07:53 #23891 [Verbose] > │ float * float * float) -> struct (float * float * float)) = │
00:07:53 #23892 [Verbose] > │ if v15 then │
00:07:53 #23893 [Verbose] > │ let v42 : US0 = │
00:07:53 #23894 [Verbose] > │ match v0 with │
00:07:53 #23895 [Verbose] > │ | UH0_1(v16, v17, v18, v19, v20, v21, v22, v23, v24, │
00:07:53 #23896 [Verbose] > │ v25) -> (* Cons *) │
00:07:53 #23897 [Verbose] > │ match v25 with │
00:07:53 #23898 [Verbose] > │ | UH0_1(v26, v27, v28, v29, v30, v31, v32, v33, v34, │
00:07:53 #23899 [Verbose] > │ v35) -> (* Cons *) │
00:07:53 #23900 [Verbose] > │ US0_0(v26, v27, v28, v29, v30, v31, v32, v33, │
00:07:53 #23901 [Verbose] > │ v34) │
00:07:53 #23902 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #23903 [Verbose] > │ US0_1 │
00:07:53 #23904 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #23905 [Verbose] > │ US0_1 │
00:07:53 #23906 [Verbose] > │ let struct (v70 : float, v71 : float, v72 : float, v73 : │
00:07:53 #23907 [Verbose] > │ float, v74 : float, v75 : float, v76 : float, v77 : float, v78 : float) = │
00:07:53 #23908 [Verbose] > │ match v42 with │
00:07:53 #23909 [Verbose] > │ | US0_1 -> (* None *) │
00:07:53 #23910 [Verbose] > │ failwith<struct (float * float * float * float * │
00:07:53 #23911 [Verbose] > │ float * float * float * float * float)> "Option does not have a value." │
00:07:53 #23912 [Verbose] > │ | US0_0(v43, v44, v45, v46, v47, v48, v49, v50, v51) -> │
00:07:53 #23913 [Verbose] > │ (* Some *) │
00:07:53 #23914 [Verbose] > │ struct (v43, v44, v45, v46, v47, v48, v49, v50, v51) │
00:07:53 #23915 [Verbose] > │ closure4(v70, v71, v72, v73, v74, v75, v76, v77, v78) │
00:07:53 #23916 [Verbose] > │ else │
00:07:53 #23917 [Verbose] > │ let v80 : bool = v3 = 1 │
00:07:53 #23918 [Verbose] > │ if v80 then │
00:07:53 #23919 [Verbose] > │ let v94 : US0 = │
00:07:53 #23920 [Verbose] > │ match v0 with │
00:07:53 #23921 [Verbose] > │ | UH0_1(v81, v82, v83, v84, v85, v86, v87, v88, v89, │
00:07:53 #23922 [Verbose] > │ v90) -> (* Cons *) │
00:07:53 #23923 [Verbose] > │ US0_0(v81, v82, v83, v84, v85, v86, v87, v88, │
00:07:53 #23924 [Verbose] > │ v89) │
00:07:53 #23925 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #23926 [Verbose] > │ US0_1 │
00:07:53 #23927 [Verbose] > │ let struct (v122 : float, v123 : float, v124 : float, │
00:07:53 #23928 [Verbose] > │ v125 : float, v126 : float, v127 : float, v128 : float, v129 : float, v130 : │
00:07:53 #23929 [Verbose] > │ float) = │
00:07:53 #23930 [Verbose] > │ match v94 with │
00:07:53 #23931 [Verbose] > │ | US0_1 -> (* None *) │
00:07:53 #23932 [Verbose] > │ failwith<struct (float * float * float * float * │
00:07:53 #23933 [Verbose] > │ float * float * float * float * float)> "Option does not have a value." │
00:07:53 #23934 [Verbose] > │ | US0_0(v95, v96, v97, v98, v99, v100, v101, v102, │
00:07:53 #23935 [Verbose] > │ v103) -> (* Some *) │
00:07:53 #23936 [Verbose] > │ struct (v95, v96, v97, v98, v99, v100, v101, │
00:07:53 #23937 [Verbose] > │ v102, v103) │
00:07:53 #23938 [Verbose] > │ closure4(v122, v123, v124, v125, v126, v127, v128, v129, │
00:07:53 #23939 [Verbose] > │ v130) │
00:07:53 #23940 [Verbose] > │ else │
00:07:53 #23941 [Verbose] > │ closure5() │
00:07:53 #23942 [Verbose] > │ let struct (v135 : float, v136 : float, v137 : float) = v134 struct │
00:07:53 #23943 [Verbose] > │ (v4, v5, v6, v7, v8, v9, v10, v11, v12) │
00:07:53 #23944 [Verbose] > │ let v138 : float = v135 / v5 │
00:07:53 #23945 [Verbose] > │ let v139 : float = v136 / v5 │
00:07:53 #23946 [Verbose] > │ let v140 : float = v137 / v5 │
00:07:53 #23947 [Verbose] > │ UH1_1(0.0, 0.0, v10, v11, v12, 1.0, v138, v139, v140, v14) │
00:07:53 #23948 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:07:53 #23949 [Verbose] > │ v2 │
00:07:53 #23950 [Verbose] > │ and closure3 () (v0 : UH0) : UH1 = │
00:07:53 #23951 [Verbose] > │ let v1 : UH3 = UH3_0 │
00:07:53 #23952 [Verbose] > │ let v2 : int32 = 0 │
00:07:53 #23953 [Verbose] > │ let struct (v3 : UH3, v4 : int32) = method6(v0, v1, v2) │
00:07:53 #23954 [Verbose] > │ let v5 : UH3 = UH3_0 │
00:07:53 #23955 [Verbose] > │ let v6 : UH3 = method7(v3, v5) │
00:07:53 #23956 [Verbose] > │ let v7 : UH1 = UH1_0 │
00:07:53 #23957 [Verbose] > │ let v8 : UH1 = method8(v0, v6, v7) │
00:07:53 #23958 [Verbose] > │ v8 │
00:07:53 #23959 [Verbose] > │ and method10 (v0 : (UH0 -> UH0), v1 : UH0, v2 : int32) : UH0 = │
00:07:53 #23960 [Verbose] > │ let v3 : bool = v2 <= 0 │
00:07:53 #23961 [Verbose] > │ if v3 then │
00:07:53 #23962 [Verbose] > │ v1 │
00:07:53 #23963 [Verbose] > │ else │
00:07:53 #23964 [Verbose] > │ let v4 : UH0 = v0 v1 │
00:07:53 #23965 [Verbose] > │ let v5 : int32 = v2 - 1 │
00:07:53 #23966 [Verbose] > │ method10(v0, v4, v5) │
00:07:53 #23967 [Verbose] > │ and method11 (v0 : UH4, v1 : UH4) : UH4 = │
00:07:53 #23968 [Verbose] > │ match v0 with │
00:07:53 #23969 [Verbose] > │ | UH4_1(v2, v3) -> (* Cons *) │
00:07:53 #23970 [Verbose] > │ let v4 : UH4 = UH4_1(v2, v1) │
00:07:53 #23971 [Verbose] > │ method11(v3, v4) │
00:07:53 #23972 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:07:53 #23973 [Verbose] > │ v1 │
00:07:53 #23974 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 = │
00:07:53 #23975 [Verbose] > │ let v3 : float = 0.0 │
00:07:53 #23976 [Verbose] > │ let v4 : float = 0.16 │
00:07:53 #23977 [Verbose] > │ let v5 : float = 0.0 │
00:07:53 #23978 [Verbose] > │ let v6 : float = 0.0 │
00:07:53 #23979 [Verbose] > │ let v7 : float = 0.0 │
00:07:53 #23980 [Verbose] > │ let v8 : float = 0.0 │
00:07:53 #23981 [Verbose] > │ let v9 : float = 0.2 │
00:07:53 #23982 [Verbose] > │ let v10 : float = 0.0 │
00:07:53 #23983 [Verbose] > │ let v11 : float = 0.0 │
00:07:53 #23984 [Verbose] > │ let v12 : float = 1.0 │
00:07:53 #23985 [Verbose] > │ let v13 : float = 0.02 │
00:07:53 #23986 [Verbose] > │ let v14 : float = 0.0 │
00:07:53 #23987 [Verbose] > │ let v15 : float = 0.0 │
00:07:53 #23988 [Verbose] > │ let v16 : float = 0.0 │
00:07:53 #23989 [Verbose] > │ let v17 : float = 0.0 │
00:07:53 #23990 [Verbose] > │ let v18 : UH0 = UH0_0 │
00:07:53 #23991 [Verbose] > │ let v19 : UH0 = UH0_1(v3, v4, v12, v13, v14, v8, v15, v16, v17, v18) │
00:07:53 #23992 [Verbose] > │ let v20 : UH0 = UH0_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v19) │
00:07:53 #23993 [Verbose] > │ let v21 : UH0 = method10(v0, v20, v2) │
00:07:53 #23994 [Verbose] > │ let v35 : US0 = │
00:07:53 #23995 [Verbose] > │ match v21 with │
00:07:53 #23996 [Verbose] > │ | UH0_1(v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) -> (* Cons │
00:07:53 #23997 [Verbose] > │ *) │
00:07:53 #23998 [Verbose] > │ US0_0(v22, v23, v24, v25, v26, v27, v28, v29, v30) │
00:07:53 #23999 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #24000 [Verbose] > │ US0_1 │
00:07:53 #24001 [Verbose] > │ let struct (v63 : float, v64 : float, v65 : float, v66 : float, v67 : │
00:07:53 #24002 [Verbose] > │ float, v68 : float, v69 : float, v70 : float, v71 : float) = │
00:07:53 #24003 [Verbose] > │ match v35 with │
00:07:53 #24004 [Verbose] > │ | US0_1 -> (* None *) │
00:07:53 #24005 [Verbose] > │ failwith<struct (float * float * float * float * float * float * │
00:07:53 #24006 [Verbose] > │ float * float * float)> "Option does not have a value." │
00:07:53 #24007 [Verbose] > │ | US0_0(v36, v37, v38, v39, v40, v41, v42, v43, v44) -> (* Some *) │
00:07:53 #24008 [Verbose] > │ struct (v36, v37, v38, v39, v40, v41, v42, v43, v44) │
00:07:53 #24009 [Verbose] > │ let v72 : bool = v68 <= 10.0 │
00:07:53 #24010 [Verbose] > │ if v72 then │
00:07:53 #24011 [Verbose] > │ let v73 : UH4 = UH4_1(v21, v1) │
00:07:53 #24012 [Verbose] > │ let v74 : int32 = v2 + 1 │
00:07:53 #24013 [Verbose] > │ method9(v0, v73, v74) │
00:07:53 #24014 [Verbose] > │ else │
00:07:53 #24015 [Verbose] > │ let v76 : UH4 = UH4_0 │
00:07:53 #24016 [Verbose] > │ method11(v1, v76) │
00:07:53 #24017 [Verbose] > │ and method13 (v0 : UH0, v1 : UH6) : UH6 = │
00:07:53 #24018 [Verbose] > │ match v0 with │
00:07:53 #24019 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:53 #24020 [Verbose] > │ let v12 : UH6 = method13(v11, v1) │
00:07:53 #24021 [Verbose] > │ let v13 : float = v8 * v8 │
00:07:53 #24022 [Verbose] > │ let v14 : float = v9 * v9 │
00:07:53 #24023 [Verbose] > │ let v15 : float = v13 + v14 │
00:07:53 #24024 [Verbose] > │ let v16 : float = v10 * v10 │
00:07:53 #24025 [Verbose] > │ let v17 : float = v15 + v16 │
00:07:53 #24026 [Verbose] > │ let v18 : float = sqrt v17 │
00:07:53 #24027 [Verbose] > │ let v19 : float = 0.5 * v3 │
00:07:53 #24028 [Verbose] > │ let v20 : float = v18 ** 2.0 │
00:07:53 #24029 [Verbose] > │ let v21 : float = v19 * v20 │
00:07:53 #24030 [Verbose] > │ UH6_1(v21, v12) │
00:07:53 #24031 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #24032 [Verbose] > │ v1 │
00:07:53 #24033 [Verbose] > │ and method14 (v0 : UH6, v1 : float) : float = │
00:07:53 #24034 [Verbose] > │ match v0 with │
00:07:53 #24035 [Verbose] > │ | UH6_1(v2, v3) -> (* Cons *) │
00:07:53 #24036 [Verbose] > │ let v4 : float = v1 + v2 │
00:07:53 #24037 [Verbose] > │ method14(v3, v4) │
00:07:53 #24038 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:07:53 #24039 [Verbose] > │ v1 │
00:07:53 #24040 [Verbose] > │ and method12 (v0 : UH4, v1 : UH5) : UH5 = │
00:07:53 #24041 [Verbose] > │ match v0 with │
00:07:53 #24042 [Verbose] > │ | UH4_1(v2, v3) -> (* Cons *) │
00:07:53 #24043 [Verbose] > │ let v4 : UH5 = method12(v3, v1) │
00:07:53 #24044 [Verbose] > │ let v18 : US0 = │
00:07:53 #24045 [Verbose] > │ match v2 with │
00:07:53 #24046 [Verbose] > │ | UH0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons │
00:07:53 #24047 [Verbose] > │ *) │
00:07:53 #24048 [Verbose] > │ US0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13) │
00:07:53 #24049 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #24050 [Verbose] > │ US0_1 │
00:07:53 #24051 [Verbose] > │ let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50 │
00:07:53 #24052 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) = │
00:07:53 #24053 [Verbose] > │ match v18 with │
00:07:53 #24054 [Verbose] > │ | US0_1 -> (* None *) │
00:07:53 #24055 [Verbose] > │ failwith<struct (float * float * float * float * float * │
00:07:53 #24056 [Verbose] > │ float * float * float * float)> "Option does not have a value." │
00:07:53 #24057 [Verbose] > │ | US0_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some │
00:07:53 #24058 [Verbose] > │ *) │
00:07:53 #24059 [Verbose] > │ struct (v19, v20, v21, v22, v23, v24, v25, v26, v27) │
00:07:53 #24060 [Verbose] > │ let v55 : UH6 = UH6_0 │
00:07:53 #24061 [Verbose] > │ let v56 : UH6 = method13(v2, v55) │
00:07:53 #24062 [Verbose] > │ let v57 : float = 0.0 │
00:07:53 #24063 [Verbose] > │ let v58 : float = method14(v56, v57) │
00:07:53 #24064 [Verbose] > │ UH5_1(v51, v58, v4) │
00:07:53 #24065 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:07:53 #24066 [Verbose] > │ v1 │
00:07:53 #24067 [Verbose] > │ and method15 (v0 : UH5, v1 : UH6, v2 : UH6) : struct (UH6 * UH6) = │
00:07:53 #24068 [Verbose] > │ match v0 with │
00:07:53 #24069 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:07:53 #24070 [Verbose] > │ let v6 : UH6 = UH6_1(v3, v1) │
00:07:53 #24071 [Verbose] > │ let v7 : UH6 = UH6_1(v4, v2) │
00:07:53 #24072 [Verbose] > │ method15(v5, v6, v7) │
00:07:53 #24073 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:07:53 #24074 [Verbose] > │ struct (v1, v2) │
00:07:53 #24075 [Verbose] > │ and method16 (v0 : UH6, v1 : UH6) : UH6 = │
00:07:53 #24076 [Verbose] > │ match v0 with │
00:07:53 #24077 [Verbose] > │ | UH6_1(v2, v3) -> (* Cons *) │
00:07:53 #24078 [Verbose] > │ let v4 : UH6 = UH6_1(v2, v1) │
00:07:53 #24079 [Verbose] > │ method16(v3, v4) │
00:07:53 #24080 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:07:53 #24081 [Verbose] > │ v1 │
00:07:53 #24082 [Verbose] > │ and method18 (v0 : UH1, v1 : UH1) : UH1 = │
00:07:53 #24083 [Verbose] > │ match v0 with │
00:07:53 #24084 [Verbose] > │ | UH1_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *) │
00:07:53 #24085 [Verbose] > │ let v12 : UH1 = UH1_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1) │
00:07:53 #24086 [Verbose] > │ method18(v11, v12) │
00:07:53 #24087 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:07:53 #24088 [Verbose] > │ v1 │
00:07:53 #24089 [Verbose] > │ and method17 (v0 : UH1, v1 : UH1, v2 : UH1) : UH1 = │
00:07:53 #24090 [Verbose] > │ match v1 with │
00:07:53 #24091 [Verbose] > │ | UH1_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *) │
00:07:53 #24092 [Verbose] > │ match v2 with │
00:07:53 #24093 [Verbose] > │ | UH1_1(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │
00:07:53 #24094 [Verbose] > │ *) │
00:07:53 #24095 [Verbose] > │ let v23 : float = v3 + v13 │
00:07:53 #24096 [Verbose] > │ let v24 : float = v4 + v14 │
00:07:53 #24097 [Verbose] > │ let v25 : float = v8 + v18 │
00:07:53 #24098 [Verbose] > │ let v26 : float = v5 + v15 │
00:07:53 #24099 [Verbose] > │ let v27 : float = v6 + v16 │
00:07:53 #24100 [Verbose] > │ let v28 : float = v7 + v17 │
00:07:53 #24101 [Verbose] > │ let v29 : float = v9 + v19 │
00:07:53 #24102 [Verbose] > │ let v30 : float = v10 + v20 │
00:07:53 #24103 [Verbose] > │ let v31 : float = v11 + v21 │
00:07:53 #24104 [Verbose] > │ let v32 : UH1 = UH1_1(v23, v24, v26, v27, v28, v25, v29, v30, │
00:07:53 #24105 [Verbose] > │ v31, v0) │
00:07:53 #24106 [Verbose] > │ method17(v32, v12, v22) │
00:07:53 #24107 [Verbose] > │ | _ -> │
00:07:53 #24108 [Verbose] > │ let v34 : UH1 = UH1_0 │
00:07:53 #24109 [Verbose] > │ method18(v0, v34) │
00:07:53 #24110 [Verbose] > │ | _ -> │
00:07:53 #24111 [Verbose] > │ let v37 : UH1 = UH1_0 │
00:07:53 #24112 [Verbose] > │ method18(v0, v37) │
00:07:53 #24113 [Verbose] > │ and closure8 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:07:53 #24114 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:07:53 #24115 [Verbose] > │ let v4 : float = v0 / 2.0 │
00:07:53 #24116 [Verbose] > │ let v5 : UH0 = UH0_0 │
00:07:53 #24117 [Verbose] > │ let v6 : UH0 = method1(v4, v5, v3, v2) │
00:07:53 #24118 [Verbose] > │ let v7 : UH1 = v1 v6 │
00:07:53 #24119 [Verbose] > │ let v8 : UH0 = UH0_0 │
00:07:53 #24120 [Verbose] > │ let v9 : UH0 = method1(v4, v8, v7, v2) │
00:07:53 #24121 [Verbose] > │ let v10 : UH1 = v1 v9 │
00:07:53 #24122 [Verbose] > │ let v11 : UH0 = UH0_0 │
00:07:53 #24123 [Verbose] > │ let v12 : UH0 = method1(v0, v11, v10, v2) │
00:07:53 #24124 [Verbose] > │ let v13 : UH1 = v1 v12 │
00:07:53 #24125 [Verbose] > │ let v14 : float = v0 / 6.0 │
00:07:53 #24126 [Verbose] > │ let v15 : UH1 = UH1_0 │
00:07:53 #24127 [Verbose] > │ let v16 : UH1 = method17(v15, v3, v7) │
00:07:53 #24128 [Verbose] > │ let v17 : UH1 = UH1_0 │
00:07:53 #24129 [Verbose] > │ let v18 : UH1 = method17(v17, v16, v7) │
00:07:53 #24130 [Verbose] > │ let v19 : UH1 = UH1_0 │
00:07:53 #24131 [Verbose] > │ let v20 : UH1 = method17(v19, v18, v10) │
00:07:53 #24132 [Verbose] > │ let v21 : UH1 = UH1_0 │
00:07:53 #24133 [Verbose] > │ let v22 : UH1 = method17(v21, v20, v10) │
00:07:53 #24134 [Verbose] > │ let v23 : UH1 = UH1_0 │
00:07:53 #24135 [Verbose] > │ let v24 : UH1 = method17(v23, v22, v13) │
00:07:53 #24136 [Verbose] > │ let v25 : UH0 = UH0_0 │
00:07:53 #24137 [Verbose] > │ let v26 : UH0 = method1(v14, v25, v24, v2) │
00:07:53 #24138 [Verbose] > │ v26 │
00:07:53 #24139 [Verbose] > │ and closure7 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:07:53 #24140 [Verbose] > │ closure8(v0, v1) │
00:07:53 #24141 [Verbose] > │ and closure6 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:07:53 #24142 [Verbose] > │ closure7(v0) │
00:07:53 #24143 [Verbose] > │ and method19 (v0 : UH4, v1 : UH5) : UH5 = │
00:07:53 #24144 [Verbose] > │ match v0 with │
00:07:53 #24145 [Verbose] > │ | UH4_1(v2, v3) -> (* Cons *) │
00:07:53 #24146 [Verbose] > │ let v4 : UH5 = method19(v3, v1) │
00:07:53 #24147 [Verbose] > │ let v18 : US0 = │
00:07:53 #24148 [Verbose] > │ match v2 with │
00:07:53 #24149 [Verbose] > │ | UH0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons │
00:07:53 #24150 [Verbose] > │ *) │
00:07:53 #24151 [Verbose] > │ US0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13) │
00:07:53 #24152 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:53 #24153 [Verbose] > │ US0_1 │
00:07:53 #24154 [Verbose] > │ let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50 │
00:07:53 #24155 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) = │
00:07:53 #24156 [Verbose] > │ match v18 with │
00:07:53 #24157 [Verbose] > │ | US0_1 -> (* None *) │
00:07:53 #24158 [Verbose] > │ failwith<struct (float * float * float * float * float * │
00:07:53 #24159 [Verbose] > │ float * float * float * float)> "Option does not have a value." │
00:07:53 #24160 [Verbose] > │ | US0_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some │
00:07:53 #24161 [Verbose] > │ *) │
00:07:53 #24162 [Verbose] > │ struct (v19, v20, v21, v22, v23, v24, v25, v26, v27) │
00:07:53 #24163 [Verbose] > │ let v55 : UH6 = UH6_0 │
00:07:53 #24164 [Verbose] > │ let v56 : UH6 = method13(v2, v55) │
00:07:53 #24165 [Verbose] > │ let v57 : float = 0.0 │
00:07:53 #24166 [Verbose] > │ let v58 : float = method14(v56, v57) │
00:07:53 #24167 [Verbose] > │ UH5_1(v51, v58, v4) │
00:07:53 #24168 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:07:53 #24169 [Verbose] > │ v1 │
00:07:53 #24170 [Verbose] > │ and method21 (v0 : UH6, v1 : int32) : int32 = │
00:07:53 #24171 [Verbose] > │ match v0 with │
00:07:53 #24172 [Verbose] > │ | UH6_1(v2, v3) -> (* Cons *) │
00:07:53 #24173 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:07:53 #24174 [Verbose] > │ method21(v3, v4) │
00:07:53 #24175 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:07:53 #24176 [Verbose] > │ v1 │
00:07:53 #24177 [Verbose] > │ and method22 (v0 : (float []), v1 : UH6, v2 : int32) : int32 = │
00:07:53 #24178 [Verbose] > │ match v1 with │
00:07:53 #24179 [Verbose] > │ | UH6_1(v3, v4) -> (* Cons *) │
00:07:53 #24180 [Verbose] > │ v0.[int v2] <- v3 │
00:07:53 #24181 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:07:53 #24182 [Verbose] > │ method22(v0, v4, v5) │
00:07:53 #24183 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:07:53 #24184 [Verbose] > │ v2 │
00:07:53 #24185 [Verbose] > │ and method20 (v0 : UH6) : (float []) = │
00:07:53 #24186 [Verbose] > │ let v1 : int32 = 0 │
00:07:53 #24187 [Verbose] > │ let v2 : int32 = method21(v0, v1) │
00:07:53 #24188 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:07:53 #24189 [Verbose] > │ let v4 : int32 = 0 │
00:07:53 #24190 [Verbose] > │ let v5 : int32 = method22(v3, v0, v4) │
00:07:53 #24191 [Verbose] > │ v3 │
00:07:53 #24192 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:53 #24193 [Verbose] > │ []) * (float [])) [])) = │
00:07:53 #24194 [Verbose] > │ let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0() │
00:07:53 #24195 [Verbose] > │ let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03 │
00:07:53 #24196 [Verbose] > │ let v2 : (UH0 -> UH1) = closure3() │
00:07:53 #24197 [Verbose] > │ let v3 : (UH0 -> UH0) = v1 v2 │
00:07:53 #24198 [Verbose] > │ let v4 : UH4 = UH4_0 │
00:07:53 #24199 [Verbose] > │ let v5 : int32 = 0 │
00:07:53 #24200 [Verbose] > │ let v6 : UH4 = method9(v3, v4, v5) │
00:07:53 #24201 [Verbose] > │ let v7 : UH5 = UH5_0 │
00:07:53 #24202 [Verbose] > │ let v8 : UH5 = method12(v6, v7) │
00:07:53 #24203 [Verbose] > │ let v9 : UH6 = UH6_0 │
00:07:53 #24204 [Verbose] > │ let v10 : UH6 = UH6_0 │
00:07:53 #24205 [Verbose] > │ let struct (v11 : UH6, v12 : UH6) = method15(v8, v9, v10) │
00:07:53 #24206 [Verbose] > │ let v13 : UH6 = UH6_0 │
00:07:53 #24207 [Verbose] > │ let v14 : UH6 = method16(v11, v13) │
00:07:53 #24208 [Verbose] > │ let v15 : UH6 = UH6_0 │
00:07:53 #24209 [Verbose] > │ let v16 : UH6 = method16(v12, v15) │
00:07:53 #24210 [Verbose] > │ let v17 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure6() │
00:07:53 #24211 [Verbose] > │ let v18 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v17 0.03 │
00:07:53 #24212 [Verbose] > │ let v19 : (UH0 -> UH0) = v18 v2 │
00:07:53 #24213 [Verbose] > │ let v20 : UH4 = UH4_0 │
00:07:53 #24214 [Verbose] > │ let v21 : int32 = 0 │
00:07:53 #24215 [Verbose] > │ let v22 : UH4 = method9(v19, v20, v21) │
00:07:53 #24216 [Verbose] > │ let v23 : UH5 = UH5_0 │
00:07:53 #24217 [Verbose] > │ let v24 : UH5 = method19(v22, v23) │
00:07:53 #24218 [Verbose] > │ let v25 : UH6 = UH6_0 │
00:07:53 #24219 [Verbose] > │ let v26 : UH6 = UH6_0 │
00:07:53 #24220 [Verbose] > │ let struct (v27 : UH6, v28 : UH6) = method15(v24, v25, v26) │
00:07:53 #24221 [Verbose] > │ let v29 : UH6 = UH6_0 │
00:07:53 #24222 [Verbose] > │ let v30 : UH6 = method16(v27, v29) │
00:07:53 #24223 [Verbose] > │ let v31 : UH6 = UH6_0 │
00:07:53 #24224 [Verbose] > │ let v32 : UH6 = method16(v28, v31) │
00:07:53 #24225 [Verbose] > │ let v33 : (float []) = method20(v14) │
00:07:53 #24226 [Verbose] > │ let v34 : (float []) = method20(v16) │
00:07:53 #24227 [Verbose] > │ let v35 : (float []) = method20(v30) │
00:07:53 #24228 [Verbose] > │ let v36 : (float []) = method20(v32) │
00:07:53 #24229 [Verbose] > │ let v37 : string = "euler-cromer" │
00:07:53 #24230 [Verbose] > │ let v38 : string = "runge-kutta 4" │
00:07:53 #24231 [Verbose] > │ let v39 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:53 #24232 [Verbose] > │ (v37, v33, v34); struct (v38, v35, v36)|] │
00:07:53 #24233 [Verbose] > │ let v40 : string = "system kinetic energy versus time" │
00:07:53 #24234 [Verbose] > │ let v41 : string = "time (s)" │
00:07:53 #24235 [Verbose] > │ let v42 : string = "system kinetic energy (j)" │
00:07:53 #24236 [Verbose] > │ struct (v40, v41, v42, v39) │
00:07:53 #24237 [Verbose] > │ method0() │
00:07:53 #24238 [Verbose] > │ │
00:07:53 #24239 [Verbose] > │ │
00:07:53 #24240 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:53 #24241 [Verbose] >
00:07:53 #24242 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:53 #24243 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:53 #24244 [Verbose] > │ ### wave 1 │
00:07:53 #24245 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:53 #24246 [Verbose] >
00:07:53 #24247 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:53 #24248 [Verbose] > // // test
00:07:53 #24249 [Verbose] >
00:07:53 #24250 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =
00:07:53 #24251 [Verbose] > inl r1 = st1.pos_vec
00:07:53 #24252 [Verbose] > inl r2 = st2.pos_vec
00:07:53 #24253 [Verbose] > inl r21 = r2 ^-^ r1
00:07:53 #24254 [Verbose] > inl r21mag = magnitude r21
00:07:53 #24255 [Verbose] > -k * (r21mag - re) *^ r21 ^/ r21mag
00:07:53 #24256 [Verbose] >
00:07:53 #24257 [Verbose] > inl fixed_linear_spring k re r1 =
00:07:53 #24258 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:53 #24259 [Verbose] > linear_spring k re (particle_state { default_particle_state' with pos_vec =
00:07:53 #24260 [Verbose] > r1 })
00:07:53 #24261 [Verbose] >
00:07:53 #24262 [Verbose] > inl forces_string () =
00:07:53 #24263 [Verbose] > [[
00:07:53 #24264 [Verbose] > ExternalForce (0, fixed_linear_spring 5384 0 (zero_vec ()))
00:07:53 #24265 [Verbose] > ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))
00:07:53 #24266 [Verbose] > ]] /@ (
00:07:53 #24267 [Verbose] > listm'.init_series 0 59 1
00:07:53 #24268 [Verbose] > |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))
00:07:53 #24269 [Verbose] > )
00:07:53 #24270 [Verbose] >
00:07:53 #24271 [Verbose] > inl string_update dt =
00:07:53 #24272 [Verbose] > update_mps (runge_kutta_4 dt) (forces_string ())
00:07:53 #24273 [Verbose] >
00:07:53 #24274 [Verbose] > inl string_initial_overtone n =
00:07:53 #24275 [Verbose] > inl ball_mass = 0.0008293 * 0.65 / 64
00:07:53 #24276 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:53 #24277 [Verbose] > listm'.init_series 0.01 0.64 0.01
00:07:53 #24278 [Verbose] > |> listm.map (fun x =>
00:07:53 #24279 [Verbose] > inl y = 0.005 * sin (conv n * pi * x / 0.65)
00:07:53 #24280 [Verbose] > particle_state {
00:07:53 #24281 [Verbose] > default_particle_state' with
00:07:53 #24282 [Verbose] > mass = ball_mass
00:07:53 #24283 [Verbose] > pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:07:53 #24284 [Verbose] > velocity = zero_vec ()
00:07:53 #24285 [Verbose] > }
00:07:53 #24286 [Verbose] > )
00:07:53 #24287 [Verbose] > |> multi_particle_state
00:07:53 #24288 [Verbose] >
00:07:53 #24289 [Verbose] > inl string_initial_pluck () =
00:07:53 #24290 [Verbose] > inl ball_mass = 0.0008293 * 0.65 / 64
00:07:53 #24291 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:53 #24292 [Verbose] > listm'.init_series 0.01 0.64 0.01
00:07:53 #24293 [Verbose] > |> listm.map (fun x =>
00:07:53 #24294 [Verbose] > inl y =
00:07:53 #24295 [Verbose] > inl n = if x <= 0.51 then 0 else 0.65
00:07:53 #24296 [Verbose] > 0.005 / (0.51 - n) * (x - n)
00:07:53 #24297 [Verbose] > particle_state {
00:07:53 #24298 [Verbose] > default_particle_state' with
00:07:53 #24299 [Verbose] > mass = ball_mass
00:07:53 #24300 [Verbose] > pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:07:53 #24301 [Verbose] > velocity = zero_vec ()
00:07:53 #24302 [Verbose] > }
00:07:53 #24303 [Verbose] > )
00:07:53 #24304 [Verbose] > |> multi_particle_state
00:07:53 #24305 [Verbose] >
00:07:53 #24306 [Verbose] > let main () =
00:07:53 #24307 [Verbose] > inl ~frames = listm'.init_series 0 9 1f64
00:07:53 #24308 [Verbose] > inl initial_state = string_initial_overtone 3i32
00:07:53 #24309 [Verbose] > inl frames =
00:07:53 #24310 [Verbose] > frames
00:07:53 #24311 [Verbose] > |> listm.map (fun n =>
00:07:53 #24312 [Verbose] > inl (multi_particle_state sts) =
00:07:53 #24313 [Verbose] > seq.iterate' (string_update 0.000025) initial_state |> fun f =>
00:07:53 #24314 [Verbose] > f 0f64
00:07:53 #24315 [Verbose] > inl rs =
00:07:53 #24316 [Verbose] > [[ zero_vec () ]]
00:07:53 #24317 [Verbose] > /@ (sts |> listm.map (fun (particle_state st) => st.pos_vec))
00:07:53 #24318 [Verbose] > /@ [[ 0.65 *^ i_hat () ]]
00:07:53 #24319 [Verbose] > inl x, y =
00:07:53 #24320 [Verbose] > rs
00:07:53 #24321 [Verbose] > |> listm.map (fun r => r.x, r.y)
00:07:53 #24322 [Verbose] > |> listm'.unzip
00:07:53 #24323 [Verbose] > inl x : a i32 _ = x |> listm.toArray
00:07:53 #24324 [Verbose] > inl y : a i32 _ = y |> listm.toArray
00:07:53 #24325 [Verbose] > x, y
00:07:53 #24326 [Verbose] > )
00:07:53 #24327 [Verbose] > |> listm.toArray : a i32 _
00:07:53 #24328 [Verbose] >
00:07:53 #24329 [Verbose] > inl n = 0i32
00:07:53 #24330 [Verbose] >
00:07:53 #24331 [Verbose] > inl x, y = index frames n
00:07:53 #24332 [Verbose] >
00:07:53 #24333 [Verbose] > "wave",
00:07:53 #24334 [Verbose] > "position (m)",
00:07:53 #24335 [Verbose] > "displacement (m)",
00:07:53 #24336 [Verbose] > ;[[
00:07:53 #24337 [Verbose] > ($"$\"{!n}\"" : string), x, y
00:07:53 #24338 [Verbose] > ]]
00:07:54 #24339 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2609-0997-068973236328\main.spi
00:07:54 #24340 [Verbose] >
00:07:54 #24341 [Verbose] > ╭─[ 649.90ms - return value ]──────────────────────────────────────────────────╮
00:07:54 #24342 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:54 #24343 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:54 #24344 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:54 #24345 [Verbose] > │ stroke="none"/> │
00:07:54 #24346 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:54 #24347 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:54 #24348 [Verbose] > │ fill="#FFFFFF"> │
00:07:54 #24349 [Verbose] > │ wave │
00:07:54 #24350 [Verbose] > │ </text> │
00:07:54 #24351 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:07:54 #24352 [Verbose] > │ y2="75"/> │
00:07:54 #24353 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:54 #24354 [Verbose] > │ y2="75"/> │
00:07:54 #24355 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:07:54 #24356 [Verbose] > │ y2="75"/> │
00:07:54 #24357 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424" x2="85" │
00:07:54 #24358 [Verbose] > │ y2="75"/> │
00:07:54 #24359 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │
00:07:54 #24360 [Verbose] > │ y2... │
00:07:54 #24361 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:54 #24362 [Verbose] >
00:07:54 #24363 [Verbose] > ╭─[ 671.39ms - stdout ]────────────────────────────────────────────────────────╮
00:07:54 #24364 [Verbose] > │ type UH0 = │
00:07:54 #24365 [Verbose] > │ | UH0_0 │
00:07:54 #24366 [Verbose] > │ | UH0_1 of float * UH0 │
00:07:54 #24367 [Verbose] > │ and UH1 = │
00:07:54 #24368 [Verbose] > │ | UH1_0 │
00:07:54 #24369 [Verbose] > │ | UH1_1 of (float []) * (float []) * UH1 │
00:07:54 #24370 [Verbose] > │ let rec method3 (v0 : UH0, v1 : int32) : int32 = │
00:07:54 #24371 [Verbose] > │ match v0 with │
00:07:54 #24372 [Verbose] > │ | UH0_1(v2, v3) -> (* Cons *) │
00:07:54 #24373 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:07:54 #24374 [Verbose] > │ method3(v3, v4) │
00:07:54 #24375 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:54 #24376 [Verbose] > │ v1 │
00:07:54 #24377 [Verbose] > │ and method4 (v0 : (float []), v1 : UH0, v2 : int32) : int32 = │
00:07:54 #24378 [Verbose] > │ match v1 with │
00:07:54 #24379 [Verbose] > │ | UH0_1(v3, v4) -> (* Cons *) │
00:07:54 #24380 [Verbose] > │ v0.[int v2] <- v3 │
00:07:54 #24381 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:07:54 #24382 [Verbose] > │ method4(v0, v4, v5) │
00:07:54 #24383 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:54 #24384 [Verbose] > │ v2 │
00:07:54 #24385 [Verbose] > │ and method2 (v0 : UH0) : (float []) = │
00:07:54 #24386 [Verbose] > │ let v1 : int32 = 0 │
00:07:54 #24387 [Verbose] > │ let v2 : int32 = method3(v0, v1) │
00:07:54 #24388 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:07:54 #24389 [Verbose] > │ let v4 : int32 = 0 │
00:07:54 #24390 [Verbose] > │ let v5 : int32 = method4(v3, v0, v4) │
00:07:54 #24391 [Verbose] > │ v3 │
00:07:54 #24392 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1) : UH1 = │
00:07:54 #24393 [Verbose] > │ match v0 with │
00:07:54 #24394 [Verbose] > │ | UH0_1(v2, v3) -> (* Cons *) │
00:07:54 #24395 [Verbose] > │ let v4 : UH1 = method1(v3, v1) │
00:07:54 #24396 [Verbose] > │ let v5 : float = 0.0 │
00:07:54 #24397 [Verbose] > │ let v6 : float = 0.01 │
00:07:54 #24398 [Verbose] > │ let v7 : float = 0.02 │
00:07:54 #24399 [Verbose] > │ let v8 : float = 0.03 │
00:07:54 #24400 [Verbose] > │ let v9 : float = 0.04 │
00:07:54 #24401 [Verbose] > │ let v10 : float = 0.05 │
00:07:54 #24402 [Verbose] > │ let v11 : float = 0.060000000000000005 │
00:07:54 #24403 [Verbose] > │ let v12 : float = 0.06999999999999999 │
00:07:54 #24404 [Verbose] > │ let v13 : float = 0.08 │
00:07:54 #24405 [Verbose] > │ let v14 : float = 0.09 │
00:07:54 #24406 [Verbose] > │ let v15 : float = 0.09999999999999999 │
00:07:54 #24407 [Verbose] > │ let v16 : float = 0.11 │
00:07:54 #24408 [Verbose] > │ let v17 : float = 0.12 │
00:07:54 #24409 [Verbose] > │ let v18 : float = 0.13 │
00:07:54 #24410 [Verbose] > │ let v19 : float = 0.14 │
00:07:54 #24411 [Verbose] > │ let v20 : float = 0.15000000000000002 │
00:07:54 #24412 [Verbose] > │ let v21 : float = 0.16 │
00:07:54 #24413 [Verbose] > │ let v22 : float = 0.17 │
00:07:54 #24414 [Verbose] > │ let v23 : float = 0.18000000000000002 │
00:07:54 #24415 [Verbose] > │ let v24 : float = 0.19 │
00:07:54 #24416 [Verbose] > │ let v25 : float = 0.2 │
00:07:54 #24417 [Verbose] > │ let v26 : float = 0.21000000000000002 │
00:07:54 #24418 [Verbose] > │ let v27 : float = 0.22 │
00:07:54 #24419 [Verbose] > │ let v28 : float = 0.23 │
00:07:54 #24420 [Verbose] > │ let v29 : float = 0.24000000000000002 │
00:07:54 #24421 [Verbose] > │ let v30 : float = 0.25 │
00:07:54 #24422 [Verbose] > │ let v31 : float = 0.26 │
00:07:54 #24423 [Verbose] > │ let v32 : float = 0.27 │
00:07:54 #24424 [Verbose] > │ let v33 : float = 0.28 │
00:07:54 #24425 [Verbose] > │ let v34 : float = 0.29000000000000004 │
00:07:54 #24426 [Verbose] > │ let v35 : float = 0.3 │
00:07:54 #24427 [Verbose] > │ let v36 : float = 0.31 │
00:07:54 #24428 [Verbose] > │ let v37 : float = 0.32 │
00:07:54 #24429 [Verbose] > │ let v38 : float = 0.33 │
00:07:54 #24430 [Verbose] > │ let v39 : float = 0.34 │
00:07:54 #24431 [Verbose] > │ let v40 : float = 0.35000000000000003 │
00:07:54 #24432 [Verbose] > │ let v41 : float = 0.36000000000000004 │
00:07:54 #24433 [Verbose] > │ let v42 : float = 0.37 │
00:07:54 #24434 [Verbose] > │ let v43 : float = 0.38 │
00:07:54 #24435 [Verbose] > │ let v44 : float = 0.39 │
00:07:54 #24436 [Verbose] > │ let v45 : float = 0.4 │
00:07:54 #24437 [Verbose] > │ let v46 : float = 0.41000000000000003 │
00:07:54 #24438 [Verbose] > │ let v47 : float = 0.42000000000000004 │
00:07:54 #24439 [Verbose] > │ let v48 : float = 0.43 │
00:07:54 #24440 [Verbose] > │ let v49 : float = 0.44 │
00:07:54 #24441 [Verbose] > │ let v50 : float = 0.45 │
00:07:54 #24442 [Verbose] > │ let v51 : float = 0.46 │
00:07:54 #24443 [Verbose] > │ let v52 : float = 0.47000000000000003 │
00:07:54 #24444 [Verbose] > │ let v53 : float = 0.48000000000000004 │
00:07:54 #24445 [Verbose] > │ let v54 : float = 0.49 │
00:07:54 #24446 [Verbose] > │ let v55 : float = 0.5 │
00:07:54 #24447 [Verbose] > │ let v56 : float = 0.51 │
00:07:54 #24448 [Verbose] > │ let v57 : float = 0.52 │
00:07:54 #24449 [Verbose] > │ let v58 : float = 0.53 │
00:07:54 #24450 [Verbose] > │ let v59 : float = 0.54 │
00:07:54 #24451 [Verbose] > │ let v60 : float = 0.55 │
00:07:54 #24452 [Verbose] > │ let v61 : float = 0.56 │
00:07:54 #24453 [Verbose] > │ let v62 : float = 0.5700000000000001 │
00:07:54 #24454 [Verbose] > │ let v63 : float = 0.5800000000000001 │
00:07:54 #24455 [Verbose] > │ let v64 : float = 0.59 │
00:07:54 #24456 [Verbose] > │ let v65 : float = 0.6 │
00:07:54 #24457 [Verbose] > │ let v66 : float = 0.61 │
00:07:54 #24458 [Verbose] > │ let v67 : float = 0.62 │
00:07:54 #24459 [Verbose] > │ let v68 : float = 0.63 │
00:07:54 #24460 [Verbose] > │ let v69 : float = 0.64 │
00:07:54 #24461 [Verbose] > │ let v70 : float = 0.65 │
00:07:54 #24462 [Verbose] > │ let v71 : UH0 = UH0_0 │
00:07:54 #24463 [Verbose] > │ let v72 : UH0 = UH0_1(v70, v71) │
00:07:54 #24464 [Verbose] > │ let v73 : UH0 = UH0_1(v69, v72) │
00:07:54 #24465 [Verbose] > │ let v74 : UH0 = UH0_1(v68, v73) │
00:07:54 #24466 [Verbose] > │ let v75 : UH0 = UH0_1(v67, v74) │
00:07:54 #24467 [Verbose] > │ let v76 : UH0 = UH0_1(v66, v75) │
00:07:54 #24468 [Verbose] > │ let v77 : UH0 = UH0_1(v65, v76) │
00:07:54 #24469 [Verbose] > │ let v78 : UH0 = UH0_1(v64, v77) │
00:07:54 #24470 [Verbose] > │ let v79 : UH0 = UH0_1(v63, v78) │
00:07:54 #24471 [Verbose] > │ let v80 : UH0 = UH0_1(v62, v79) │
00:07:54 #24472 [Verbose] > │ let v81 : UH0 = UH0_1(v61, v80) │
00:07:54 #24473 [Verbose] > │ let v82 : UH0 = UH0_1(v60, v81) │
00:07:54 #24474 [Verbose] > │ let v83 : UH0 = UH0_1(v59, v82) │
00:07:54 #24475 [Verbose] > │ let v84 : UH0 = UH0_1(v58, v83) │
00:07:54 #24476 [Verbose] > │ let v85 : UH0 = UH0_1(v57, v84) │
00:07:54 #24477 [Verbose] > │ let v86 : UH0 = UH0_1(v56, v85) │
00:07:54 #24478 [Verbose] > │ let v87 : UH0 = UH0_1(v55, v86) │
00:07:54 #24479 [Verbose] > │ let v88 : UH0 = UH0_1(v54, v87) │
00:07:54 #24480 [Verbose] > │ let v89 : UH0 = UH0_1(v53, v88) │
00:07:54 #24481 [Verbose] > │ let v90 : UH0 = UH0_1(v52, v89) │
00:07:54 #24482 [Verbose] > │ let v91 : UH0 = UH0_1(v51, v90) │
00:07:54 #24483 [Verbose] > │ let v92 : UH0 = UH0_1(v50, v91) │
00:07:54 #24484 [Verbose] > │ let v93 : UH0 = UH0_1(v49, v92) │
00:07:54 #24485 [Verbose] > │ let v94 : UH0 = UH0_1(v48, v93) │
00:07:54 #24486 [Verbose] > │ let v95 : UH0 = UH0_1(v47, v94) │
00:07:54 #24487 [Verbose] > │ let v96 : UH0 = UH0_1(v46, v95) │
00:07:54 #24488 [Verbose] > │ let v97 : UH0 = UH0_1(v45, v96) │
00:07:54 #24489 [Verbose] > │ let v98 : UH0 = UH0_1(v44, v97) │
00:07:54 #24490 [Verbose] > │ let v99 : UH0 = UH0_1(v43, v98) │
00:07:54 #24491 [Verbose] > │ let v100 : UH0 = UH0_1(v42, v99) │
00:07:54 #24492 [Verbose] > │ let v101 : UH0 = UH0_1(v41, v100) │
00:07:54 #24493 [Verbose] > │ let v102 : UH0 = UH0_1(v40, v101) │
00:07:54 #24494 [Verbose] > │ let v103 : UH0 = UH0_1(v39, v102) │
00:07:54 #24495 [Verbose] > │ let v104 : UH0 = UH0_1(v38, v103) │
00:07:54 #24496 [Verbose] > │ let v105 : UH0 = UH0_1(v37, v104) │
00:07:54 #24497 [Verbose] > │ let v106 : UH0 = UH0_1(v36, v105) │
00:07:54 #24498 [Verbose] > │ let v107 : UH0 = UH0_1(v35, v106) │
00:07:54 #24499 [Verbose] > │ let v108 : UH0 = UH0_1(v34, v107) │
00:07:54 #24500 [Verbose] > │ let v109 : UH0 = UH0_1(v33, v108) │
00:07:54 #24501 [Verbose] > │ let v110 : UH0 = UH0_1(v32, v109) │
00:07:54 #24502 [Verbose] > │ let v111 : UH0 = UH0_1(v31, v110) │
00:07:54 #24503 [Verbose] > │ let v112 : UH0 = UH0_1(v30, v111) │
00:07:54 #24504 [Verbose] > │ let v113 : UH0 = UH0_1(v29, v112) │
00:07:54 #24505 [Verbose] > │ let v114 : UH0 = UH0_1(v28, v113) │
00:07:54 #24506 [Verbose] > │ let v115 : UH0 = UH0_1(v27, v114) │
00:07:54 #24507 [Verbose] > │ let v116 : UH0 = UH0_1(v26, v115) │
00:07:54 #24508 [Verbose] > │ let v117 : UH0 = UH0_1(v25, v116) │
00:07:54 #24509 [Verbose] > │ let v118 : UH0 = UH0_1(v24, v117) │
00:07:54 #24510 [Verbose] > │ let v119 : UH0 = UH0_1(v23, v118) │
00:07:54 #24511 [Verbose] > │ let v120 : UH0 = UH0_1(v22, v119) │
00:07:54 #24512 [Verbose] > │ let v121 : UH0 = UH0_1(v21, v120) │
00:07:54 #24513 [Verbose] > │ let v122 : UH0 = UH0_1(v20, v121) │
00:07:54 #24514 [Verbose] > │ let v123 : UH0 = UH0_1(v19, v122) │
00:07:54 #24515 [Verbose] > │ let v124 : UH0 = UH0_1(v18, v123) │
00:07:54 #24516 [Verbose] > │ let v125 : UH0 = UH0_1(v17, v124) │
00:07:54 #24517 [Verbose] > │ let v126 : UH0 = UH0_1(v16, v125) │
00:07:54 #24518 [Verbose] > │ let v127 : UH0 = UH0_1(v15, v126) │
00:07:54 #24519 [Verbose] > │ let v128 : UH0 = UH0_1(v14, v127) │
00:07:54 #24520 [Verbose] > │ let v129 : UH0 = UH0_1(v13, v128) │
00:07:54 #24521 [Verbose] > │ let v130 : UH0 = UH0_1(v12, v129) │
00:07:54 #24522 [Verbose] > │ let v131 : UH0 = UH0_1(v11, v130) │
00:07:54 #24523 [Verbose] > │ let v132 : UH0 = UH0_1(v10, v131) │
00:07:54 #24524 [Verbose] > │ let v133 : UH0 = UH0_1(v9, v132) │
00:07:54 #24525 [Verbose] > │ let v134 : UH0 = UH0_1(v8, v133) │
00:07:54 #24526 [Verbose] > │ let v135 : UH0 = UH0_1(v7, v134) │
00:07:54 #24527 [Verbose] > │ let v136 : UH0 = UH0_1(v6, v135) │
00:07:54 #24528 [Verbose] > │ let v137 : UH0 = UH0_1(v5, v136) │
00:07:54 #24529 [Verbose] > │ let v138 : (float []) = method2(v137) │
00:07:54 #24530 [Verbose] > │ let v139 : float = 0.0 │
00:07:54 #24531 [Verbose] > │ let v140 : float = 0.0007224452478461068 │
00:07:54 #24532 [Verbose] > │ let v141 : float = 0.0014297283919934465 │
00:07:54 #24533 [Verbose] > │ let v142 : float = 0.0021070055388626454 │
00:07:54 #24534 [Verbose] > │ let v143 : float = 0.00274006253677335 │
00:07:54 #24535 [Verbose] > │ let v144 : float = 0.0033156132912039757 │
00:07:54 #24536 [Verbose] > │ let v145 : float = 0.0038215786027292415 │
00:07:54 #24537 [Verbose] > │ let v146 : float = 0.004247339675607605 │
00:07:54 #24538 [Verbose] > │ let v147 : float = 0.004583960976582912 │
00:07:54 #24539 [Verbose] > │ let v148 : float = 0.004824377766717757 │
00:07:54 #24540 [Verbose] > │ let v149 : float = 0.00496354437049027 │
00:07:54 #24541 [Verbose] > │ let v150 : float = 0.004998540070400965 │
00:07:54 #24542 [Verbose] > │ let v151 : float = 0.004928630404658255 │
00:07:54 #24543 [Verbose] > │ let v152 : float = 0.004755282581475768 │
00:07:54 #24544 [Verbose] > │ let v153 : float = 0.004482134686478519 │
00:07:54 #24545 [Verbose] > │ let v154 : float = 0.0041149193294682815 │
00:07:54 #24546 [Verbose] > │ let v155 : float = 0.0036613433329888666 │
00:07:54 #24547 [Verbose] > │ let v156 : float = 0.0031309259876915697 │
00:07:54 #24548 [Verbose] > │ let v157 : float = 0.002534799269067951 │
00:07:54 #24549 [Verbose] > │ let v158 : float = 0.0018854742084416015 │
00:07:54 #24550 [Verbose] > │ let v159 : float = 0.0011965783214377905 │
00:07:54 #24551 [Verbose] > │ let v160 : float = 0.00048256960457257535 │
00:07:54 #24552 [Verbose] > │ let v161 : float = -0.00024156689762753317 │
00:07:54 #24553 [Verbose] > │ let v162 : float = -0.0009606335867685418 │
00:07:54 #24554 [Verbose] > │ let v163 : float = -0.001659539265642642 │
00:07:54 #24555 [Verbose] > │ let v164 : float = -0.002323615860218842 │
00:07:54 #24556 [Verbose] > │ let v165 : float = -0.0029389262614623636 │
00:07:54 #24557 [Verbose] > │ let v166 : float = -0.003492556826244686 │
00:07:54 #24558 [Verbose] > │ let v167 : float = -0.003972888398568771 │
00:07:54 #24559 [Verbose] > │ let v168 : float = -0.00436984016313259 │
00:07:54 #24560 [Verbose] > │ let v169 : float = -0.004675081213427074 │
00:07:54 #24561 [Verbose] > │ let v170 : float = -0.004882205394146359 │
00:07:54 #24562 [Verbose] > │ let v171 : float = -0.004986865748457456 │
00:07:54 #24563 [Verbose] > │ let v172 : float = -0.004986865748457456 │
00:07:54 #24564 [Verbose] > │ let v173 : float = -0.004882205394146361 │
00:07:54 #24565 [Verbose] > │ let v174 : float = -0.004675081213427074 │
00:07:54 #24566 [Verbose] > │ let v175 : float = -0.004369840163132589 │
00:07:54 #24567 [Verbose] > │ let v176 : float = -0.003972888398568774 │
00:07:54 #24568 [Verbose] > │ let v177 : float = -0.0034925568262446837 │
00:07:54 #24569 [Verbose] > │ let v178 : float = -0.002938926261462367 │
00:07:54 #24570 [Verbose] > │ let v179 : float = -0.002323615860218846 │
00:07:54 #24571 [Verbose] > │ let v180 : float = -0.0016595392656426435 │
00:07:54 #24572 [Verbose] > │ let v181 : float = -0.0009606335867685414 │
00:07:54 #24573 [Verbose] > │ let v182 : float = -0.00024156689762753724 │
00:07:54 #24574 [Verbose] > │ let v183 : float = 0.0004825696045725713 │
00:07:54 #24575 [Verbose] > │ let v184 : float = 0.0011965783214377866 │
00:07:54 #24576 [Verbose] > │ let v185 : float = 0.0018854742084416021 │
00:07:54 #24577 [Verbose] > │ let v186 : float = 0.002534799269067953 │
00:07:54 #24578 [Verbose] > │ let v187 : float = 0.003130925987691568 │
00:07:54 #24579 [Verbose] > │ let v188 : float = 0.0036613433329888622 │
00:07:54 #24580 [Verbose] > │ let v189 : float = 0.0041149193294682815 │
00:07:54 #24581 [Verbose] > │ let v190 : float = 0.0044821346864785195 │
00:07:54 #24582 [Verbose] > │ let v191 : float = 0.004755282581475766 │
00:07:54 #24583 [Verbose] > │ let v192 : float = 0.004928630404658255 │
00:07:54 #24584 [Verbose] > │ let v193 : float = 0.004998540070400965 │
00:07:54 #24585 [Verbose] > │ let v194 : float = 0.004963544370490271 │
00:07:54 #24586 [Verbose] > │ let v195 : float = 0.004824377766717758 │
00:07:54 #24587 [Verbose] > │ let v196 : float = 0.004583960976582912 │
00:07:54 #24588 [Verbose] > │ let v197 : float = 0.004247339675607605 │
00:07:54 #24589 [Verbose] > │ let v198 : float = 0.003821578602729245 │
00:07:54 #24590 [Verbose] > │ let v199 : float = 0.0033156132912039783 │
00:07:54 #24591 [Verbose] > │ let v200 : float = 0.0027400625367733585 │
00:07:54 #24592 [Verbose] > │ let v201 : float = 0.0021070055388626528 │
00:07:54 #24593 [Verbose] > │ let v202 : float = 0.001429728391993452 │
00:07:54 #24594 [Verbose] > │ let v203 : float = 0.0007224452478461016 │
00:07:54 #24595 [Verbose] > │ let v204 : float = 0.0 │
00:07:54 #24596 [Verbose] > │ let v205 : UH0 = UH0_0 │
00:07:54 #24597 [Verbose] > │ let v206 : UH0 = UH0_1(v204, v205) │
00:07:54 #24598 [Verbose] > │ let v207 : UH0 = UH0_1(v203, v206) │
00:07:54 #24599 [Verbose] > │ let v208 : UH0 = UH0_1(v202, v207) │
00:07:54 #24600 [Verbose] > │ let v209 : UH0 = UH0_1(v201, v208) │
00:07:54 #24601 [Verbose] > │ let v210 : UH0 = UH0_1(v200, v209) │
00:07:54 #24602 [Verbose] > │ let v211 : UH0 = UH0_1(v199, v210) │
00:07:54 #24603 [Verbose] > │ let v212 : UH0 = UH0_1(v198, v211) │
00:07:54 #24604 [Verbose] > │ let v213 : UH0 = UH0_1(v197, v212) │
00:07:54 #24605 [Verbose] > │ let v214 : UH0 = UH0_1(v196, v213) │
00:07:54 #24606 [Verbose] > │ let v215 : UH0 = UH0_1(v195, v214) │
00:07:54 #24607 [Verbose] > │ let v216 : UH0 = UH0_1(v194, v215) │
00:07:54 #24608 [Verbose] > │ let v217 : UH0 = UH0_1(v193, v216) │
00:07:54 #24609 [Verbose] > │ let v218 : UH0 = UH0_1(v192, v217) │
00:07:54 #24610 [Verbose] > │ let v219 : UH0 = UH0_1(v191, v218) │
00:07:54 #24611 [Verbose] > │ let v220 : UH0 = UH0_1(v190, v219) │
00:07:54 #24612 [Verbose] > │ let v221 : UH0 = UH0_1(v189, v220) │
00:07:54 #24613 [Verbose] > │ let v222 : UH0 = UH0_1(v188, v221) │
00:07:54 #24614 [Verbose] > │ let v223 : UH0 = UH0_1(v187, v222) │
00:07:54 #24615 [Verbose] > │ let v224 : UH0 = UH0_1(v186, v223) │
00:07:54 #24616 [Verbose] > │ let v225 : UH0 = UH0_1(v185, v224) │
00:07:54 #24617 [Verbose] > │ let v226 : UH0 = UH0_1(v184, v225) │
00:07:54 #24618 [Verbose] > │ let v227 : UH0 = UH0_1(v183, v226) │
00:07:54 #24619 [Verbose] > │ let v228 : UH0 = UH0_1(v182, v227) │
00:07:54 #24620 [Verbose] > │ let v229 : UH0 = UH0_1(v181, v228) │
00:07:54 #24621 [Verbose] > │ let v230 : UH0 = UH0_1(v180, v229) │
00:07:54 #24622 [Verbose] > │ let v231 : UH0 = UH0_1(v179, v230) │
00:07:54 #24623 [Verbose] > │ let v232 : UH0 = UH0_1(v178, v231) │
00:07:54 #24624 [Verbose] > │ let v233 : UH0 = UH0_1(v177, v232) │
00:07:54 #24625 [Verbose] > │ let v234 : UH0 = UH0_1(v176, v233) │
00:07:54 #24626 [Verbose] > │ let v235 : UH0 = UH0_1(v175, v234) │
00:07:54 #24627 [Verbose] > │ let v236 : UH0 = UH0_1(v174, v235) │
00:07:54 #24628 [Verbose] > │ let v237 : UH0 = UH0_1(v173, v236) │
00:07:54 #24629 [Verbose] > │ let v238 : UH0 = UH0_1(v172, v237) │
00:07:54 #24630 [Verbose] > │ let v239 : UH0 = UH0_1(v171, v238) │
00:07:54 #24631 [Verbose] > │ let v240 : UH0 = UH0_1(v170, v239) │
00:07:54 #24632 [Verbose] > │ let v241 : UH0 = UH0_1(v169, v240) │
00:07:54 #24633 [Verbose] > │ let v242 : UH0 = UH0_1(v168, v241) │
00:07:54 #24634 [Verbose] > │ let v243 : UH0 = UH0_1(v167, v242) │
00:07:54 #24635 [Verbose] > │ let v244 : UH0 = UH0_1(v166, v243) │
00:07:54 #24636 [Verbose] > │ let v245 : UH0 = UH0_1(v165, v244) │
00:07:54 #24637 [Verbose] > │ let v246 : UH0 = UH0_1(v164, v245) │
00:07:54 #24638 [Verbose] > │ let v247 : UH0 = UH0_1(v163, v246) │
00:07:54 #24639 [Verbose] > │ let v248 : UH0 = UH0_1(v162, v247) │
00:07:54 #24640 [Verbose] > │ let v249 : UH0 = UH0_1(v161, v248) │
00:07:54 #24641 [Verbose] > │ let v250 : UH0 = UH0_1(v160, v249) │
00:07:54 #24642 [Verbose] > │ let v251 : UH0 = UH0_1(v159, v250) │
00:07:54 #24643 [Verbose] > │ let v252 : UH0 = UH0_1(v158, v251) │
00:07:54 #24644 [Verbose] > │ let v253 : UH0 = UH0_1(v157, v252) │
00:07:54 #24645 [Verbose] > │ let v254 : UH0 = UH0_1(v156, v253) │
00:07:54 #24646 [Verbose] > │ let v255 : UH0 = UH0_1(v155, v254) │
00:07:54 #24647 [Verbose] > │ let v256 : UH0 = UH0_1(v154, v255) │
00:07:54 #24648 [Verbose] > │ let v257 : UH0 = UH0_1(v153, v256) │
00:07:54 #24649 [Verbose] > │ let v258 : UH0 = UH0_1(v152, v257) │
00:07:54 #24650 [Verbose] > │ let v259 : UH0 = UH0_1(v151, v258) │
00:07:54 #24651 [Verbose] > │ let v260 : UH0 = UH0_1(v150, v259) │
00:07:54 #24652 [Verbose] > │ let v261 : UH0 = UH0_1(v149, v260) │
00:07:54 #24653 [Verbose] > │ let v262 : UH0 = UH0_1(v148, v261) │
00:07:54 #24654 [Verbose] > │ let v263 : UH0 = UH0_1(v147, v262) │
00:07:54 #24655 [Verbose] > │ let v264 : UH0 = UH0_1(v146, v263) │
00:07:54 #24656 [Verbose] > │ let v265 : UH0 = UH0_1(v145, v264) │
00:07:54 #24657 [Verbose] > │ let v266 : UH0 = UH0_1(v144, v265) │
00:07:54 #24658 [Verbose] > │ let v267 : UH0 = UH0_1(v143, v266) │
00:07:54 #24659 [Verbose] > │ let v268 : UH0 = UH0_1(v142, v267) │
00:07:54 #24660 [Verbose] > │ let v269 : UH0 = UH0_1(v141, v268) │
00:07:54 #24661 [Verbose] > │ let v270 : UH0 = UH0_1(v140, v269) │
00:07:54 #24662 [Verbose] > │ let v271 : UH0 = UH0_1(v139, v270) │
00:07:54 #24663 [Verbose] > │ let v272 : (float []) = method2(v271) │
00:07:54 #24664 [Verbose] > │ UH1_1(v138, v272, v4) │
00:07:54 #24665 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:07:54 #24666 [Verbose] > │ v1 │
00:07:54 #24667 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 = │
00:07:54 #24668 [Verbose] > │ match v0 with │
00:07:54 #24669 [Verbose] > │ | UH1_1(v2, v3, v4) -> (* Cons *) │
00:07:54 #24670 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:07:54 #24671 [Verbose] > │ method6(v4, v5) │
00:07:54 #24672 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:07:54 #24673 [Verbose] > │ v1 │
00:07:54 #24674 [Verbose] > │ and method7 (v0 : (struct ((float []) * (float [])) []), v1 : UH1, v2 : │
00:07:54 #24675 [Verbose] > │ int32) : int32 = │
00:07:54 #24676 [Verbose] > │ match v1 with │
00:07:54 #24677 [Verbose] > │ | UH1_1(v3, v4, v5) -> (* Cons *) │
00:07:54 #24678 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:07:54 #24679 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:07:54 #24680 [Verbose] > │ method7(v0, v5, v6) │
00:07:54 #24681 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:07:54 #24682 [Verbose] > │ v2 │
00:07:54 #24683 [Verbose] > │ and method5 (v0 : UH1) : (struct ((float []) * (float [])) []) = │
00:07:54 #24684 [Verbose] > │ let v1 : int32 = 0 │
00:07:54 #24685 [Verbose] > │ let v2 : int32 = method6(v0, v1) │
00:07:54 #24686 [Verbose] > │ let v3 : (struct ((float []) * (float [])) []) = Array.zeroCreate<struct │
00:07:54 #24687 [Verbose] > │ ((float []) * (float []))> (v2) │
00:07:54 #24688 [Verbose] > │ let v4 : int32 = 0 │
00:07:54 #24689 [Verbose] > │ let v5 : int32 = method7(v3, v0, v4) │
00:07:54 #24690 [Verbose] > │ v3 │
00:07:54 #24691 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:54 #24692 [Verbose] > │ []) * (float [])) [])) = │
00:07:54 #24693 [Verbose] > │ let v0 : float = 0.0 │
00:07:54 #24694 [Verbose] > │ let v1 : float = 1.0 │
00:07:54 #24695 [Verbose] > │ let v2 : float = 2.0 │
00:07:54 #24696 [Verbose] > │ let v3 : float = 3.0 │
00:07:54 #24697 [Verbose] > │ let v4 : float = 4.0 │
00:07:54 #24698 [Verbose] > │ let v5 : float = 5.0 │
00:07:54 #24699 [Verbose] > │ let v6 : float = 6.0 │
00:07:54 #24700 [Verbose] > │ let v7 : float = 7.0 │
00:07:54 #24701 [Verbose] > │ let v8 : float = 8.0 │
00:07:54 #24702 [Verbose] > │ let v9 : float = 9.0 │
00:07:54 #24703 [Verbose] > │ let v10 : UH0 = UH0_0 │
00:07:54 #24704 [Verbose] > │ let v11 : UH0 = UH0_1(v9, v10) │
00:07:54 #24705 [Verbose] > │ let v12 : UH0 = UH0_1(v8, v11) │
00:07:54 #24706 [Verbose] > │ let v13 : UH0 = UH0_1(v7, v12) │
00:07:54 #24707 [Verbose] > │ let v14 : UH0 = UH0_1(v6, v13) │
00:07:54 #24708 [Verbose] > │ let v15 : UH0 = UH0_1(v5, v14) │
00:07:54 #24709 [Verbose] > │ let v16 : UH0 = UH0_1(v4, v15) │
00:07:54 #24710 [Verbose] > │ let v17 : UH0 = UH0_1(v3, v16) │
00:07:54 #24711 [Verbose] > │ let v18 : UH0 = UH0_1(v2, v17) │
00:07:54 #24712 [Verbose] > │ let v19 : UH0 = UH0_1(v1, v18) │
00:07:54 #24713 [Verbose] > │ let v20 : UH0 = UH0_1(v0, v19) │
00:07:54 #24714 [Verbose] > │ let v21 : UH1 = UH1_0 │
00:07:54 #24715 [Verbose] > │ let v22 : UH1 = method1(v20, v21) │
00:07:54 #24716 [Verbose] > │ let v23 : (struct ((float []) * (float [])) []) = method5(v22) │
00:07:54 #24717 [Verbose] > │ let struct (v24 : (float []), v25 : (float [])) = v23.[int 0] │
00:07:54 #24718 [Verbose] > │ let v26 : string = $"{0}" │
00:07:54 #24719 [Verbose] > │ let v27 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:54 #24720 [Verbose] > │ (v26, v24, v25)|] │
00:07:54 #24721 [Verbose] > │ let v28 : string = "wave" │
00:07:54 #24722 [Verbose] > │ let v29 : string = "position (m)" │
00:07:54 #24723 [Verbose] > │ let v30 : string = "displacement (m)" │
00:07:54 #24724 [Verbose] > │ struct (v28, v29, v30, v27) │
00:07:54 #24725 [Verbose] > │ method0() │
00:07:54 #24726 [Verbose] > │ │
00:07:54 #24727 [Verbose] > │ │
00:07:54 #24728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:54 #24729 [Verbose] >
00:07:54 #24730 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:54 #24731 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:54 #24732 [Verbose] > │ ### system kinetic energy versus time 2 │
00:07:54 #24733 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:54 #24734 [Verbose] >
00:07:54 #24735 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:54 #24736 [Verbose] > // // test
00:07:54 #24737 [Verbose] >
00:07:54 #24738 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =
00:07:54 #24739 [Verbose] > inl r1 = st1.pos_vec
00:07:54 #24740 [Verbose] > inl r2 = st2.pos_vec
00:07:54 #24741 [Verbose] > inl r21 = r2 ^-^ r1
00:07:54 #24742 [Verbose] > inl r21mag = magnitude r21
00:07:54 #24743 [Verbose] > f r21mag *^ r21 ^/ r21mag
00:07:54 #24744 [Verbose] >
00:07:54 #24745 [Verbose] > inl billiard_force k re =
00:07:54 #24746 [Verbose] > inl f r =
00:07:54 #24747 [Verbose] > if r >= re
00:07:54 #24748 [Verbose] > then 0
00:07:54 #24749 [Verbose] > else -k * (r - re)
00:07:54 #24750 [Verbose] > central_force f
00:07:54 #24751 [Verbose] >
00:07:54 #24752 [Verbose] > type force_vector = vec
00:07:54 #24753 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector
00:07:54 #24754 [Verbose] >
00:07:54 #24755 [Verbose] > union force t =
00:07:54 #24756 [Verbose] > | ExternalForce : t * one_body_force
00:07:54 #24757 [Verbose] > | InternalForce : t * t * two_body_force
00:07:54 #24758 [Verbose] >
00:07:54 #24759 [Verbose] > nominal multi_particle_state = stream.stream particle_state
00:07:54 #24760 [Verbose] >
00:07:54 #24761 [Verbose] > nominal d_multi_particle_state = stream.stream d_particle_state
00:07:54 #24762 [Verbose] >
00:07:54 #24763 [Verbose] > inl force_on n s force =
00:07:54 #24764 [Verbose] > match force with
00:07:54 #24765 [Verbose] > | ExternalForce (n0, f_one_body) =>
00:07:54 #24766 [Verbose] > if n = n0
00:07:54 #24767 [Verbose] > then f_one_body
00:07:54 #24768 [Verbose] > else fun _ => zero_vec ()
00:07:54 #24769 [Verbose] > | InternalForce (n0, n1, f_two_body) =>
00:07:54 #24770 [Verbose] > if n = n0
00:07:54 #24771 [Verbose] > then s |> stream.try_item n1 |> optionm.map f_two_body
00:07:54 #24772 [Verbose] > elif n = n1
00:07:54 #24773 [Verbose] > then s |> stream.try_item n0 |> optionm.map f_two_body
00:07:54 #24774 [Verbose] > else None
00:07:54 #24775 [Verbose] > |> optionm'.default_value (fun _ => zero_vec ())
00:07:54 #24776 [Verbose] >
00:07:54 #24777 [Verbose] > inl forces_on n (multi_particle_state sts) fs =
00:07:54 #24778 [Verbose] > fs
00:07:54 #24779 [Verbose] > |> listm.map (force_on n sts)
00:07:54 #24780 [Verbose] >
00:07:54 #24781 [Verbose] > inl newton_second_mps fs ((multi_particle_state sts) as mpst) =
00:07:54 #24782 [Verbose] > inl deriv (n, st) =
00:07:54 #24783 [Verbose] > newton_second_ps (forces_on n mpst fs) st
00:07:54 #24784 [Verbose] > sts |> stream.indexed |> stream.map deriv |> d_multi_particle_state
00:07:54 #24785 [Verbose] >
00:07:54 #24786 [Verbose] > instance (+++) d_multi_particle_state =
00:07:54 #24787 [Verbose] > fun (d_multi_particle_state dsts1) (d_multi_particle_state dsts2) =>
00:07:54 #24788 [Verbose] > (dsts1, dsts2)
00:07:54 #24789 [Verbose] > ||> stream.zip_with (+++)
00:07:54 #24790 [Verbose] > |> d_multi_particle_state
00:07:54 #24791 [Verbose] >
00:07:54 #24792 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>
00:07:54 #24793 [Verbose] > dsts
00:07:54 #24794 [Verbose] > |> stream.map (scale w)
00:07:54 #24795 [Verbose] > |> d_multi_particle_state
00:07:54 #24796 [Verbose] >
00:07:54 #24797 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>
00:07:54 #24798 [Verbose] > inl (d_multi_particle_state dsts) =
00:07:54 #24799 [Verbose] > real
00:07:54 #24800 [Verbose] > match dsts with
00:07:54 #24801 [Verbose] > | d_multi_particle_state _ => dsts
00:07:54 #24802 [Verbose] > (dsts, sts)
00:07:54 #24803 [Verbose] > ||> stream.zip_with (shift dt)
00:07:54 #24804 [Verbose] > |> stream.memoize
00:07:54 #24805 [Verbose] > |> fun x => x ()
00:07:54 #24806 [Verbose] > |> multi_particle_state
00:07:54 #24807 [Verbose] >
00:07:54 #24808 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state
00:07:54 #24809 [Verbose] > d_multi_particle_state =
00:07:54 #24810 [Verbose] > fun deriv ((multi_particle_state sts0) as mpst0) =>
00:07:54 #24811 [Verbose] > inl (multi_particle_state sts1) = euler dt deriv mpst0
00:07:54 #24812 [Verbose] > (sts0, sts1)
00:07:54 #24813 [Verbose] > ||> stream.zip
00:07:54 #24814 [Verbose] > |> stream.map (fun ((particle_state st0), (particle_state st1)) =>
00:07:54 #24815 [Verbose] > particle_state {
00:07:54 #24816 [Verbose] > st1 with
00:07:54 #24817 [Verbose] > pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt
00:07:54 #24818 [Verbose] > }
00:07:54 #24819 [Verbose] > )
00:07:54 #24820 [Verbose] > |> multi_particle_state
00:07:54 #24821 [Verbose] >
00:07:54 #24822 [Verbose] > inl update_mps (method : numerical_method multi_particle_state
00:07:54 #24823 [Verbose] > d_multi_particle_state) =
00:07:54 #24824 [Verbose] > newton_second_mps >> method
00:07:54 #24825 [Verbose] >
00:07:54 #24826 [Verbose] > inl states_mps (method : numerical_method multi_particle_state
00:07:54 #24827 [Verbose] > d_multi_particle_state) =
00:07:54 #24828 [Verbose] > newton_second_mps
00:07:54 #24829 [Verbose] > >> method
00:07:54 #24830 [Verbose] > >> (fun x (multi_particle_state y) =>
00:07:54 #24831 [Verbose] > y
00:07:54 #24832 [Verbose] > |> stream.memoize
00:07:54 #24833 [Verbose] > |> (fun x => x ())
00:07:54 #24834 [Verbose] > |> multi_particle_state |> x
00:07:54 #24835 [Verbose] > )
00:07:54 #24836 [Verbose] > // >> stream.iterate
00:07:54 #24837 [Verbose] > >> seq.iterate'
00:07:54 #24838 [Verbose] >
00:07:54 #24839 [Verbose] > inl kinetic_energy (particle_state st) =
00:07:54 #24840 [Verbose] > inl m = st.mass
00:07:54 #24841 [Verbose] > inl v = magnitude st.velocity
00:07:54 #24842 [Verbose] > 0.5 * m * v ** 2
00:07:54 #24843 [Verbose] >
00:07:54 #24844 [Verbose] > inl system_ke (multi_particle_state sts) =
00:07:54 #24845 [Verbose] > sts
00:07:54 #24846 [Verbose] > |> stream.map kinetic_energy
00:07:54 #24847 [Verbose] > |> stream.sum
00:07:54 #24848 [Verbose] >
00:07:54 #24849 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =
00:07:54 #24850 [Verbose] > inl r1 = st1.pos_vec
00:07:54 #24851 [Verbose] > inl r2 = st2.pos_vec
00:07:54 #24852 [Verbose] > inl r21 = r2 ^-^ r1
00:07:54 #24853 [Verbose] > inl r21mag = magnitude r21
00:07:54 #24854 [Verbose] > k * (r21mag - re) ** 2 / 2
00:07:54 #24855 [Verbose] >
00:07:54 #24856 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =
00:07:54 #24857 [Verbose] > inl g = 9.80665
00:07:54 #24858 [Verbose] > inl m = st.mass
00:07:54 #24859 [Verbose] > inl z = st.pos_vec.z
00:07:54 #24860 [Verbose] > m * g * z
00:07:54 #24861 [Verbose] >
00:07:54 #24862 [Verbose] > inl ball_radius () = 0.03
00:07:54 #24863 [Verbose] >
00:07:54 #24864 [Verbose] > inl billiard_forces k =
00:07:54 #24865 [Verbose] > [[ InternalForce (0i32, 1, billiard_force k (2 * ball_radius ())) ]]
00:07:54 #24866 [Verbose] >
00:07:54 #24867 [Verbose] > inl billiard_initial () =
00:07:54 #24868 [Verbose] > inl ball_mass = 0.160
00:07:54 #24869 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:54 #24870 [Verbose] > [[
00:07:54 #24871 [Verbose] > particle_state {
00:07:54 #24872 [Verbose] > default_particle_state' with
00:07:54 #24873 [Verbose] > mass = ball_mass
00:07:54 #24874 [Verbose] > pos_vec = zero_vec ()
00:07:54 #24875 [Verbose] > velocity = 0.2 *^ i_hat ()
00:07:54 #24876 [Verbose] > }
00:07:54 #24877 [Verbose] > particle_state {
00:07:54 #24878 [Verbose] > default_particle_state' with
00:07:54 #24879 [Verbose] > mass = ball_mass
00:07:54 #24880 [Verbose] > pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()
00:07:54 #24881 [Verbose] > velocity = zero_vec ()
00:07:54 #24882 [Verbose] > }
00:07:54 #24883 [Verbose] > ]]
00:07:54 #24884 [Verbose] > |> stream.from_list
00:07:54 #24885 [Verbose] > |> multi_particle_state
00:07:54 #24886 [Verbose] >
00:07:54 #24887 [Verbose] > inl billiard_states ~n_method k dt =
00:07:54 #24888 [Verbose] > states_mps (n_method dt) (billiard_forces k) (billiard_initial ())
00:07:54 #24889 [Verbose] >
00:07:54 #24890 [Verbose] > inl billiard_states_finite n_method k dt =
00:07:54 #24891 [Verbose] > billiard_states n_method k dt
00:07:54 #24892 [Verbose] > >> Some
00:07:54 #24893 [Verbose] > |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>
00:07:54 #24894 [Verbose] > match mpst |> stream.try_item 0i32 with
00:07:54 #24895 [Verbose] > | Some st =>
00:07:54 #24896 [Verbose] > st.time <= 10
00:07:54 #24897 [Verbose] > | None => false
00:07:54 #24898 [Verbose] > )
00:07:54 #24899 [Verbose] >
00:07:54 #24900 [Verbose] > inl momentum (particle_state st) =
00:07:54 #24901 [Verbose] > inl m = st.mass
00:07:54 #24902 [Verbose] > inl v = st.velocity
00:07:54 #24903 [Verbose] > m *^ v
00:07:54 #24904 [Verbose] >
00:07:54 #24905 [Verbose] > inl system_p (multi_particle_state sts) =
00:07:54 #24906 [Verbose] > sts
00:07:54 #24907 [Verbose] > |> stream.map momentum
00:07:54 #24908 [Verbose] > |> stream.fold (^+^) (zero_vec ())
00:07:54 #24909 [Verbose] >
00:07:54 #24910 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =
00:07:54 #24911 [Verbose] > billiard_states_finite euler_cromer_mps 30 0.03
00:07:54 #24912 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:07:54 #24913 [Verbose] > mpst |> stream.try_item 0i32
00:07:54 #24914 [Verbose] > |> optionm.map (fun st =>
00:07:54 #24915 [Verbose] > st.time, system_ke (multi_particle_state mpst)
00:07:54 #24916 [Verbose] > )
00:07:54 #24917 [Verbose] > )
00:07:54 #24918 [Verbose] > // |> stream.to_list
00:07:54 #24919 [Verbose] > |> listm'.choose id
00:07:54 #24920 [Verbose] > |> listm'.unzip
00:07:54 #24921 [Verbose] >
00:07:54 #24922 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =
00:07:54 #24923 [Verbose] > billiard_states_finite runge_kutta_4 30 0.03
00:07:54 #24924 [Verbose] > |> listm.map (fun (multi_particle_state mpst) =>
00:07:54 #24925 [Verbose] > mpst |> stream.try_item 0i32
00:07:54 #24926 [Verbose] > |> optionm.map (fun st =>
00:07:54 #24927 [Verbose] > st.time, system_ke (multi_particle_state mpst)
00:07:54 #24928 [Verbose] > )
00:07:54 #24929 [Verbose] > )
00:07:54 #24930 [Verbose] > // |> stream.to_list
00:07:54 #24931 [Verbose] > |> listm'.choose id
00:07:54 #24932 [Verbose] > |> listm'.unzip
00:07:54 #24933 [Verbose] >
00:07:54 #24934 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray
00:07:54 #24935 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray
00:07:54 #24936 [Verbose] >
00:07:54 #24937 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray
00:07:54 #24938 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray
00:07:54 #24939 [Verbose] >
00:07:54 #24940 [Verbose] > "system kinetic energy versus time",
00:07:54 #24941 [Verbose] > "time (s)",
00:07:54 #24942 [Verbose] > "system kinetic energy (j)",
00:07:54 #24943 [Verbose] > ;[[
00:07:54 #24944 [Verbose] > "euler-cromer", time_ke_ec_x, time_ke_ec_y
00:07:54 #24945 [Verbose] > "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y
00:07:54 #24946 [Verbose] > ]]
00:07:54 #24947 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2699-9964-9ff4dc9f7144\main.spi
00:07:57 #24948 [Verbose] >
00:07:57 #24949 [Verbose] > ╭─[ 2.95s - return value ]─────────────────────────────────────────────────────╮
00:07:57 #24950 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480" │
00:07:57 #24951 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:07:57 #24952 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:07:57 #24953 [Verbose] > │ stroke="none"/> │
00:07:57 #24954 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:07:57 #24955 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:07:57 #24956 [Verbose] > │ fill="#FFFFFF"> │
00:07:57 #24957 [Verbose] > │ system kinetic energy versus time │
00:07:57 #24958 [Verbose] > │ </text> │
00:07:57 #24959 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │
00:07:57 #24960 [Verbose] > │ y2="75"/> │
00:07:57 #24961 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:07:57 #24962 [Verbose] > │ y2="75"/> │
00:07:57 #24963 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │
00:07:57 #24964 [Verbose] > │ y2="75"/> │
00:07:57 #24965 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │
00:07:57 #24966 [Verbose] > │ y2="75"/> │
00:07:57 #24967 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1... │
00:07:57 #24968 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:57 #24969 [Verbose] >
00:07:57 #24970 [Verbose] > ╭─[ 3.07s - stdout ]───────────────────────────────────────────────────────────╮
00:07:57 #24971 [Verbose] > │ type UH0 = │
00:07:57 #24972 [Verbose] > │ | UH0_0 of float * float * float * float * float * float * float * float │
00:07:57 #24973 [Verbose] > │ * float * (unit -> UH0) │
00:07:57 #24974 [Verbose] > │ | UH0_1 │
00:07:57 #24975 [Verbose] > │ and UH1 = │
00:07:57 #24976 [Verbose] > │ | UH1_0 of float * float * float * float * float * float * float * float │
00:07:57 #24977 [Verbose] > │ * float * (unit -> UH1) │
00:07:57 #24978 [Verbose] > │ | UH1_1 │
00:07:57 #24979 [Verbose] > │ and [<Struct>] US0 = │
00:07:57 #24980 [Verbose] > │ | US0_0 of f0_0 : (unit -> UH0) │
00:07:57 #24981 [Verbose] > │ | US0_1 of f1_0 : UH0 │
00:07:57 #24982 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:07:57 #24983 [Verbose] > │ and UH2 = │
00:07:57 #24984 [Verbose] > │ | UH2_0 of float * float * float * float * float * float * float * float │
00:07:57 #24985 [Verbose] > │ * float * float * float * float * float * float * float * float * float * │
00:07:57 #24986 [Verbose] > │ float * (unit -> UH2) │
00:07:57 #24987 [Verbose] > │ | UH2_1 │
00:07:57 #24988 [Verbose] > │ and UH3 = │
00:07:57 #24989 [Verbose] > │ | UH3_0 of int32 * float * float * float * float * float * float * float │
00:07:57 #24990 [Verbose] > │ * float * float * (unit -> UH3) │
00:07:57 #24991 [Verbose] > │ | UH3_1 │
00:07:57 #24992 [Verbose] > │ and [<Struct>] US1 = │
00:07:57 #24993 [Verbose] > │ | US1_0 of f0_0 : (struct (float * float * float * float * float * float │
00:07:57 #24994 [Verbose] > │ * float * float * float) -> struct (float * float * float)) │
00:07:57 #24995 [Verbose] > │ | US1_1 │
00:07:57 #24996 [Verbose] > │ and [<Struct>] US2 = │
00:07:57 #24997 [Verbose] > │ | US2_0 of f0_0 : float * f0_1 : float * f0_2 : float * f0_3 : float * │
00:07:57 #24998 [Verbose] > │ f0_4 : float * f0_5 : float * f0_6 : float * f0_7 : float * f0_8 : float │
00:07:57 #24999 [Verbose] > │ | US2_1 │
00:07:57 #25000 [Verbose] > │ and UH4 = │
00:07:57 #25001 [Verbose] > │ | UH4_0 │
00:07:57 #25002 [Verbose] > │ | UH4_1 of UH0 * UH4 │
00:07:57 #25003 [Verbose] > │ and UH5 = │
00:07:57 #25004 [Verbose] > │ | UH5_0 │
00:07:57 #25005 [Verbose] > │ | UH5_1 of int32 * UH5 │
00:07:57 #25006 [Verbose] > │ and [<Struct>] US3 = │
00:07:57 #25007 [Verbose] > │ | US3_0 of f0_0 : float * f0_1 : float │
00:07:57 #25008 [Verbose] > │ | US3_1 │
00:07:57 #25009 [Verbose] > │ and UH6 = │
00:07:57 #25010 [Verbose] > │ | UH6_0 │
00:07:57 #25011 [Verbose] > │ | UH6_1 of US3 * UH6 │
00:07:57 #25012 [Verbose] > │ and UH7 = │
00:07:57 #25013 [Verbose] > │ | UH7_0 of float * (unit -> UH7) │
00:07:57 #25014 [Verbose] > │ | UH7_1 │
00:07:57 #25015 [Verbose] > │ and UH8 = │
00:07:57 #25016 [Verbose] > │ | UH8_0 │
00:07:57 #25017 [Verbose] > │ | UH8_1 of float * float * UH8 │
00:07:57 #25018 [Verbose] > │ and UH9 = │
00:07:57 #25019 [Verbose] > │ | UH9_0 │
00:07:57 #25020 [Verbose] > │ | UH9_1 of float * UH9 │
00:07:57 #25021 [Verbose] > │ let rec closure3 (v0 : float, v1 : (unit -> UH0), v2 : (unit -> UH1)) () : │
00:07:57 #25022 [Verbose] > │ UH0 = │
00:07:57 #25023 [Verbose] > │ let v3 : UH1 = v2 () │
00:07:57 #25024 [Verbose] > │ let v4 : UH0 = v1 () │
00:07:57 #25025 [Verbose] > │ match v3 with │
00:07:57 #25026 [Verbose] > │ | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* StreamCons *) │
00:07:57 #25027 [Verbose] > │ match v4 with │
00:07:57 #25028 [Verbose] > │ | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (* │
00:07:57 #25029 [Verbose] > │ StreamCons *) │
00:07:57 #25030 [Verbose] > │ let v25 : float = v10 * v0 │
00:07:57 #25031 [Verbose] > │ let v26 : float = v20 + v25 │
00:07:57 #25032 [Verbose] > │ let v27 : float = v0 * v7 │
00:07:57 #25033 [Verbose] > │ let v28 : float = v0 * v8 │
00:07:57 #25034 [Verbose] > │ let v29 : float = v0 * v9 │
00:07:57 #25035 [Verbose] > │ let v30 : float = v17 + v27 │
00:07:57 #25036 [Verbose] > │ let v31 : float = v18 + v28 │
00:07:57 #25037 [Verbose] > │ let v32 : float = v19 + v29 │
00:07:57 #25038 [Verbose] > │ let v33 : float = v0 * v11 │
00:07:57 #25039 [Verbose] > │ let v34 : float = v0 * v12 │
00:07:57 #25040 [Verbose] > │ let v35 : float = v0 * v13 │
00:07:57 #25041 [Verbose] > │ let v36 : float = v21 + v33 │
00:07:57 #25042 [Verbose] > │ let v37 : float = v22 + v34 │
00:07:57 #25043 [Verbose] > │ let v38 : float = v23 + v35 │
00:07:57 #25044 [Verbose] > │ let v39 : (unit -> UH0) = closure3(v0, v24, v14) │
00:07:57 #25045 [Verbose] > │ UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39) │
00:07:57 #25046 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25047 [Verbose] > │ UH0_1 │
00:07:57 #25048 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:57 #25049 [Verbose] > │ UH0_1 │
00:07:57 #25050 [Verbose] > │ and closure4 (v0 : UH0) () : UH0 = │
00:07:57 #25051 [Verbose] > │ v0 │
00:07:57 #25052 [Verbose] > │ and closure5 (v0 : UH0, v1 : Mut0) () : UH0 = │
00:07:57 #25053 [Verbose] > │ let v2 : US0 = v1.l0 │
00:07:57 #25054 [Verbose] > │ match v2 with │
00:07:57 #25055 [Verbose] > │ | US0_1(v3) -> (* Computed *) │
00:07:57 #25056 [Verbose] > │ v3 │
00:07:57 #25057 [Verbose] > │ | US0_0(v4) -> (* NotComputed *) │
00:07:57 #25058 [Verbose] > │ let v5 : UH0 = v4 () │
00:07:57 #25059 [Verbose] > │ let v20 : UH0 = │
00:07:57 #25060 [Verbose] > │ match v5 with │
00:07:57 #25061 [Verbose] > │ | UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (* │
00:07:57 #25062 [Verbose] > │ StreamCons *) │
00:07:57 #25063 [Verbose] > │ let v17 : (unit -> UH0) = method1(v0, v16) │
00:07:57 #25064 [Verbose] > │ UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17) │
00:07:57 #25065 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25066 [Verbose] > │ UH0_1 │
00:07:57 #25067 [Verbose] > │ let v21 : US0 = US0_1(v20) │
00:07:57 #25068 [Verbose] > │ v1.l0 <- v21 │
00:07:57 #25069 [Verbose] > │ v20 │
00:07:57 #25070 [Verbose] > │ and method1 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) = │
00:07:57 #25071 [Verbose] > │ let v2 : US0 = US0_0(v1) │
00:07:57 #25072 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:07:57 #25073 [Verbose] > │ closure5(v0, v3) │
00:07:57 #25074 [Verbose] > │ and closure6 (v0 : (unit -> UH0), v1 : (unit -> UH0)) () : UH2 = │
00:07:57 #25075 [Verbose] > │ let v2 : UH0 = v1 () │
00:07:57 #25076 [Verbose] > │ let v3 : UH0 = v0 () │
00:07:57 #25077 [Verbose] > │ match v2 with │
00:07:57 #25078 [Verbose] > │ | UH0_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:07:57 #25079 [Verbose] > │ match v3 with │
00:07:57 #25080 [Verbose] > │ | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:07:57 #25081 [Verbose] > │ StreamCons *) │
00:07:57 #25082 [Verbose] > │ let v24 : (unit -> UH2) = closure6(v23, v13) │
00:07:57 #25083 [Verbose] > │ UH2_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v14, v15, v16, v17, │
00:07:57 #25084 [Verbose] > │ v18, v19, v20, v21, v22, v24) │
00:07:57 #25085 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25086 [Verbose] > │ UH2_1 │
00:07:57 #25087 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25088 [Verbose] > │ UH2_1 │
00:07:57 #25089 [Verbose] > │ and closure7 (v0 : UH0) () : UH0 = │
00:07:57 #25090 [Verbose] > │ v0 │
00:07:57 #25091 [Verbose] > │ and method2 (v0 : float, v1 : UH2, v2 : UH0) : UH0 = │
00:07:57 #25092 [Verbose] > │ match v1 with │
00:07:57 #25093 [Verbose] > │ | UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, │
00:07:57 #25094 [Verbose] > │ v17, v18, v19, v20, v21) -> (* StreamCons *) │
00:07:57 #25095 [Verbose] > │ let v22 : UH2 = v21 () │
00:07:57 #25096 [Verbose] > │ let v23 : UH0 = method2(v0, v22, v2) │
00:07:57 #25097 [Verbose] > │ let v24 : float = v0 * v18 │
00:07:57 #25098 [Verbose] > │ let v25 : float = v0 * v19 │
00:07:57 #25099 [Verbose] > │ let v26 : float = v0 * v20 │
00:07:57 #25100 [Verbose] > │ let v27 : float = v5 + v24 │
00:07:57 #25101 [Verbose] > │ let v28 : float = v6 + v25 │
00:07:57 #25102 [Verbose] > │ let v29 : float = v7 + v26 │
00:07:57 #25103 [Verbose] > │ let v30 : (unit -> UH0) = closure7(v23) │
00:07:57 #25104 [Verbose] > │ UH0_0(v12, v13, v27, v28, v29, v17, v18, v19, v20, v30) │
00:07:57 #25105 [Verbose] > │ | UH2_1 -> (* StreamNil *) │
00:07:57 #25106 [Verbose] > │ v2 │
00:07:57 #25107 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:07:57 #25108 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:07:57 #25109 [Verbose] > │ let v45 : UH0 = │
00:07:57 #25110 [Verbose] > │ match v3 with │
00:07:57 #25111 [Verbose] > │ | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │
00:07:57 #25112 [Verbose] > │ *) │
00:07:57 #25113 [Verbose] > │ match v2 with │
00:07:57 #25114 [Verbose] > │ | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:07:57 #25115 [Verbose] > │ StreamCons *) │
00:07:57 #25116 [Verbose] > │ let v24 : float = v9 * v0 │
00:07:57 #25117 [Verbose] > │ let v25 : float = v19 + v24 │
00:07:57 #25118 [Verbose] > │ let v26 : float = v0 * v6 │
00:07:57 #25119 [Verbose] > │ let v27 : float = v0 * v7 │
00:07:57 #25120 [Verbose] > │ let v28 : float = v0 * v8 │
00:07:57 #25121 [Verbose] > │ let v29 : float = v16 + v26 │
00:07:57 #25122 [Verbose] > │ let v30 : float = v17 + v27 │
00:07:57 #25123 [Verbose] > │ let v31 : float = v18 + v28 │
00:07:57 #25124 [Verbose] > │ let v32 : float = v0 * v10 │
00:07:57 #25125 [Verbose] > │ let v33 : float = v0 * v11 │
00:07:57 #25126 [Verbose] > │ let v34 : float = v0 * v12 │
00:07:57 #25127 [Verbose] > │ let v35 : float = v20 + v32 │
00:07:57 #25128 [Verbose] > │ let v36 : float = v21 + v33 │
00:07:57 #25129 [Verbose] > │ let v37 : float = v22 + v34 │
00:07:57 #25130 [Verbose] > │ let v38 : (unit -> UH0) = closure3(v0, v23, v13) │
00:07:57 #25131 [Verbose] > │ UH0_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:07:57 #25132 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25133 [Verbose] > │ UH0_1 │
00:07:57 #25134 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:57 #25135 [Verbose] > │ UH0_1 │
00:07:57 #25136 [Verbose] > │ let v46 : (unit -> UH0) = closure4(v45) │
00:07:57 #25137 [Verbose] > │ let v47 : (unit -> UH0) = method1(v45, v46) │
00:07:57 #25138 [Verbose] > │ let v48 : UH0 = v47 () │
00:07:57 #25139 [Verbose] > │ let v76 : UH2 = │
00:07:57 #25140 [Verbose] > │ match v2 with │
00:07:57 #25141 [Verbose] > │ | UH0_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (* │
00:07:57 #25142 [Verbose] > │ StreamCons *) │
00:07:57 #25143 [Verbose] > │ match v48 with │
00:07:57 #25144 [Verbose] > │ | UH0_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (* │
00:07:57 #25145 [Verbose] > │ StreamCons *) │
00:07:57 #25146 [Verbose] > │ let v69 : (unit -> UH2) = closure6(v68, v58) │
00:07:57 #25147 [Verbose] > │ UH2_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v59, v60, │
00:07:57 #25148 [Verbose] > │ v61, v62, v63, v64, v65, v66, v67, v69) │
00:07:57 #25149 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25150 [Verbose] > │ UH2_1 │
00:07:57 #25151 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25152 [Verbose] > │ UH2_1 │
00:07:57 #25153 [Verbose] > │ let v77 : UH0 = UH0_1 │
00:07:57 #25154 [Verbose] > │ let v78 : UH0 = method2(v0, v76, v77) │
00:07:57 #25155 [Verbose] > │ v78 │
00:07:57 #25156 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:07:57 #25157 [Verbose] > │ closure2(v0, v1) │
00:07:57 #25158 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:07:57 #25159 [Verbose] > │ closure1(v0) │
00:07:57 #25160 [Verbose] > │ and closure9 (v0 : UH3) () : UH3 = │
00:07:57 #25161 [Verbose] > │ v0 │
00:07:57 #25162 [Verbose] > │ and method3 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) = │
00:07:57 #25163 [Verbose] > │ match v0 with │
00:07:57 #25164 [Verbose] > │ | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *) │
00:07:57 #25165 [Verbose] > │ let v13 : int32 = v2 + 1 │
00:07:57 #25166 [Verbose] > │ let v14 : UH0 = v12 () │
00:07:57 #25167 [Verbose] > │ let v15 : (unit -> UH3) = closure9(v1) │
00:07:57 #25168 [Verbose] > │ let v16 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │
00:07:57 #25169 [Verbose] > │ method3(v14, v16, v13) │
00:07:57 #25170 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25171 [Verbose] > │ struct (v1, v2) │
00:07:57 #25172 [Verbose] > │ and closure10 (v0 : UH3) () : UH3 = │
00:07:57 #25173 [Verbose] > │ v0 │
00:07:57 #25174 [Verbose] > │ and method4 (v0 : UH3, v1 : UH3) : UH3 = │
00:07:57 #25175 [Verbose] > │ match v0 with │
00:07:57 #25176 [Verbose] > │ | UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons │
00:07:57 #25177 [Verbose] > │ *) │
00:07:57 #25178 [Verbose] > │ let v13 : UH3 = v12 () │
00:07:57 #25179 [Verbose] > │ let v14 : (unit -> UH3) = closure10(v1) │
00:07:57 #25180 [Verbose] > │ let v15 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │
00:07:57 #25181 [Verbose] > │ method4(v13, v15) │
00:07:57 #25182 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:07:57 #25183 [Verbose] > │ v1 │
00:07:57 #25184 [Verbose] > │ and method6 (v0 : int32, v1 : UH0) : US2 = │
00:07:57 #25185 [Verbose] > │ match v1 with │
00:07:57 #25186 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:07:57 #25187 [Verbose] > │ let v12 : bool = v0 <= 0 │
00:07:57 #25188 [Verbose] > │ if v12 then │
00:07:57 #25189 [Verbose] > │ US2_0(v2, v3, v4, v5, v6, v7, v8, v9, v10) │
00:07:57 #25190 [Verbose] > │ else │
00:07:57 #25191 [Verbose] > │ let v14 : int32 = v0 - 1 │
00:07:57 #25192 [Verbose] > │ let v15 : UH0 = v11 () │
00:07:57 #25193 [Verbose] > │ method6(v14, v15) │
00:07:57 #25194 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25195 [Verbose] > │ US2_1 │
00:07:57 #25196 [Verbose] > │ and closure11 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │
00:07:57 #25197 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 : │
00:07:57 #25198 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:07:57 #25199 [Verbose] > │ : float, v17 : float) : struct (float * float * float) = │
00:07:57 #25200 [Verbose] > │ let v18 : float = -1.0 * v2 │
00:07:57 #25201 [Verbose] > │ let v19 : float = -1.0 * v3 │
00:07:57 #25202 [Verbose] > │ let v20 : float = -1.0 * v4 │
00:07:57 #25203 [Verbose] > │ let v21 : float = v11 + v18 │
00:07:57 #25204 [Verbose] > │ let v22 : float = v12 + v19 │
00:07:57 #25205 [Verbose] > │ let v23 : float = v13 + v20 │
00:07:57 #25206 [Verbose] > │ let v24 : float = v21 * v21 │
00:07:57 #25207 [Verbose] > │ let v25 : float = v22 * v22 │
00:07:57 #25208 [Verbose] > │ let v26 : float = v24 + v25 │
00:07:57 #25209 [Verbose] > │ let v27 : float = v23 * v23 │
00:07:57 #25210 [Verbose] > │ let v28 : float = v26 + v27 │
00:07:57 #25211 [Verbose] > │ let v29 : float = sqrt v28 │
00:07:57 #25212 [Verbose] > │ let v30 : bool = v29 >= 0.06 │
00:07:57 #25213 [Verbose] > │ let v33 : float = │
00:07:57 #25214 [Verbose] > │ if v30 then │
00:07:57 #25215 [Verbose] > │ 0.0 │
00:07:57 #25216 [Verbose] > │ else │
00:07:57 #25217 [Verbose] > │ let v31 : float = v29 - 0.06 │
00:07:57 #25218 [Verbose] > │ let v32 : float = -30.0 * v31 │
00:07:57 #25219 [Verbose] > │ v32 │
00:07:57 #25220 [Verbose] > │ let v34 : float = v33 * v21 │
00:07:57 #25221 [Verbose] > │ let v35 : float = v33 * v22 │
00:07:57 #25222 [Verbose] > │ let v36 : float = v33 * v23 │
00:07:57 #25223 [Verbose] > │ let v37 : float = v34 / v29 │
00:07:57 #25224 [Verbose] > │ let v38 : float = v35 / v29 │
00:07:57 #25225 [Verbose] > │ let v39 : float = v36 / v29 │
00:07:57 #25226 [Verbose] > │ struct (v37, v38, v39) │
00:07:57 #25227 [Verbose] > │ and closure12 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:07:57 #25228 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:07:57 #25229 [Verbose] > │ float * float) = │
00:07:57 #25230 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:07:57 #25231 [Verbose] > │ and closure13 (v0 : UH1) () : UH1 = │
00:07:57 #25232 [Verbose] > │ v0 │
00:07:57 #25233 [Verbose] > │ and method5 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 = │
00:07:57 #25234 [Verbose] > │ match v1 with │
00:07:57 #25235 [Verbose] > │ | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │
00:07:57 #25236 [Verbose] > │ *) │
00:07:57 #25237 [Verbose] > │ let v14 : UH3 = v13 () │
00:07:57 #25238 [Verbose] > │ let v15 : UH1 = method5(v0, v14, v2) │
00:07:57 #25239 [Verbose] > │ let v16 : bool = v3 = 0 │
00:07:57 #25240 [Verbose] > │ let v52 : US1 = │
00:07:57 #25241 [Verbose] > │ if v16 then │
00:07:57 #25242 [Verbose] > │ let v17 : int32 = 1 │
00:07:57 #25243 [Verbose] > │ let v18 : US2 = method6(v17, v0) │
00:07:57 #25244 [Verbose] > │ match v18 with │
00:07:57 #25245 [Verbose] > │ | US2_1 -> (* None *) │
00:07:57 #25246 [Verbose] > │ US1_1 │
00:07:57 #25247 [Verbose] > │ | US2_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* │
00:07:57 #25248 [Verbose] > │ Some *) │
00:07:57 #25249 [Verbose] > │ let v28 : (struct (float * float * float * float * float │
00:07:57 #25250 [Verbose] > │ * float * float * float * float) -> struct (float * float * float)) = │
00:07:57 #25251 [Verbose] > │ closure11(v19, v20, v21, v22, v23, v24, v25, v26, v27) │
00:07:57 #25252 [Verbose] > │ US1_0(v28) │
00:07:57 #25253 [Verbose] > │ else │
00:07:57 #25254 [Verbose] > │ let v33 : bool = v3 = 1 │
00:07:57 #25255 [Verbose] > │ if v33 then │
00:07:57 #25256 [Verbose] > │ let v34 : int32 = 0 │
00:07:57 #25257 [Verbose] > │ let v35 : US2 = method6(v34, v0) │
00:07:57 #25258 [Verbose] > │ match v35 with │
00:07:57 #25259 [Verbose] > │ | US2_1 -> (* None *) │
00:07:57 #25260 [Verbose] > │ US1_1 │
00:07:57 #25261 [Verbose] > │ | US2_0(v36, v37, v38, v39, v40, v41, v42, v43, v44) -> │
00:07:57 #25262 [Verbose] > │ (* Some *) │
00:07:57 #25263 [Verbose] > │ let v45 : (struct (float * float * float * float * │
00:07:57 #25264 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float)) = │
00:07:57 #25265 [Verbose] > │ closure11(v36, v37, v38, v39, v40, v41, v42, v43, v44) │
00:07:57 #25266 [Verbose] > │ US1_0(v45) │
00:07:57 #25267 [Verbose] > │ else │
00:07:57 #25268 [Verbose] > │ US1_1 │
00:07:57 #25269 [Verbose] > │ let v56 : (struct (float * float * float * float * float * float * │
00:07:57 #25270 [Verbose] > │ float * float * float) -> struct (float * float * float)) = │
00:07:57 #25271 [Verbose] > │ match v52 with │
00:07:57 #25272 [Verbose] > │ | US1_1 -> (* None *) │
00:07:57 #25273 [Verbose] > │ closure12() │
00:07:57 #25274 [Verbose] > │ | US1_0(v53) -> (* Some *) │
00:07:57 #25275 [Verbose] > │ v53 │
00:07:57 #25276 [Verbose] > │ let struct (v57 : float, v58 : float, v59 : float) = v56 struct (v4, │
00:07:57 #25277 [Verbose] > │ v5, v6, v7, v8, v9, v10, v11, v12) │
00:07:57 #25278 [Verbose] > │ let v60 : float = v57 / v5 │
00:07:57 #25279 [Verbose] > │ let v61 : float = v58 / v5 │
00:07:57 #25280 [Verbose] > │ let v62 : float = v59 / v5 │
00:07:57 #25281 [Verbose] > │ let v63 : (unit -> UH1) = closure13(v15) │
00:07:57 #25282 [Verbose] > │ UH1_0(0.0, 0.0, v10, v11, v12, 1.0, v60, v61, v62, v63) │
00:07:57 #25283 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:07:57 #25284 [Verbose] > │ v2 │
00:07:57 #25285 [Verbose] > │ and closure8 () (v0 : UH0) : UH1 = │
00:07:57 #25286 [Verbose] > │ let v1 : UH3 = UH3_1 │
00:07:57 #25287 [Verbose] > │ let v2 : int32 = 0 │
00:07:57 #25288 [Verbose] > │ let struct (v3 : UH3, v4 : int32) = method3(v0, v1, v2) │
00:07:57 #25289 [Verbose] > │ let v5 : UH3 = UH3_1 │
00:07:57 #25290 [Verbose] > │ let v6 : UH3 = method4(v3, v5) │
00:07:57 #25291 [Verbose] > │ let v7 : UH1 = UH1_1 │
00:07:57 #25292 [Verbose] > │ let v8 : UH1 = method5(v0, v6, v7) │
00:07:57 #25293 [Verbose] > │ v8 │
00:07:57 #25294 [Verbose] > │ and method8 (v0 : int32, v1 : int32) : UH5 = │
00:07:57 #25295 [Verbose] > │ let v2 : bool = v1 < v0 │
00:07:57 #25296 [Verbose] > │ if v2 then │
00:07:57 #25297 [Verbose] > │ let v3 : int32 = v1 + 1 │
00:07:57 #25298 [Verbose] > │ let v4 : UH5 = method8(v0, v3) │
00:07:57 #25299 [Verbose] > │ UH5_1(v1, v4) │
00:07:57 #25300 [Verbose] > │ else │
00:07:57 #25301 [Verbose] > │ UH5_0 │
00:07:57 #25302 [Verbose] > │ and closure15 () () : UH0 = │
00:07:57 #25303 [Verbose] > │ UH0_1 │
00:07:57 #25304 [Verbose] > │ and closure14 () () : UH0 = │
00:07:57 #25305 [Verbose] > │ let v0 : (unit -> UH0) = closure15() │
00:07:57 #25306 [Verbose] > │ UH0_0(0.0, 0.16, 1.0, 0.02, 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:07:57 #25307 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH5, v2 : UH0) : UH0 = │
00:07:57 #25308 [Verbose] > │ match v1 with │
00:07:57 #25309 [Verbose] > │ | UH5_1(v3, v4) -> (* Cons *) │
00:07:57 #25310 [Verbose] > │ let v5 : (unit -> UH0) = closure4(v2) │
00:07:57 #25311 [Verbose] > │ let v6 : (unit -> UH0) = method1(v2, v5) │
00:07:57 #25312 [Verbose] > │ let v7 : UH0 = v6 () │
00:07:57 #25313 [Verbose] > │ let v8 : UH0 = v0 v7 │
00:07:57 #25314 [Verbose] > │ method9(v0, v4, v8) │
00:07:57 #25315 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:07:57 #25316 [Verbose] > │ v2 │
00:07:57 #25317 [Verbose] > │ and method10 (v0 : UH4, v1 : UH4) : UH4 = │
00:07:57 #25318 [Verbose] > │ match v0 with │
00:07:57 #25319 [Verbose] > │ | UH4_1(v2, v3) -> (* Cons *) │
00:07:57 #25320 [Verbose] > │ let v4 : UH4 = UH4_1(v2, v1) │
00:07:57 #25321 [Verbose] > │ method10(v3, v4) │
00:07:57 #25322 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:07:57 #25323 [Verbose] > │ v1 │
00:07:57 #25324 [Verbose] > │ and method7 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 = │
00:07:57 #25325 [Verbose] > │ let v3 : int32 = 0 │
00:07:57 #25326 [Verbose] > │ let v4 : UH5 = method8(v2, v3) │
00:07:57 #25327 [Verbose] > │ let v5 : float = 0.0 │
00:07:57 #25328 [Verbose] > │ let v6 : float = 0.16 │
00:07:57 #25329 [Verbose] > │ let v7 : float = 0.0 │
00:07:57 #25330 [Verbose] > │ let v8 : float = 0.0 │
00:07:57 #25331 [Verbose] > │ let v9 : float = 0.0 │
00:07:57 #25332 [Verbose] > │ let v10 : float = 0.0 │
00:07:57 #25333 [Verbose] > │ let v11 : float = 0.2 │
00:07:57 #25334 [Verbose] > │ let v12 : float = 0.0 │
00:07:57 #25335 [Verbose] > │ let v13 : float = 0.0 │
00:07:57 #25336 [Verbose] > │ let v14 : (unit -> UH0) = closure14() │
00:07:57 #25337 [Verbose] > │ let v15 : UH0 = UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) │
00:07:57 #25338 [Verbose] > │ let v16 : UH0 = method9(v0, v4, v15) │
00:07:57 #25339 [Verbose] > │ let v17 : int32 = 0 │
00:07:57 #25340 [Verbose] > │ let v18 : US2 = method6(v17, v16) │
00:07:57 #25341 [Verbose] > │ let v30 : bool = │
00:07:57 #25342 [Verbose] > │ match v18 with │
00:07:57 #25343 [Verbose] > │ | US2_1 -> (* None *) │
00:07:57 #25344 [Verbose] > │ false │
00:07:57 #25345 [Verbose] > │ | US2_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some *) │
00:07:57 #25346 [Verbose] > │ let v28 : bool = v24 <= 10.0 │
00:07:57 #25347 [Verbose] > │ v28 │
00:07:57 #25348 [Verbose] > │ if v30 then │
00:07:57 #25349 [Verbose] > │ let v31 : UH4 = UH4_1(v16, v1) │
00:07:57 #25350 [Verbose] > │ let v32 : int32 = v2 + 1 │
00:07:57 #25351 [Verbose] > │ method7(v0, v31, v32) │
00:07:57 #25352 [Verbose] > │ else │
00:07:57 #25353 [Verbose] > │ let v34 : UH4 = UH4_0 │
00:07:57 #25354 [Verbose] > │ method10(v1, v34) │
00:07:57 #25355 [Verbose] > │ and closure16 (v0 : UH7) () : UH7 = │
00:07:57 #25356 [Verbose] > │ v0 │
00:07:57 #25357 [Verbose] > │ and method12 (v0 : UH0, v1 : UH7) : UH7 = │
00:07:57 #25358 [Verbose] > │ match v0 with │
00:07:57 #25359 [Verbose] > │ | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:07:57 #25360 [Verbose] > │ let v12 : UH0 = v11 () │
00:07:57 #25361 [Verbose] > │ let v13 : UH7 = method12(v12, v1) │
00:07:57 #25362 [Verbose] > │ let v14 : float = v8 * v8 │
00:07:57 #25363 [Verbose] > │ let v15 : float = v9 * v9 │
00:07:57 #25364 [Verbose] > │ let v16 : float = v14 + v15 │
00:07:57 #25365 [Verbose] > │ let v17 : float = v10 * v10 │
00:07:57 #25366 [Verbose] > │ let v18 : float = v16 + v17 │
00:07:57 #25367 [Verbose] > │ let v19 : float = sqrt v18 │
00:07:57 #25368 [Verbose] > │ let v20 : float = 0.5 * v3 │
00:07:57 #25369 [Verbose] > │ let v21 : float = v19 ** 2.0 │
00:07:57 #25370 [Verbose] > │ let v22 : float = v20 * v21 │
00:07:57 #25371 [Verbose] > │ let v23 : (unit -> UH7) = closure16(v13) │
00:07:57 #25372 [Verbose] > │ UH7_0(v22, v23) │
00:07:57 #25373 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:57 #25374 [Verbose] > │ v1 │
00:07:57 #25375 [Verbose] > │ and method13 (v0 : UH7, v1 : float) : float = │
00:07:57 #25376 [Verbose] > │ match v0 with │
00:07:57 #25377 [Verbose] > │ | UH7_0(v2, v3) -> (* StreamCons *) │
00:07:57 #25378 [Verbose] > │ let v4 : float = v1 + v2 │
00:07:57 #25379 [Verbose] > │ let v5 : UH7 = v3 () │
00:07:57 #25380 [Verbose] > │ method13(v5, v4) │
00:07:57 #25381 [Verbose] > │ | UH7_1 -> (* StreamNil *) │
00:07:57 #25382 [Verbose] > │ v1 │
00:07:57 #25383 [Verbose] > │ and method11 (v0 : UH4, v1 : UH6) : UH6 = │
00:07:57 #25384 [Verbose] > │ match v0 with │
00:07:57 #25385 [Verbose] > │ | UH4_1(v2, v3) -> (* Cons *) │
00:07:57 #25386 [Verbose] > │ let v4 : UH6 = method11(v3, v1) │
00:07:57 #25387 [Verbose] > │ let v5 : int32 = 0 │
00:07:57 #25388 [Verbose] > │ let v6 : US2 = method6(v5, v2) │
00:07:57 #25389 [Verbose] > │ let v23 : US3 = │
00:07:57 #25390 [Verbose] > │ match v6 with │
00:07:58 #25391 [Verbose] > │ | US2_1 -> (* None *) │
00:07:58 #25392 [Verbose] > │ US3_1 │
00:07:58 #25393 [Verbose] > │ | US2_0(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *) │
00:07:58 #25394 [Verbose] > │ let v16 : UH7 = UH7_1 │
00:07:58 #25395 [Verbose] > │ let v17 : UH7 = method12(v2, v16) │
00:07:58 #25396 [Verbose] > │ let v18 : float = 0.0 │
00:07:58 #25397 [Verbose] > │ let v19 : float = method13(v17, v18) │
00:07:58 #25398 [Verbose] > │ US3_0(v12, v19) │
00:07:58 #25399 [Verbose] > │ UH6_1(v23, v4) │
00:07:58 #25400 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:07:58 #25401 [Verbose] > │ v1 │
00:07:58 #25402 [Verbose] > │ and method14 (v0 : UH6, v1 : UH8) : UH8 = │
00:07:58 #25403 [Verbose] > │ match v0 with │
00:07:58 #25404 [Verbose] > │ | UH6_1(v2, v3) -> (* Cons *) │
00:07:58 #25405 [Verbose] > │ let v4 : UH8 = method14(v3, v1) │
00:07:58 #25406 [Verbose] > │ match v2 with │
00:07:58 #25407 [Verbose] > │ | US3_1 -> (* None *) │
00:07:58 #25408 [Verbose] > │ v4 │
00:07:58 #25409 [Verbose] > │ | US3_0(v5, v6) -> (* Some *) │
00:07:58 #25410 [Verbose] > │ UH8_1(v5, v6, v4) │
00:07:58 #25411 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:07:58 #25412 [Verbose] > │ v1 │
00:07:58 #25413 [Verbose] > │ and method15 (v0 : UH8, v1 : UH9, v2 : UH9) : struct (UH9 * UH9) = │
00:07:58 #25414 [Verbose] > │ match v0 with │
00:07:58 #25415 [Verbose] > │ | UH8_1(v3, v4, v5) -> (* Cons *) │
00:07:58 #25416 [Verbose] > │ let v6 : UH9 = UH9_1(v3, v1) │
00:07:58 #25417 [Verbose] > │ let v7 : UH9 = UH9_1(v4, v2) │
00:07:58 #25418 [Verbose] > │ method15(v5, v6, v7) │
00:07:58 #25419 [Verbose] > │ | UH8_0 -> (* Nil *) │
00:07:58 #25420 [Verbose] > │ struct (v1, v2) │
00:07:58 #25421 [Verbose] > │ and method16 (v0 : UH9, v1 : UH9) : UH9 = │
00:07:58 #25422 [Verbose] > │ match v0 with │
00:07:58 #25423 [Verbose] > │ | UH9_1(v2, v3) -> (* Cons *) │
00:07:58 #25424 [Verbose] > │ let v4 : UH9 = UH9_1(v2, v1) │
00:07:58 #25425 [Verbose] > │ method16(v3, v4) │
00:07:58 #25426 [Verbose] > │ | UH9_0 -> (* Nil *) │
00:07:58 #25427 [Verbose] > │ v1 │
00:07:58 #25428 [Verbose] > │ and closure20 (v0 : (unit -> UH1), v1 : (unit -> UH1)) () : UH1 = │
00:07:58 #25429 [Verbose] > │ let v2 : UH1 = v1 () │
00:07:58 #25430 [Verbose] > │ let v3 : UH1 = v0 () │
00:07:58 #25431 [Verbose] > │ match v2 with │
00:07:58 #25432 [Verbose] > │ | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:07:58 #25433 [Verbose] > │ match v3 with │
00:07:58 #25434 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:07:58 #25435 [Verbose] > │ StreamCons *) │
00:07:58 #25436 [Verbose] > │ let v24 : float = v4 + v14 │
00:07:58 #25437 [Verbose] > │ let v25 : float = v5 + v15 │
00:07:58 #25438 [Verbose] > │ let v26 : float = v9 + v19 │
00:07:58 #25439 [Verbose] > │ let v27 : float = v6 + v16 │
00:07:58 #25440 [Verbose] > │ let v28 : float = v7 + v17 │
00:07:58 #25441 [Verbose] > │ let v29 : float = v8 + v18 │
00:07:58 #25442 [Verbose] > │ let v30 : float = v10 + v20 │
00:07:58 #25443 [Verbose] > │ let v31 : float = v11 + v21 │
00:07:58 #25444 [Verbose] > │ let v32 : float = v12 + v22 │
00:07:58 #25445 [Verbose] > │ let v33 : (unit -> UH1) = closure20(v23, v13) │
00:07:58 #25446 [Verbose] > │ UH1_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33) │
00:07:58 #25447 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25448 [Verbose] > │ UH1_1 │
00:07:58 #25449 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25450 [Verbose] > │ UH1_1 │
00:07:58 #25451 [Verbose] > │ and closure19 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 = │
00:07:58 #25452 [Verbose] > │ let v3 : UH1 = v1 v2 │
00:07:58 #25453 [Verbose] > │ let v4 : float = v0 / 2.0 │
00:07:58 #25454 [Verbose] > │ let v46 : UH0 = │
00:07:58 #25455 [Verbose] > │ match v3 with │
00:07:58 #25456 [Verbose] > │ | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* │
00:07:58 #25457 [Verbose] > │ StreamCons *) │
00:07:58 #25458 [Verbose] > │ match v2 with │
00:07:58 #25459 [Verbose] > │ | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (* │
00:07:58 #25460 [Verbose] > │ StreamCons *) │
00:07:58 #25461 [Verbose] > │ let v25 : float = v10 * v4 │
00:07:58 #25462 [Verbose] > │ let v26 : float = v20 + v25 │
00:07:58 #25463 [Verbose] > │ let v27 : float = v4 * v7 │
00:07:58 #25464 [Verbose] > │ let v28 : float = v4 * v8 │
00:07:58 #25465 [Verbose] > │ let v29 : float = v4 * v9 │
00:07:58 #25466 [Verbose] > │ let v30 : float = v17 + v27 │
00:07:58 #25467 [Verbose] > │ let v31 : float = v18 + v28 │
00:07:58 #25468 [Verbose] > │ let v32 : float = v19 + v29 │
00:07:58 #25469 [Verbose] > │ let v33 : float = v4 * v11 │
00:07:58 #25470 [Verbose] > │ let v34 : float = v4 * v12 │
00:07:58 #25471 [Verbose] > │ let v35 : float = v4 * v13 │
00:07:58 #25472 [Verbose] > │ let v36 : float = v21 + v33 │
00:07:58 #25473 [Verbose] > │ let v37 : float = v22 + v34 │
00:07:58 #25474 [Verbose] > │ let v38 : float = v23 + v35 │
00:07:58 #25475 [Verbose] > │ let v39 : (unit -> UH0) = closure3(v4, v24, v14) │
00:07:58 #25476 [Verbose] > │ UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39) │
00:07:58 #25477 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:58 #25478 [Verbose] > │ UH0_1 │
00:07:58 #25479 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25480 [Verbose] > │ UH0_1 │
00:07:58 #25481 [Verbose] > │ let v47 : (unit -> UH0) = closure4(v46) │
00:07:58 #25482 [Verbose] > │ let v48 : (unit -> UH0) = method1(v46, v47) │
00:07:58 #25483 [Verbose] > │ let v49 : UH0 = v48 () │
00:07:58 #25484 [Verbose] > │ let v50 : UH1 = v1 v49 │
00:07:58 #25485 [Verbose] > │ let v92 : UH0 = │
00:07:58 #25486 [Verbose] > │ match v50 with │
00:07:58 #25487 [Verbose] > │ | UH1_0(v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) -> (* │
00:07:58 #25488 [Verbose] > │ StreamCons *) │
00:07:58 #25489 [Verbose] > │ match v2 with │
00:07:58 #25490 [Verbose] > │ | UH0_0(v61, v62, v63, v64, v65, v66, v67, v68, v69, v70) -> (* │
00:07:58 #25491 [Verbose] > │ StreamCons *) │
00:07:58 #25492 [Verbose] > │ let v71 : float = v56 * v4 │
00:07:58 #25493 [Verbose] > │ let v72 : float = v66 + v71 │
00:07:58 #25494 [Verbose] > │ let v73 : float = v4 * v53 │
00:07:58 #25495 [Verbose] > │ let v74 : float = v4 * v54 │
00:07:58 #25496 [Verbose] > │ let v75 : float = v4 * v55 │
00:07:58 #25497 [Verbose] > │ let v76 : float = v63 + v73 │
00:07:58 #25498 [Verbose] > │ let v77 : float = v64 + v74 │
00:07:58 #25499 [Verbose] > │ let v78 : float = v65 + v75 │
00:07:58 #25500 [Verbose] > │ let v79 : float = v4 * v57 │
00:07:58 #25501 [Verbose] > │ let v80 : float = v4 * v58 │
00:07:58 #25502 [Verbose] > │ let v81 : float = v4 * v59 │
00:07:58 #25503 [Verbose] > │ let v82 : float = v67 + v79 │
00:07:58 #25504 [Verbose] > │ let v83 : float = v68 + v80 │
00:07:58 #25505 [Verbose] > │ let v84 : float = v69 + v81 │
00:07:58 #25506 [Verbose] > │ let v85 : (unit -> UH0) = closure3(v4, v70, v60) │
00:07:58 #25507 [Verbose] > │ UH0_0(v61, v62, v76, v77, v78, v72, v82, v83, v84, v85) │
00:07:58 #25508 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:58 #25509 [Verbose] > │ UH0_1 │
00:07:58 #25510 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25511 [Verbose] > │ UH0_1 │
00:07:58 #25512 [Verbose] > │ let v93 : (unit -> UH0) = closure4(v92) │
00:07:58 #25513 [Verbose] > │ let v94 : (unit -> UH0) = method1(v92, v93) │
00:07:58 #25514 [Verbose] > │ let v95 : UH0 = v94 () │
00:07:58 #25515 [Verbose] > │ let v96 : UH1 = v1 v95 │
00:07:58 #25516 [Verbose] > │ let v138 : UH0 = │
00:07:58 #25517 [Verbose] > │ match v96 with │
00:07:58 #25518 [Verbose] > │ | UH1_0(v97, v98, v99, v100, v101, v102, v103, v104, v105, v106) -> │
00:07:58 #25519 [Verbose] > │ (* StreamCons *) │
00:07:58 #25520 [Verbose] > │ match v2 with │
00:07:58 #25521 [Verbose] > │ | UH0_0(v107, v108, v109, v110, v111, v112, v113, v114, v115, │
00:07:58 #25522 [Verbose] > │ v116) -> (* StreamCons *) │
00:07:58 #25523 [Verbose] > │ let v117 : float = v102 * v0 │
00:07:58 #25524 [Verbose] > │ let v118 : float = v112 + v117 │
00:07:58 #25525 [Verbose] > │ let v119 : float = v0 * v99 │
00:07:58 #25526 [Verbose] > │ let v120 : float = v0 * v100 │
00:07:58 #25527 [Verbose] > │ let v121 : float = v0 * v101 │
00:07:58 #25528 [Verbose] > │ let v122 : float = v109 + v119 │
00:07:58 #25529 [Verbose] > │ let v123 : float = v110 + v120 │
00:07:58 #25530 [Verbose] > │ let v124 : float = v111 + v121 │
00:07:58 #25531 [Verbose] > │ let v125 : float = v0 * v103 │
00:07:58 #25532 [Verbose] > │ let v126 : float = v0 * v104 │
00:07:58 #25533 [Verbose] > │ let v127 : float = v0 * v105 │
00:07:58 #25534 [Verbose] > │ let v128 : float = v113 + v125 │
00:07:58 #25535 [Verbose] > │ let v129 : float = v114 + v126 │
00:07:58 #25536 [Verbose] > │ let v130 : float = v115 + v127 │
00:07:58 #25537 [Verbose] > │ let v131 : (unit -> UH0) = closure3(v0, v116, v106) │
00:07:58 #25538 [Verbose] > │ UH0_0(v107, v108, v122, v123, v124, v118, v128, v129, v130, │
00:07:58 #25539 [Verbose] > │ v131) │
00:07:58 #25540 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:58 #25541 [Verbose] > │ UH0_1 │
00:07:58 #25542 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25543 [Verbose] > │ UH0_1 │
00:07:58 #25544 [Verbose] > │ let v139 : (unit -> UH0) = closure4(v138) │
00:07:58 #25545 [Verbose] > │ let v140 : (unit -> UH0) = method1(v138, v139) │
00:07:58 #25546 [Verbose] > │ let v141 : UH0 = v140 () │
00:07:58 #25547 [Verbose] > │ let v142 : UH1 = v1 v141 │
00:07:58 #25548 [Verbose] > │ let v143 : float = v0 / 6.0 │
00:07:58 #25549 [Verbose] > │ let v180 : UH1 = │
00:07:58 #25550 [Verbose] > │ match v3 with │
00:07:58 #25551 [Verbose] > │ | UH1_0(v144, v145, v146, v147, v148, v149, v150, v151, v152, v153) │
00:07:58 #25552 [Verbose] > │ -> (* StreamCons *) │
00:07:58 #25553 [Verbose] > │ match v50 with │
00:07:58 #25554 [Verbose] > │ | UH1_0(v154, v155, v156, v157, v158, v159, v160, v161, v162, │
00:07:58 #25555 [Verbose] > │ v163) -> (* StreamCons *) │
00:07:58 #25556 [Verbose] > │ let v164 : float = v144 + v154 │
00:07:58 #25557 [Verbose] > │ let v165 : float = v145 + v155 │
00:07:58 #25558 [Verbose] > │ let v166 : float = v149 + v159 │
00:07:58 #25559 [Verbose] > │ let v167 : float = v146 + v156 │
00:07:58 #25560 [Verbose] > │ let v168 : float = v147 + v157 │
00:07:58 #25561 [Verbose] > │ let v169 : float = v148 + v158 │
00:07:58 #25562 [Verbose] > │ let v170 : float = v150 + v160 │
00:07:58 #25563 [Verbose] > │ let v171 : float = v151 + v161 │
00:07:58 #25564 [Verbose] > │ let v172 : float = v152 + v162 │
00:07:58 #25565 [Verbose] > │ let v173 : (unit -> UH1) = closure20(v163, v153) │
00:07:58 #25566 [Verbose] > │ UH1_0(v164, v165, v167, v168, v169, v166, v170, v171, v172, │
00:07:58 #25567 [Verbose] > │ v173) │
00:07:58 #25568 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25569 [Verbose] > │ UH1_1 │
00:07:58 #25570 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25571 [Verbose] > │ UH1_1 │
00:07:58 #25572 [Verbose] > │ let v217 : UH1 = │
00:07:58 #25573 [Verbose] > │ match v180 with │
00:07:58 #25574 [Verbose] > │ | UH1_0(v181, v182, v183, v184, v185, v186, v187, v188, v189, v190) │
00:07:58 #25575 [Verbose] > │ -> (* StreamCons *) │
00:07:58 #25576 [Verbose] > │ match v50 with │
00:07:58 #25577 [Verbose] > │ | UH1_0(v191, v192, v193, v194, v195, v196, v197, v198, v199, │
00:07:58 #25578 [Verbose] > │ v200) -> (* StreamCons *) │
00:07:58 #25579 [Verbose] > │ let v201 : float = v181 + v191 │
00:07:58 #25580 [Verbose] > │ let v202 : float = v182 + v192 │
00:07:58 #25581 [Verbose] > │ let v203 : float = v186 + v196 │
00:07:58 #25582 [Verbose] > │ let v204 : float = v183 + v193 │
00:07:58 #25583 [Verbose] > │ let v205 : float = v184 + v194 │
00:07:58 #25584 [Verbose] > │ let v206 : float = v185 + v195 │
00:07:58 #25585 [Verbose] > │ let v207 : float = v187 + v197 │
00:07:58 #25586 [Verbose] > │ let v208 : float = v188 + v198 │
00:07:58 #25587 [Verbose] > │ let v209 : float = v189 + v199 │
00:07:58 #25588 [Verbose] > │ let v210 : (unit -> UH1) = closure20(v200, v190) │
00:07:58 #25589 [Verbose] > │ UH1_0(v201, v202, v204, v205, v206, v203, v207, v208, v209, │
00:07:58 #25590 [Verbose] > │ v210) │
00:07:58 #25591 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25592 [Verbose] > │ UH1_1 │
00:07:58 #25593 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25594 [Verbose] > │ UH1_1 │
00:07:58 #25595 [Verbose] > │ let v254 : UH1 = │
00:07:58 #25596 [Verbose] > │ match v217 with │
00:07:58 #25597 [Verbose] > │ | UH1_0(v218, v219, v220, v221, v222, v223, v224, v225, v226, v227) │
00:07:58 #25598 [Verbose] > │ -> (* StreamCons *) │
00:07:58 #25599 [Verbose] > │ match v96 with │
00:07:58 #25600 [Verbose] > │ | UH1_0(v228, v229, v230, v231, v232, v233, v234, v235, v236, │
00:07:58 #25601 [Verbose] > │ v237) -> (* StreamCons *) │
00:07:58 #25602 [Verbose] > │ let v238 : float = v218 + v228 │
00:07:58 #25603 [Verbose] > │ let v239 : float = v219 + v229 │
00:07:58 #25604 [Verbose] > │ let v240 : float = v223 + v233 │
00:07:58 #25605 [Verbose] > │ let v241 : float = v220 + v230 │
00:07:58 #25606 [Verbose] > │ let v242 : float = v221 + v231 │
00:07:58 #25607 [Verbose] > │ let v243 : float = v222 + v232 │
00:07:58 #25608 [Verbose] > │ let v244 : float = v224 + v234 │
00:07:58 #25609 [Verbose] > │ let v245 : float = v225 + v235 │
00:07:58 #25610 [Verbose] > │ let v246 : float = v226 + v236 │
00:07:58 #25611 [Verbose] > │ let v247 : (unit -> UH1) = closure20(v237, v227) │
00:07:58 #25612 [Verbose] > │ UH1_0(v238, v239, v241, v242, v243, v240, v244, v245, v246, │
00:07:58 #25613 [Verbose] > │ v247) │
00:07:58 #25614 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25615 [Verbose] > │ UH1_1 │
00:07:58 #25616 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25617 [Verbose] > │ UH1_1 │
00:07:58 #25618 [Verbose] > │ let v291 : UH1 = │
00:07:58 #25619 [Verbose] > │ match v254 with │
00:07:58 #25620 [Verbose] > │ | UH1_0(v255, v256, v257, v258, v259, v260, v261, v262, v263, v264) │
00:07:58 #25621 [Verbose] > │ -> (* StreamCons *) │
00:07:58 #25622 [Verbose] > │ match v96 with │
00:07:58 #25623 [Verbose] > │ | UH1_0(v265, v266, v267, v268, v269, v270, v271, v272, v273, │
00:07:58 #25624 [Verbose] > │ v274) -> (* StreamCons *) │
00:07:58 #25625 [Verbose] > │ let v275 : float = v255 + v265 │
00:07:58 #25626 [Verbose] > │ let v276 : float = v256 + v266 │
00:07:58 #25627 [Verbose] > │ let v277 : float = v260 + v270 │
00:07:58 #25628 [Verbose] > │ let v278 : float = v257 + v267 │
00:07:58 #25629 [Verbose] > │ let v279 : float = v258 + v268 │
00:07:58 #25630 [Verbose] > │ let v280 : float = v259 + v269 │
00:07:58 #25631 [Verbose] > │ let v281 : float = v261 + v271 │
00:07:58 #25632 [Verbose] > │ let v282 : float = v262 + v272 │
00:07:58 #25633 [Verbose] > │ let v283 : float = v263 + v273 │
00:07:58 #25634 [Verbose] > │ let v284 : (unit -> UH1) = closure20(v274, v264) │
00:07:58 #25635 [Verbose] > │ UH1_0(v275, v276, v278, v279, v280, v277, v281, v282, v283, │
00:07:58 #25636 [Verbose] > │ v284) │
00:07:58 #25637 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25638 [Verbose] > │ UH1_1 │
00:07:58 #25639 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25640 [Verbose] > │ UH1_1 │
00:07:58 #25641 [Verbose] > │ let v328 : UH1 = │
00:07:58 #25642 [Verbose] > │ match v291 with │
00:07:58 #25643 [Verbose] > │ | UH1_0(v292, v293, v294, v295, v296, v297, v298, v299, v300, v301) │
00:07:58 #25644 [Verbose] > │ -> (* StreamCons *) │
00:07:58 #25645 [Verbose] > │ match v142 with │
00:07:58 #25646 [Verbose] > │ | UH1_0(v302, v303, v304, v305, v306, v307, v308, v309, v310, │
00:07:58 #25647 [Verbose] > │ v311) -> (* StreamCons *) │
00:07:58 #25648 [Verbose] > │ let v312 : float = v292 + v302 │
00:07:58 #25649 [Verbose] > │ let v313 : float = v293 + v303 │
00:07:58 #25650 [Verbose] > │ let v314 : float = v297 + v307 │
00:07:58 #25651 [Verbose] > │ let v315 : float = v294 + v304 │
00:07:58 #25652 [Verbose] > │ let v316 : float = v295 + v305 │
00:07:58 #25653 [Verbose] > │ let v317 : float = v296 + v306 │
00:07:58 #25654 [Verbose] > │ let v318 : float = v298 + v308 │
00:07:58 #25655 [Verbose] > │ let v319 : float = v299 + v309 │
00:07:58 #25656 [Verbose] > │ let v320 : float = v300 + v310 │
00:07:58 #25657 [Verbose] > │ let v321 : (unit -> UH1) = closure20(v311, v301) │
00:07:58 #25658 [Verbose] > │ UH1_0(v312, v313, v315, v316, v317, v314, v318, v319, v320, │
00:07:58 #25659 [Verbose] > │ v321) │
00:07:58 #25660 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25661 [Verbose] > │ UH1_1 │
00:07:58 #25662 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25663 [Verbose] > │ UH1_1 │
00:07:58 #25664 [Verbose] > │ let v370 : UH0 = │
00:07:58 #25665 [Verbose] > │ match v328 with │
00:07:58 #25666 [Verbose] > │ | UH1_0(v329, v330, v331, v332, v333, v334, v335, v336, v337, v338) │
00:07:58 #25667 [Verbose] > │ -> (* StreamCons *) │
00:07:58 #25668 [Verbose] > │ match v2 with │
00:07:58 #25669 [Verbose] > │ | UH0_0(v339, v340, v341, v342, v343, v344, v345, v346, v347, │
00:07:58 #25670 [Verbose] > │ v348) -> (* StreamCons *) │
00:07:58 #25671 [Verbose] > │ let v349 : float = v334 * v143 │
00:07:58 #25672 [Verbose] > │ let v350 : float = v344 + v349 │
00:07:58 #25673 [Verbose] > │ let v351 : float = v143 * v331 │
00:07:58 #25674 [Verbose] > │ let v352 : float = v143 * v332 │
00:07:58 #25675 [Verbose] > │ let v353 : float = v143 * v333 │
00:07:58 #25676 [Verbose] > │ let v354 : float = v341 + v351 │
00:07:58 #25677 [Verbose] > │ let v355 : float = v342 + v352 │
00:07:58 #25678 [Verbose] > │ let v356 : float = v343 + v353 │
00:07:58 #25679 [Verbose] > │ let v357 : float = v143 * v335 │
00:07:58 #25680 [Verbose] > │ let v358 : float = v143 * v336 │
00:07:58 #25681 [Verbose] > │ let v359 : float = v143 * v337 │
00:07:58 #25682 [Verbose] > │ let v360 : float = v345 + v357 │
00:07:58 #25683 [Verbose] > │ let v361 : float = v346 + v358 │
00:07:58 #25684 [Verbose] > │ let v362 : float = v347 + v359 │
00:07:58 #25685 [Verbose] > │ let v363 : (unit -> UH0) = closure3(v143, v348, v338) │
00:07:58 #25686 [Verbose] > │ UH0_0(v339, v340, v354, v355, v356, v350, v360, v361, v362, │
00:07:58 #25687 [Verbose] > │ v363) │
00:07:58 #25688 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:07:58 #25689 [Verbose] > │ UH0_1 │
00:07:58 #25690 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:07:58 #25691 [Verbose] > │ UH0_1 │
00:07:58 #25692 [Verbose] > │ let v371 : (unit -> UH0) = closure4(v370) │
00:07:58 #25693 [Verbose] > │ let v372 : (unit -> UH0) = method1(v370, v371) │
00:07:58 #25694 [Verbose] > │ let v373 : UH0 = v372 () │
00:07:58 #25695 [Verbose] > │ v373 │
00:07:58 #25696 [Verbose] > │ and closure18 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) = │
00:07:58 #25697 [Verbose] > │ closure19(v0, v1) │
00:07:58 #25698 [Verbose] > │ and closure17 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) = │
00:07:58 #25699 [Verbose] > │ closure18(v0) │
00:07:58 #25700 [Verbose] > │ and method17 (v0 : UH4, v1 : UH6) : UH6 = │
00:07:58 #25701 [Verbose] > │ match v0 with │
00:07:58 #25702 [Verbose] > │ | UH4_1(v2, v3) -> (* Cons *) │
00:07:58 #25703 [Verbose] > │ let v4 : UH6 = method17(v3, v1) │
00:07:58 #25704 [Verbose] > │ let v5 : int32 = 0 │
00:07:58 #25705 [Verbose] > │ let v6 : US2 = method6(v5, v2) │
00:07:58 #25706 [Verbose] > │ let v23 : US3 = │
00:07:58 #25707 [Verbose] > │ match v6 with │
00:07:58 #25708 [Verbose] > │ | US2_1 -> (* None *) │
00:07:58 #25709 [Verbose] > │ US3_1 │
00:07:58 #25710 [Verbose] > │ | US2_0(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *) │
00:07:58 #25711 [Verbose] > │ let v16 : UH7 = UH7_1 │
00:07:58 #25712 [Verbose] > │ let v17 : UH7 = method12(v2, v16) │
00:07:58 #25713 [Verbose] > │ let v18 : float = 0.0 │
00:07:58 #25714 [Verbose] > │ let v19 : float = method13(v17, v18) │
00:07:58 #25715 [Verbose] > │ US3_0(v12, v19) │
00:07:58 #25716 [Verbose] > │ UH6_1(v23, v4) │
00:07:58 #25717 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:07:58 #25718 [Verbose] > │ v1 │
00:07:58 #25719 [Verbose] > │ and method19 (v0 : UH9, v1 : int32) : int32 = │
00:07:58 #25720 [Verbose] > │ match v0 with │
00:07:58 #25721 [Verbose] > │ | UH9_1(v2, v3) -> (* Cons *) │
00:07:58 #25722 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:07:58 #25723 [Verbose] > │ method19(v3, v4) │
00:07:58 #25724 [Verbose] > │ | UH9_0 -> (* Nil *) │
00:07:58 #25725 [Verbose] > │ v1 │
00:07:58 #25726 [Verbose] > │ and method20 (v0 : (float []), v1 : UH9, v2 : int32) : int32 = │
00:07:58 #25727 [Verbose] > │ match v1 with │
00:07:58 #25728 [Verbose] > │ | UH9_1(v3, v4) -> (* Cons *) │
00:07:58 #25729 [Verbose] > │ v0.[int v2] <- v3 │
00:07:58 #25730 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:07:58 #25731 [Verbose] > │ method20(v0, v4, v5) │
00:07:58 #25732 [Verbose] > │ | UH9_0 -> (* Nil *) │
00:07:58 #25733 [Verbose] > │ v2 │
00:07:58 #25734 [Verbose] > │ and method18 (v0 : UH9) : (float []) = │
00:07:58 #25735 [Verbose] > │ let v1 : int32 = 0 │
00:07:58 #25736 [Verbose] > │ let v2 : int32 = method19(v0, v1) │
00:07:58 #25737 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:07:58 #25738 [Verbose] > │ let v4 : int32 = 0 │
00:07:58 #25739 [Verbose] > │ let v5 : int32 = method20(v3, v0, v4) │
00:07:58 #25740 [Verbose] > │ v3 │
00:07:58 #25741 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │
00:07:58 #25742 [Verbose] > │ []) * (float [])) [])) = │
00:07:58 #25743 [Verbose] > │ let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0() │
00:07:58 #25744 [Verbose] > │ let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03 │
00:07:58 #25745 [Verbose] > │ let v2 : (UH0 -> UH1) = closure8() │
00:07:58 #25746 [Verbose] > │ let v3 : (UH0 -> UH0) = v1 v2 │
00:07:58 #25747 [Verbose] > │ let v4 : UH4 = UH4_0 │
00:07:58 #25748 [Verbose] > │ let v5 : int32 = 0 │
00:07:58 #25749 [Verbose] > │ let v6 : UH4 = method7(v3, v4, v5) │
00:07:58 #25750 [Verbose] > │ let v7 : UH6 = UH6_0 │
00:07:58 #25751 [Verbose] > │ let v8 : UH6 = method11(v6, v7) │
00:07:58 #25752 [Verbose] > │ let v9 : UH8 = UH8_0 │
00:07:58 #25753 [Verbose] > │ let v10 : UH8 = method14(v8, v9) │
00:07:58 #25754 [Verbose] > │ let v11 : UH9 = UH9_0 │
00:07:58 #25755 [Verbose] > │ let v12 : UH9 = UH9_0 │
00:07:58 #25756 [Verbose] > │ let struct (v13 : UH9, v14 : UH9) = method15(v10, v11, v12) │
00:07:58 #25757 [Verbose] > │ let v15 : UH9 = UH9_0 │
00:07:58 #25758 [Verbose] > │ let v16 : UH9 = method16(v13, v15) │
00:07:58 #25759 [Verbose] > │ let v17 : UH9 = UH9_0 │
00:07:58 #25760 [Verbose] > │ let v18 : UH9 = method16(v14, v17) │
00:07:58 #25761 [Verbose] > │ let v19 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure17() │
00:07:58 #25762 [Verbose] > │ let v20 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v19 0.03 │
00:07:58 #25763 [Verbose] > │ let v21 : (UH0 -> UH0) = v20 v2 │
00:07:58 #25764 [Verbose] > │ let v22 : UH4 = UH4_0 │
00:07:58 #25765 [Verbose] > │ let v23 : int32 = 0 │
00:07:58 #25766 [Verbose] > │ let v24 : UH4 = method7(v21, v22, v23) │
00:07:58 #25767 [Verbose] > │ let v25 : UH6 = UH6_0 │
00:07:58 #25768 [Verbose] > │ let v26 : UH6 = method17(v24, v25) │
00:07:58 #25769 [Verbose] > │ let v27 : UH8 = UH8_0 │
00:07:58 #25770 [Verbose] > │ let v28 : UH8 = method14(v26, v27) │
00:07:58 #25771 [Verbose] > │ let v29 : UH9 = UH9_0 │
00:07:58 #25772 [Verbose] > │ let v30 : UH9 = UH9_0 │
00:07:58 #25773 [Verbose] > │ let struct (v31 : UH9, v32 : UH9) = method15(v28, v29, v30) │
00:07:58 #25774 [Verbose] > │ let v33 : UH9 = UH9_0 │
00:07:58 #25775 [Verbose] > │ let v34 : UH9 = method16(v31, v33) │
00:07:58 #25776 [Verbose] > │ let v35 : UH9 = UH9_0 │
00:07:58 #25777 [Verbose] > │ let v36 : UH9 = method16(v32, v35) │
00:07:58 #25778 [Verbose] > │ let v37 : (float []) = method18(v16) │
00:07:58 #25779 [Verbose] > │ let v38 : (float []) = method18(v18) │
00:07:58 #25780 [Verbose] > │ let v39 : (float []) = method18(v34) │
00:07:58 #25781 [Verbose] > │ let v40 : (float []) = method18(v36) │
00:07:58 #25782 [Verbose] > │ let v41 : string = "euler-cromer" │
00:07:58 #25783 [Verbose] > │ let v42 : string = "runge-kutta 4" │
00:07:58 #25784 [Verbose] > │ let v43 : (struct (string * (float []) * (float [])) []) = [|struct │
00:07:58 #25785 [Verbose] > │ (v41, v37, v38); struct (v42, v39, v40)|] │
00:07:58 #25786 [Verbose] > │ let v44 : string = "system kinetic energy versus time" │
00:07:58 #25787 [Verbose] > │ let v45 : string = "time (s)" │
00:07:58 #25788 [Verbose] > │ let v46 : string = "system kinetic energy (j)" │
00:07:58 #25789 [Verbose] > │ struct (v44, v45, v46, v43) │
00:07:58 #25790 [Verbose] > │ method0() │
00:07:58 #25791 [Verbose] > │ │
00:07:58 #25792 [Verbose] > │ │
00:07:58 #25793 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:58 #25794 [Verbose] >
00:07:58 #25795 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:07:58 #25796 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:07:58 #25797 [Verbose] > │ ### wave 2 │
00:07:58 #25798 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:07:58 #25799 [Verbose] >
00:07:58 #25800 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:07:58 #25801 [Verbose] > // // test
00:07:58 #25802 [Verbose] >
00:07:58 #25803 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =
00:07:58 #25804 [Verbose] > inl r1 = st1.pos_vec
00:07:58 #25805 [Verbose] > inl r2 = st2.pos_vec
00:07:58 #25806 [Verbose] > inl r21 = r2 ^-^ r1
00:07:58 #25807 [Verbose] > inl r21mag = magnitude r21
00:07:58 #25808 [Verbose] > -k * (r21mag - re) *^ r21 ^/ r21mag
00:07:58 #25809 [Verbose] >
00:07:58 #25810 [Verbose] > inl fixed_linear_spring k re r1 =
00:07:58 #25811 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:58 #25812 [Verbose] > linear_spring k re (particle_state { default_particle_state' with pos_vec =
00:07:58 #25813 [Verbose] > r1 })
00:07:58 #25814 [Verbose] >
00:07:58 #25815 [Verbose] > inl forces_string () =
00:07:58 #25816 [Verbose] > [[
00:07:58 #25817 [Verbose] > ExternalForce (0i32, fixed_linear_spring 5384 0 (zero_vec ()))
00:07:58 #25818 [Verbose] > ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))
00:07:58 #25819 [Verbose] > ]] /@ (
00:07:58 #25820 [Verbose] > listm'.init_series 0 59 1
00:07:58 #25821 [Verbose] > |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))
00:07:58 #25822 [Verbose] > )
00:07:58 #25823 [Verbose] >
00:07:58 #25824 [Verbose] > inl string_update dt =
00:07:58 #25825 [Verbose] > update_mps (join runge_kutta_4 dt) (join forces_string ())
00:07:58 #25826 [Verbose] >
00:07:58 #25827 [Verbose] > inl string_initial_overtone n =
00:07:58 #25828 [Verbose] > inl ball_mass = 0.0008293 * 0.65 / 64
00:07:58 #25829 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()
00:07:58 #25830 [Verbose] > listm'.init_series 0.01 0.64 0.01
00:07:58 #25831 [Verbose] > |> listm.map (fun x =>
00:07:58 #25832 [Verbose] > inl y = 0.005 * sin (conv n * pi * x / 0.65)
00:07:58 #25833 [Verbose] > particle_state {
00:07:58 #25834 [Verbose] > default_particle_state' with
00:07:58 #25835 [Verbose] > mass = ball_mass
00:07:58 #25836 [Verbose] > pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()
00:07:58 #25837 [Verbose] > velocity = zero_vec ()
00:07:58 #25838 [Verbose] > }
00:07:58 #25839 [Verbose] > )
00:07:58 #25840 [Verbose] > |> stream.from_list
00:07:58 #25841 [Verbose] > |> multi_particle_state
00:07:58 #25842 [Verbose] >
00:07:58 #25843 [Verbose] > let main () =
00:07:58 #25844 [Verbose] > inl ~frames = listm'.init_series 0 65 1f64 |> stream.from_list
00:07:58 #25845 [Verbose] > inl ~initial_state = string_initial_overtone 3i32
00:07:58 #25846 [Verbose] > inl frames =
00:07:58 #25847 [Verbose] > frames
00:07:58 #25848 [Verbose] > |> stream.map (fun n =>
00:07:58 #25849 [Verbose] > inl (multi_particle_state sts) =
00:07:58 #25850 [Verbose] > stream.iterate (string_update 0.000025) initial_state |>
00:07:58 #25851 [Verbose] > stream.item n
00:07:58 #25852 [Verbose] > inl x, y =
00:07:58 #25853 [Verbose] > [[ zero_vec () ]]
00:07:58 #25854 [Verbose] > /@ (sts |> stream.map (fun (particle_state st) => st.pos_vec) |>
00:07:58 #25855 [Verbose] > stream.to_list)
00:07:58 #25856 [Verbose] > /@ [[ 0.65 *^ i_hat () ]]
00:07:58 #25857 [Verbose] > |> listm.map (fun r => r.x, r.y)
00:07:58 #25858 [Verbose] > |> stream.from_list
00:07:58 #25859 [Verbose] > |> stream.unzip
00:07:58 #25860 [Verbose] > inl x : a i32 _ = x |> stream.to_list |> listm.toArray
00:07:58 #25861 [Verbose] > inl y : a i32 _ = y |> stream.to_list |> listm.toArray
00:07:58 #25862 [Verbose] > x, y
00:07:58 #25863 [Verbose] > )
00:07:58 #25864 [Verbose] >
00:07:58 #25865 [Verbose] > inl plots =
00:07:58 #25866 [Verbose] > frames
00:07:58 #25867 [Verbose] > |> stream.indexed
00:07:58 #25868 [Verbose] > |> stream.map (fun ((n : i32), (x, y)) =>
00:07:58 #25869 [Verbose] > "wave",
00:07:58 #25870 [Verbose] > "position (m)",
00:07:58 #25871 [Verbose] > "displacement (m)",
00:07:58 #25872 [Verbose] > ;[[
00:07:58 #25873 [Verbose] > ($"$\"{!n}\"" : string), x, y
00:07:58 #25874 [Verbose] > ]]
00:07:58 #25875 [Verbose] > )
00:07:58 #25876 [Verbose] >
00:07:58 #25877 [Verbose] > plots |> stream.to_list |> listm.toArray : a i32 _
00:07:58 #25878 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-3051-5140-5c24a1daeccb\main.spi
00:08:06 #25879 [Verbose] >
00:08:06 #25880 [Verbose] > ╭─[ 8.07s - return value ]─────────────────────────────────────────────────────╮
00:08:06 #25881 [Verbose] > │ <table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr │
00:08:06 #25882 [Verbose] > │ ><td>0</td><td><svg width="640" height="480" viewBox="0 0 640 480" │
00:08:06 #25883 [Verbose] > │ xmlns="http://www.w3.org/2000/svg"> │
00:08:06 #25884 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414" │
00:08:06 #25885 [Verbose] > │ stroke="none"/> │
00:08:06 #25886 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" │
00:08:06 #25887 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1" │
00:08:06 #25888 [Verbose] > │ fill="#FFFFFF"> │
00:08:06 #25889 [Verbose] > │ wave │
00:08:06 #25890 [Verbose] > │ </text> │
00:08:06 #25891 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │
00:08:06 #25892 [Verbose] > │ y2="75"/> │
00:08:06 #25893 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │
00:08:06 #25894 [Verbose] > │ y2="75"/> │
00:08:06 #25895 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │
00:08:06 #25896 [Verbose] > │ y2="75"/> │
00:08:06 #25897 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424" │
00:08:06 #25898 [Verbose] > │ x2="85... │
00:08:06 #25899 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:08:06 #25900 [Verbose] >
00:08:06 #25901 [Verbose] > ╭─[ 8.13s - stdout ]───────────────────────────────────────────────────────────╮
00:08:06 #25902 [Verbose] > │ type UH0 = │
00:08:06 #25903 [Verbose] > │ | UH0_0 of float * (unit -> UH0) │
00:08:06 #25904 [Verbose] > │ | UH0_1 │
00:08:06 #25905 [Verbose] > │ and UH1 = │
00:08:06 #25906 [Verbose] > │ | UH1_0 of float * float * float * float * float * float * float * float │
00:08:06 #25907 [Verbose] > │ * float * (unit -> UH1) │
00:08:06 #25908 [Verbose] > │ | UH1_1 │
00:08:06 #25909 [Verbose] > │ and UH2 = │
00:08:06 #25910 [Verbose] > │ | UH2_0 of (float []) * (float []) * (unit -> UH2) │
00:08:06 #25911 [Verbose] > │ | UH2_1 │
00:08:06 #25912 [Verbose] > │ and UH3 = │
00:08:06 #25913 [Verbose] > │ | UH3_0 of float * float * float * float * float * float * float * float │
00:08:06 #25914 [Verbose] > │ * float * (unit -> UH3) │
00:08:06 #25915 [Verbose] > │ | UH3_1 │
00:08:06 #25916 [Verbose] > │ and [<Struct>] US0 = │
00:08:06 #25917 [Verbose] > │ | US0_0 of f0_0 : (unit -> UH1) │
00:08:06 #25918 [Verbose] > │ | US0_1 of f1_0 : UH1 │
00:08:06 #25919 [Verbose] > │ and Mut0 = {mutable l0 : US0} │
00:08:06 #25920 [Verbose] > │ and [<Struct>] US1 = │
00:08:06 #25921 [Verbose] > │ | US1_0 of f0_0 : int32 * f0_1 : (struct (float * float * float * float │
00:08:06 #25922 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float)) │
00:08:06 #25923 [Verbose] > │ | US1_1 of f1_0 : int32 * f1_1 : int32 * f1_2 : (struct (float * float * │
00:08:06 #25924 [Verbose] > │ float * float * float * float * float * float * float) -> (struct (float * │
00:08:06 #25925 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct │
00:08:06 #25926 [Verbose] > │ (float * float * float))) │
00:08:06 #25927 [Verbose] > │ and UH4 = │
00:08:06 #25928 [Verbose] > │ | UH4_0 │
00:08:06 #25929 [Verbose] > │ | UH4_1 of US1 * UH4 │
00:08:06 #25930 [Verbose] > │ and UH5 = │
00:08:06 #25931 [Verbose] > │ | UH5_0 of int32 * float * float * float * float * float * float * float │
00:08:06 #25932 [Verbose] > │ * float * float * (unit -> UH5) │
00:08:06 #25933 [Verbose] > │ | UH5_1 │
00:08:06 #25934 [Verbose] > │ and UH6 = │
00:08:06 #25935 [Verbose] > │ | UH6_0 │
00:08:06 #25936 [Verbose] > │ | UH6_1 of (struct (float * float * float * float * float * float * │
00:08:06 #25937 [Verbose] > │ float * float * float) -> struct (float * float * float)) * UH6 │
00:08:06 #25938 [Verbose] > │ and [<Struct>] US2 = │
00:08:06 #25939 [Verbose] > │ | US2_0 of f0_0 : (struct (float * float * float * float * float * float │
00:08:06 #25940 [Verbose] > │ * float * float * float) -> struct (float * float * float)) │
00:08:06 #25941 [Verbose] > │ | US2_1 │
00:08:06 #25942 [Verbose] > │ and [<Struct>] US3 = │
00:08:06 #25943 [Verbose] > │ | US3_0 of f0_0 : float * f0_1 : float * f0_2 : float * f0_3 : float * │
00:08:06 #25944 [Verbose] > │ f0_4 : float * f0_5 : float * f0_6 : float * f0_7 : float * f0_8 : float │
00:08:06 #25945 [Verbose] > │ | US3_1 │
00:08:06 #25946 [Verbose] > │ and UH7 = │
00:08:06 #25947 [Verbose] > │ | UH7_0 │
00:08:06 #25948 [Verbose] > │ | UH7_1 of float * float * float * UH7 │
00:08:06 #25949 [Verbose] > │ and UH8 = │
00:08:06 #25950 [Verbose] > │ | UH8_0 of UH1 * (unit -> UH8) │
00:08:06 #25951 [Verbose] > │ | UH8_1 │
00:08:06 #25952 [Verbose] > │ and [<Struct>] US4 = │
00:08:06 #25953 [Verbose] > │ | US4_0 of f0_0 : UH1 │
00:08:06 #25954 [Verbose] > │ | US4_1 │
00:08:06 #25955 [Verbose] > │ and UH9 = │
00:08:06 #25956 [Verbose] > │ | UH9_0 of float * float * float * (unit -> UH9) │
00:08:06 #25957 [Verbose] > │ | UH9_1 │
00:08:06 #25958 [Verbose] > │ and UH10 = │
00:08:06 #25959 [Verbose] > │ | UH10_0 │
00:08:06 #25960 [Verbose] > │ | UH10_1 of float * float * UH10 │
00:08:06 #25961 [Verbose] > │ and UH11 = │
00:08:06 #25962 [Verbose] > │ | UH11_0 of float * float * (unit -> UH11) │
00:08:06 #25963 [Verbose] > │ | UH11_1 │
00:08:06 #25964 [Verbose] > │ and UH12 = │
00:08:06 #25965 [Verbose] > │ | UH12_0 │
00:08:06 #25966 [Verbose] > │ | UH12_1 of float * UH12 │
00:08:06 #25967 [Verbose] > │ and UH13 = │
00:08:06 #25968 [Verbose] > │ | UH13_0 of int32 * (float []) * (float []) * (unit -> UH13) │
00:08:06 #25969 [Verbose] > │ | UH13_1 │
00:08:06 #25970 [Verbose] > │ and UH14 = │
00:08:06 #25971 [Verbose] > │ | UH14_0 of string * string * string * (struct (string * (float []) * │
00:08:06 #25972 [Verbose] > │ (float [])) []) * (unit -> UH14) │
00:08:06 #25973 [Verbose] > │ | UH14_1 │
00:08:06 #25974 [Verbose] > │ and UH15 = │
00:08:06 #25975 [Verbose] > │ | UH15_0 │
00:08:06 #25976 [Verbose] > │ | UH15_1 of string * string * string * (struct (string * (float []) * │
00:08:06 #25977 [Verbose] > │ (float [])) []) * UH15 │
00:08:06 #25978 [Verbose] > │ let rec closure65 () () : UH0 = │
00:08:06 #25979 [Verbose] > │ UH0_1 │
00:08:06 #25980 [Verbose] > │ and closure64 () () : UH0 = │
00:08:06 #25981 [Verbose] > │ let v0 : (unit -> UH0) = closure65() │
00:08:06 #25982 [Verbose] > │ UH0_0(65.0, v0) │
00:08:06 #25983 [Verbose] > │ and closure63 () () : UH0 = │
00:08:06 #25984 [Verbose] > │ let v0 : (unit -> UH0) = closure64() │
00:08:06 #25985 [Verbose] > │ UH0_0(64.0, v0) │
00:08:06 #25986 [Verbose] > │ and closure62 () () : UH0 = │
00:08:06 #25987 [Verbose] > │ let v0 : (unit -> UH0) = closure63() │
00:08:06 #25988 [Verbose] > │ UH0_0(63.0, v0) │
00:08:06 #25989 [Verbose] > │ and closure61 () () : UH0 = │
00:08:06 #25990 [Verbose] > │ let v0 : (unit -> UH0) = closure62() │
00:08:06 #25991 [Verbose] > │ UH0_0(62.0, v0) │
00:08:06 #25992 [Verbose] > │ and closure60 () () : UH0 = │
00:08:06 #25993 [Verbose] > │ let v0 : (unit -> UH0) = closure61() │
00:08:06 #25994 [Verbose] > │ UH0_0(61.0, v0) │
00:08:06 #25995 [Verbose] > │ and closure59 () () : UH0 = │
00:08:06 #25996 [Verbose] > │ let v0 : (unit -> UH0) = closure60() │
00:08:06 #25997 [Verbose] > │ UH0_0(60.0, v0) │
00:08:06 #25998 [Verbose] > │ and closure58 () () : UH0 = │
00:08:06 #25999 [Verbose] > │ let v0 : (unit -> UH0) = closure59() │
00:08:06 #26000 [Verbose] > │ UH0_0(59.0, v0) │
00:08:06 #26001 [Verbose] > │ and closure57 () () : UH0 = │
00:08:06 #26002 [Verbose] > │ let v0 : (unit -> UH0) = closure58() │
00:08:06 #26003 [Verbose] > │ UH0_0(58.0, v0) │
00:08:06 #26004 [Verbose] > │ and closure56 () () : UH0 = │
00:08:06 #26005 [Verbose] > │ let v0 : (unit -> UH0) = closure57() │
00:08:06 #26006 [Verbose] > │ UH0_0(57.0, v0) │
00:08:06 #26007 [Verbose] > │ and closure55 () () : UH0 = │
00:08:06 #26008 [Verbose] > │ let v0 : (unit -> UH0) = closure56() │
00:08:06 #26009 [Verbose] > │ UH0_0(56.0, v0) │
00:08:06 #26010 [Verbose] > │ and closure54 () () : UH0 = │
00:08:06 #26011 [Verbose] > │ let v0 : (unit -> UH0) = closure55() │
00:08:06 #26012 [Verbose] > │ UH0_0(55.0, v0) │
00:08:06 #26013 [Verbose] > │ and closure53 () () : UH0 = │
00:08:06 #26014 [Verbose] > │ let v0 : (unit -> UH0) = closure54() │
00:08:06 #26015 [Verbose] > │ UH0_0(54.0, v0) │
00:08:06 #26016 [Verbose] > │ and closure52 () () : UH0 = │
00:08:06 #26017 [Verbose] > │ let v0 : (unit -> UH0) = closure53() │
00:08:06 #26018 [Verbose] > │ UH0_0(53.0, v0) │
00:08:06 #26019 [Verbose] > │ and closure51 () () : UH0 = │
00:08:06 #26020 [Verbose] > │ let v0 : (unit -> UH0) = closure52() │
00:08:06 #26021 [Verbose] > │ UH0_0(52.0, v0) │
00:08:06 #26022 [Verbose] > │ and closure50 () () : UH0 = │
00:08:06 #26023 [Verbose] > │ let v0 : (unit -> UH0) = closure51() │
00:08:06 #26024 [Verbose] > │ UH0_0(51.0, v0) │
00:08:06 #26025 [Verbose] > │ and closure49 () () : UH0 = │
00:08:06 #26026 [Verbose] > │ let v0 : (unit -> UH0) = closure50() │
00:08:06 #26027 [Verbose] > │ UH0_0(50.0, v0) │
00:08:06 #26028 [Verbose] > │ and closure48 () () : UH0 = │
00:08:06 #26029 [Verbose] > │ let v0 : (unit -> UH0) = closure49() │
00:08:06 #26030 [Verbose] > │ UH0_0(49.0, v0) │
00:08:06 #26031 [Verbose] > │ and closure47 () () : UH0 = │
00:08:06 #26032 [Verbose] > │ let v0 : (unit -> UH0) = closure48() │
00:08:06 #26033 [Verbose] > │ UH0_0(48.0, v0) │
00:08:06 #26034 [Verbose] > │ and closure46 () () : UH0 = │
00:08:06 #26035 [Verbose] > │ let v0 : (unit -> UH0) = closure47() │
00:08:06 #26036 [Verbose] > │ UH0_0(47.0, v0) │
00:08:06 #26037 [Verbose] > │ and closure45 () () : UH0 = │
00:08:06 #26038 [Verbose] > │ let v0 : (unit -> UH0) = closure46() │
00:08:06 #26039 [Verbose] > │ UH0_0(46.0, v0) │
00:08:06 #26040 [Verbose] > │ and closure44 () () : UH0 = │
00:08:06 #26041 [Verbose] > │ let v0 : (unit -> UH0) = closure45() │
00:08:06 #26042 [Verbose] > │ UH0_0(45.0, v0) │
00:08:06 #26043 [Verbose] > │ and closure43 () () : UH0 = │
00:08:06 #26044 [Verbose] > │ let v0 : (unit -> UH0) = closure44() │
00:08:06 #26045 [Verbose] > │ UH0_0(44.0, v0) │
00:08:06 #26046 [Verbose] > │ and closure42 () () : UH0 = │
00:08:06 #26047 [Verbose] > │ let v0 : (unit -> UH0) = closure43() │
00:08:06 #26048 [Verbose] > │ UH0_0(43.0, v0) │
00:08:06 #26049 [Verbose] > │ and closure41 () () : UH0 = │
00:08:06 #26050 [Verbose] > │ let v0 : (unit -> UH0) = closure42() │
00:08:06 #26051 [Verbose] > │ UH0_0(42.0, v0) │
00:08:06 #26052 [Verbose] > │ and closure40 () () : UH0 = │
00:08:06 #26053 [Verbose] > │ let v0 : (unit -> UH0) = closure41() │
00:08:06 #26054 [Verbose] > │ UH0_0(41.0, v0) │
00:08:06 #26055 [Verbose] > │ and closure39 () () : UH0 = │
00:08:06 #26056 [Verbose] > │ let v0 : (unit -> UH0) = closure40() │
00:08:06 #26057 [Verbose] > │ UH0_0(40.0, v0) │
00:08:06 #26058 [Verbose] > │ and closure38 () () : UH0 = │
00:08:06 #26059 [Verbose] > │ let v0 : (unit -> UH0) = closure39() │
00:08:06 #26060 [Verbose] > │ UH0_0(39.0, v0) │
00:08:06 #26061 [Verbose] > │ and closure37 () () : UH0 = │
00:08:06 #26062 [Verbose] > │ let v0 : (unit -> UH0) = closure38() │
00:08:06 #26063 [Verbose] > │ UH0_0(38.0, v0) │
00:08:06 #26064 [Verbose] > │ and closure36 () () : UH0 = │
00:08:06 #26065 [Verbose] > │ let v0 : (unit -> UH0) = closure37() │
00:08:06 #26066 [Verbose] > │ UH0_0(37.0, v0) │
00:08:06 #26067 [Verbose] > │ and closure35 () () : UH0 = │
00:08:06 #26068 [Verbose] > │ let v0 : (unit -> UH0) = closure36() │
00:08:06 #26069 [Verbose] > │ UH0_0(36.0, v0) │
00:08:06 #26070 [Verbose] > │ and closure34 () () : UH0 = │
00:08:06 #26071 [Verbose] > │ let v0 : (unit -> UH0) = closure35() │
00:08:06 #26072 [Verbose] > │ UH0_0(35.0, v0) │
00:08:06 #26073 [Verbose] > │ and closure33 () () : UH0 = │
00:08:06 #26074 [Verbose] > │ let v0 : (unit -> UH0) = closure34() │
00:08:06 #26075 [Verbose] > │ UH0_0(34.0, v0) │
00:08:06 #26076 [Verbose] > │ and closure32 () () : UH0 = │
00:08:06 #26077 [Verbose] > │ let v0 : (unit -> UH0) = closure33() │
00:08:06 #26078 [Verbose] > │ UH0_0(33.0, v0) │
00:08:06 #26079 [Verbose] > │ and closure31 () () : UH0 = │
00:08:06 #26080 [Verbose] > │ let v0 : (unit -> UH0) = closure32() │
00:08:06 #26081 [Verbose] > │ UH0_0(32.0, v0) │
00:08:06 #26082 [Verbose] > │ and closure30 () () : UH0 = │
00:08:06 #26083 [Verbose] > │ let v0 : (unit -> UH0) = closure31() │
00:08:06 #26084 [Verbose] > │ UH0_0(31.0, v0) │
00:08:06 #26085 [Verbose] > │ and closure29 () () : UH0 = │
00:08:06 #26086 [Verbose] > │ let v0 : (unit -> UH0) = closure30() │
00:08:06 #26087 [Verbose] > │ UH0_0(30.0, v0) │
00:08:06 #26088 [Verbose] > │ and closure28 () () : UH0 = │
00:08:06 #26089 [Verbose] > │ let v0 : (unit -> UH0) = closure29() │
00:08:06 #26090 [Verbose] > │ UH0_0(29.0, v0) │
00:08:06 #26091 [Verbose] > │ and closure27 () () : UH0 = │
00:08:06 #26092 [Verbose] > │ let v0 : (unit -> UH0) = closure28() │
00:08:06 #26093 [Verbose] > │ UH0_0(28.0, v0) │
00:08:06 #26094 [Verbose] > │ and closure26 () () : UH0 = │
00:08:06 #26095 [Verbose] > │ let v0 : (unit -> UH0) = closure27() │
00:08:06 #26096 [Verbose] > │ UH0_0(27.0, v0) │
00:08:06 #26097 [Verbose] > │ and closure25 () () : UH0 = │
00:08:06 #26098 [Verbose] > │ let v0 : (unit -> UH0) = closure26() │
00:08:06 #26099 [Verbose] > │ UH0_0(26.0, v0) │
00:08:06 #26100 [Verbose] > │ and closure24 () () : UH0 = │
00:08:06 #26101 [Verbose] > │ let v0 : (unit -> UH0) = closure25() │
00:08:06 #26102 [Verbose] > │ UH0_0(25.0, v0) │
00:08:06 #26103 [Verbose] > │ and closure23 () () : UH0 = │
00:08:06 #26104 [Verbose] > │ let v0 : (unit -> UH0) = closure24() │
00:08:06 #26105 [Verbose] > │ UH0_0(24.0, v0) │
00:08:06 #26106 [Verbose] > │ and closure22 () () : UH0 = │
00:08:06 #26107 [Verbose] > │ let v0 : (unit -> UH0) = closure23() │
00:08:06 #26108 [Verbose] > │ UH0_0(23.0, v0) │
00:08:06 #26109 [Verbose] > │ and closure21 () () : UH0 = │
00:08:06 #26110 [Verbose] > │ let v0 : (unit -> UH0) = closure22() │
00:08:06 #26111 [Verbose] > │ UH0_0(22.0, v0) │
00:08:06 #26112 [Verbose] > │ and closure20 () () : UH0 = │
00:08:06 #26113 [Verbose] > │ let v0 : (unit -> UH0) = closure21() │
00:08:06 #26114 [Verbose] > │ UH0_0(21.0, v0) │
00:08:06 #26115 [Verbose] > │ and closure19 () () : UH0 = │
00:08:06 #26116 [Verbose] > │ let v0 : (unit -> UH0) = closure20() │
00:08:06 #26117 [Verbose] > │ UH0_0(20.0, v0) │
00:08:06 #26118 [Verbose] > │ and closure18 () () : UH0 = │
00:08:06 #26119 [Verbose] > │ let v0 : (unit -> UH0) = closure19() │
00:08:06 #26120 [Verbose] > │ UH0_0(19.0, v0) │
00:08:06 #26121 [Verbose] > │ and closure17 () () : UH0 = │
00:08:06 #26122 [Verbose] > │ let v0 : (unit -> UH0) = closure18() │
00:08:06 #26123 [Verbose] > │ UH0_0(18.0, v0) │
00:08:06 #26124 [Verbose] > │ and closure16 () () : UH0 = │
00:08:06 #26125 [Verbose] > │ let v0 : (unit -> UH0) = closure17() │
00:08:06 #26126 [Verbose] > │ UH0_0(17.0, v0) │
00:08:06 #26127 [Verbose] > │ and closure15 () () : UH0 = │
00:08:06 #26128 [Verbose] > │ let v0 : (unit -> UH0) = closure16() │
00:08:06 #26129 [Verbose] > │ UH0_0(16.0, v0) │
00:08:06 #26130 [Verbose] > │ and closure14 () () : UH0 = │
00:08:06 #26131 [Verbose] > │ let v0 : (unit -> UH0) = closure15() │
00:08:06 #26132 [Verbose] > │ UH0_0(15.0, v0) │
00:08:06 #26133 [Verbose] > │ and closure13 () () : UH0 = │
00:08:06 #26134 [Verbose] > │ let v0 : (unit -> UH0) = closure14() │
00:08:06 #26135 [Verbose] > │ UH0_0(14.0, v0) │
00:08:06 #26136 [Verbose] > │ and closure12 () () : UH0 = │
00:08:06 #26137 [Verbose] > │ let v0 : (unit -> UH0) = closure13() │
00:08:06 #26138 [Verbose] > │ UH0_0(13.0, v0) │
00:08:06 #26139 [Verbose] > │ and closure11 () () : UH0 = │
00:08:06 #26140 [Verbose] > │ let v0 : (unit -> UH0) = closure12() │
00:08:06 #26141 [Verbose] > │ UH0_0(12.0, v0) │
00:08:06 #26142 [Verbose] > │ and closure10 () () : UH0 = │
00:08:06 #26143 [Verbose] > │ let v0 : (unit -> UH0) = closure11() │
00:08:06 #26144 [Verbose] > │ UH0_0(11.0, v0) │
00:08:06 #26145 [Verbose] > │ and closure9 () () : UH0 = │
00:08:06 #26146 [Verbose] > │ let v0 : (unit -> UH0) = closure10() │
00:08:06 #26147 [Verbose] > │ UH0_0(10.0, v0) │
00:08:06 #26148 [Verbose] > │ and closure8 () () : UH0 = │
00:08:06 #26149 [Verbose] > │ let v0 : (unit -> UH0) = closure9() │
00:08:06 #26150 [Verbose] > │ UH0_0(9.0, v0) │
00:08:06 #26151 [Verbose] > │ and closure7 () () : UH0 = │
00:08:06 #26152 [Verbose] > │ let v0 : (unit -> UH0) = closure8() │
00:08:06 #26153 [Verbose] > │ UH0_0(8.0, v0) │
00:08:06 #26154 [Verbose] > │ and closure6 () () : UH0 = │
00:08:06 #26155 [Verbose] > │ let v0 : (unit -> UH0) = closure7() │
00:08:06 #26156 [Verbose] > │ UH0_0(7.0, v0) │
00:08:06 #26157 [Verbose] > │ and closure5 () () : UH0 = │
00:08:06 #26158 [Verbose] > │ let v0 : (unit -> UH0) = closure6() │
00:08:06 #26159 [Verbose] > │ UH0_0(6.0, v0) │
00:08:06 #26160 [Verbose] > │ and closure4 () () : UH0 = │
00:08:06 #26161 [Verbose] > │ let v0 : (unit -> UH0) = closure5() │
00:08:06 #26162 [Verbose] > │ UH0_0(5.0, v0) │
00:08:06 #26163 [Verbose] > │ and closure3 () () : UH0 = │
00:08:06 #26164 [Verbose] > │ let v0 : (unit -> UH0) = closure4() │
00:08:06 #26165 [Verbose] > │ UH0_0(4.0, v0) │
00:08:06 #26166 [Verbose] > │ and closure2 () () : UH0 = │
00:08:06 #26167 [Verbose] > │ let v0 : (unit -> UH0) = closure3() │
00:08:06 #26168 [Verbose] > │ UH0_0(3.0, v0) │
00:08:06 #26169 [Verbose] > │ and closure1 () () : UH0 = │
00:08:06 #26170 [Verbose] > │ let v0 : (unit -> UH0) = closure2() │
00:08:06 #26171 [Verbose] > │ UH0_0(2.0, v0) │
00:08:06 #26172 [Verbose] > │ and closure0 () () : UH0 = │
00:08:06 #26173 [Verbose] > │ let v0 : (unit -> UH0) = closure1() │
00:08:06 #26174 [Verbose] > │ UH0_0(1.0, v0) │
00:08:06 #26175 [Verbose] > │ and closure129 () () : UH1 = │
00:08:06 #26176 [Verbose] > │ UH1_1 │
00:08:06 #26177 [Verbose] > │ and closure128 () () : UH1 = │
00:08:06 #26178 [Verbose] > │ let v0 : (unit -> UH1) = closure129() │
00:08:06 #26179 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.64, 0.0007224452478461016, 0.0, 0.0, 0.0, │
00:08:06 #26180 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26181 [Verbose] > │ and closure127 () () : UH1 = │
00:08:06 #26182 [Verbose] > │ let v0 : (unit -> UH1) = closure128() │
00:08:06 #26183 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.63, 0.001429728391993452, 0.0, 0.0, 0.0, │
00:08:06 #26184 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26185 [Verbose] > │ and closure126 () () : UH1 = │
00:08:06 #26186 [Verbose] > │ let v0 : (unit -> UH1) = closure127() │
00:08:06 #26187 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.62, 0.0021070055388626528, 0.0, 0.0, 0.0, │
00:08:06 #26188 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26189 [Verbose] > │ and closure125 () () : UH1 = │
00:08:06 #26190 [Verbose] > │ let v0 : (unit -> UH1) = closure126() │
00:08:06 #26191 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.61, 0.0027400625367733585, 0.0, 0.0, 0.0, │
00:08:06 #26192 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26193 [Verbose] > │ and closure124 () () : UH1 = │
00:08:06 #26194 [Verbose] > │ let v0 : (unit -> UH1) = closure125() │
00:08:06 #26195 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.6, 0.0033156132912039783, 0.0, 0.0, 0.0, │
00:08:06 #26196 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26197 [Verbose] > │ and closure123 () () : UH1 = │
00:08:06 #26198 [Verbose] > │ let v0 : (unit -> UH1) = closure124() │
00:08:06 #26199 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.59, 0.003821578602729245, 0.0, 0.0, 0.0, │
00:08:06 #26200 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26201 [Verbose] > │ and closure122 () () : UH1 = │
00:08:06 #26202 [Verbose] > │ let v0 : (unit -> UH1) = closure123() │
00:08:06 #26203 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.5800000000000001, 0.004247339675607605, │
00:08:06 #26204 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26205 [Verbose] > │ and closure121 () () : UH1 = │
00:08:06 #26206 [Verbose] > │ let v0 : (unit -> UH1) = closure122() │
00:08:06 #26207 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.5700000000000001, 0.004583960976582912, │
00:08:06 #26208 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26209 [Verbose] > │ and closure120 () () : UH1 = │
00:08:06 #26210 [Verbose] > │ let v0 : (unit -> UH1) = closure121() │
00:08:06 #26211 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.56, 0.004824377766717758, 0.0, 0.0, 0.0, │
00:08:06 #26212 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26213 [Verbose] > │ and closure119 () () : UH1 = │
00:08:06 #26214 [Verbose] > │ let v0 : (unit -> UH1) = closure120() │
00:08:06 #26215 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.55, 0.004963544370490271, 0.0, 0.0, 0.0, │
00:08:06 #26216 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26217 [Verbose] > │ and closure118 () () : UH1 = │
00:08:06 #26218 [Verbose] > │ let v0 : (unit -> UH1) = closure119() │
00:08:06 #26219 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.54, 0.004998540070400965, 0.0, 0.0, 0.0, │
00:08:06 #26220 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26221 [Verbose] > │ and closure117 () () : UH1 = │
00:08:06 #26222 [Verbose] > │ let v0 : (unit -> UH1) = closure118() │
00:08:06 #26223 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.53, 0.004928630404658255, 0.0, 0.0, 0.0, │
00:08:06 #26224 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26225 [Verbose] > │ and closure116 () () : UH1 = │
00:08:06 #26226 [Verbose] > │ let v0 : (unit -> UH1) = closure117() │
00:08:06 #26227 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.52, 0.004755282581475766, 0.0, 0.0, 0.0, │
00:08:06 #26228 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26229 [Verbose] > │ and closure115 () () : UH1 = │
00:08:06 #26230 [Verbose] > │ let v0 : (unit -> UH1) = closure116() │
00:08:06 #26231 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.51, 0.0044821346864785195, 0.0, 0.0, 0.0, │
00:08:06 #26232 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26233 [Verbose] > │ and closure114 () () : UH1 = │
00:08:06 #26234 [Verbose] > │ let v0 : (unit -> UH1) = closure115() │
00:08:06 #26235 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.5, 0.0041149193294682815, 0.0, 0.0, 0.0, │
00:08:06 #26236 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26237 [Verbose] > │ and closure113 () () : UH1 = │
00:08:06 #26238 [Verbose] > │ let v0 : (unit -> UH1) = closure114() │
00:08:06 #26239 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.49, 0.0036613433329888622, 0.0, 0.0, 0.0, │
00:08:06 #26240 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26241 [Verbose] > │ and closure112 () () : UH1 = │
00:08:06 #26242 [Verbose] > │ let v0 : (unit -> UH1) = closure113() │
00:08:06 #26243 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.48000000000000004, 0.003130925987691568, │
00:08:06 #26244 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26245 [Verbose] > │ and closure111 () () : UH1 = │
00:08:06 #26246 [Verbose] > │ let v0 : (unit -> UH1) = closure112() │
00:08:06 #26247 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.47000000000000003, 0.002534799269067953, │
00:08:06 #26248 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26249 [Verbose] > │ and closure110 () () : UH1 = │
00:08:06 #26250 [Verbose] > │ let v0 : (unit -> UH1) = closure111() │
00:08:06 #26251 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.46, 0.0018854742084416021, 0.0, 0.0, 0.0, │
00:08:06 #26252 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26253 [Verbose] > │ and closure109 () () : UH1 = │
00:08:06 #26254 [Verbose] > │ let v0 : (unit -> UH1) = closure110() │
00:08:06 #26255 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.45, 0.0011965783214377866, 0.0, 0.0, 0.0, │
00:08:06 #26256 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26257 [Verbose] > │ and closure108 () () : UH1 = │
00:08:06 #26258 [Verbose] > │ let v0 : (unit -> UH1) = closure109() │
00:08:06 #26259 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.44, 0.0004825696045725713, 0.0, 0.0, 0.0, │
00:08:06 #26260 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26261 [Verbose] > │ and closure107 () () : UH1 = │
00:08:06 #26262 [Verbose] > │ let v0 : (unit -> UH1) = closure108() │
00:08:06 #26263 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.43, -0.00024156689762753724, 0.0, 0.0, │
00:08:06 #26264 [Verbose] > │ 0.0, 0.0, 0.0, v0) │
00:08:06 #26265 [Verbose] > │ and closure106 () () : UH1 = │
00:08:06 #26266 [Verbose] > │ let v0 : (unit -> UH1) = closure107() │
00:08:06 #26267 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.42000000000000004, -0.0009606335867685414, │
00:08:06 #26268 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26269 [Verbose] > │ and closure105 () () : UH1 = │
00:08:06 #26270 [Verbose] > │ let v0 : (unit -> UH1) = closure106() │
00:08:06 #26271 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.41000000000000003, -0.0016595392656426435, │
00:08:06 #26272 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26273 [Verbose] > │ and closure104 () () : UH1 = │
00:08:06 #26274 [Verbose] > │ let v0 : (unit -> UH1) = closure105() │
00:08:06 #26275 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.4, -0.002323615860218846, 0.0, 0.0, 0.0, │
00:08:06 #26276 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26277 [Verbose] > │ and closure103 () () : UH1 = │
00:08:06 #26278 [Verbose] > │ let v0 : (unit -> UH1) = closure104() │
00:08:06 #26279 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.39, -0.002938926261462367, 0.0, 0.0, 0.0, │
00:08:06 #26280 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26281 [Verbose] > │ and closure102 () () : UH1 = │
00:08:06 #26282 [Verbose] > │ let v0 : (unit -> UH1) = closure103() │
00:08:06 #26283 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.38, -0.0034925568262446837, 0.0, 0.0, 0.0, │
00:08:06 #26284 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26285 [Verbose] > │ and closure101 () () : UH1 = │
00:08:06 #26286 [Verbose] > │ let v0 : (unit -> UH1) = closure102() │
00:08:06 #26287 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.37, -0.003972888398568774, 0.0, 0.0, 0.0, │
00:08:06 #26288 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26289 [Verbose] > │ and closure100 () () : UH1 = │
00:08:06 #26290 [Verbose] > │ let v0 : (unit -> UH1) = closure101() │
00:08:06 #26291 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.36000000000000004, -0.004369840163132589, │
00:08:06 #26292 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26293 [Verbose] > │ and closure99 () () : UH1 = │
00:08:06 #26294 [Verbose] > │ let v0 : (unit -> UH1) = closure100() │
00:08:06 #26295 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.35000000000000003, -0.004675081213427074, │
00:08:06 #26296 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26297 [Verbose] > │ and closure98 () () : UH1 = │
00:08:06 #26298 [Verbose] > │ let v0 : (unit -> UH1) = closure99() │
00:08:06 #26299 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.34, -0.004882205394146361, 0.0, 0.0, 0.0, │
00:08:06 #26300 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26301 [Verbose] > │ and closure97 () () : UH1 = │
00:08:06 #26302 [Verbose] > │ let v0 : (unit -> UH1) = closure98() │
00:08:06 #26303 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.33, -0.004986865748457456, 0.0, 0.0, 0.0, │
00:08:06 #26304 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26305 [Verbose] > │ and closure96 () () : UH1 = │
00:08:06 #26306 [Verbose] > │ let v0 : (unit -> UH1) = closure97() │
00:08:06 #26307 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.32, -0.004986865748457456, 0.0, 0.0, 0.0, │
00:08:06 #26308 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26309 [Verbose] > │ and closure95 () () : UH1 = │
00:08:06 #26310 [Verbose] > │ let v0 : (unit -> UH1) = closure96() │
00:08:06 #26311 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.31, -0.004882205394146359, 0.0, 0.0, 0.0, │
00:08:06 #26312 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26313 [Verbose] > │ and closure94 () () : UH1 = │
00:08:06 #26314 [Verbose] > │ let v0 : (unit -> UH1) = closure95() │
00:08:06 #26315 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.3, -0.004675081213427074, 0.0, 0.0, 0.0, │
00:08:06 #26316 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26317 [Verbose] > │ and closure93 () () : UH1 = │
00:08:06 #26318 [Verbose] > │ let v0 : (unit -> UH1) = closure94() │
00:08:06 #26319 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.29000000000000004, -0.00436984016313259, │
00:08:06 #26320 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26321 [Verbose] > │ and closure92 () () : UH1 = │
00:08:06 #26322 [Verbose] > │ let v0 : (unit -> UH1) = closure93() │
00:08:06 #26323 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.28, -0.003972888398568771, 0.0, 0.0, 0.0, │
00:08:06 #26324 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26325 [Verbose] > │ and closure91 () () : UH1 = │
00:08:06 #26326 [Verbose] > │ let v0 : (unit -> UH1) = closure92() │
00:08:06 #26327 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.27, -0.003492556826244686, 0.0, 0.0, 0.0, │
00:08:06 #26328 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26329 [Verbose] > │ and closure90 () () : UH1 = │
00:08:06 #26330 [Verbose] > │ let v0 : (unit -> UH1) = closure91() │
00:08:06 #26331 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.26, -0.0029389262614623636, 0.0, 0.0, 0.0, │
00:08:06 #26332 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26333 [Verbose] > │ and closure89 () () : UH1 = │
00:08:06 #26334 [Verbose] > │ let v0 : (unit -> UH1) = closure90() │
00:08:06 #26335 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.25, -0.002323615860218842, 0.0, 0.0, 0.0, │
00:08:06 #26336 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26337 [Verbose] > │ and closure88 () () : UH1 = │
00:08:06 #26338 [Verbose] > │ let v0 : (unit -> UH1) = closure89() │
00:08:06 #26339 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.24000000000000002, -0.001659539265642642, │
00:08:06 #26340 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26341 [Verbose] > │ and closure87 () () : UH1 = │
00:08:06 #26342 [Verbose] > │ let v0 : (unit -> UH1) = closure88() │
00:08:06 #26343 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.23, -0.0009606335867685418, 0.0, 0.0, 0.0, │
00:08:06 #26344 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26345 [Verbose] > │ and closure86 () () : UH1 = │
00:08:06 #26346 [Verbose] > │ let v0 : (unit -> UH1) = closure87() │
00:08:06 #26347 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.22, -0.00024156689762753317, 0.0, 0.0, │
00:08:06 #26348 [Verbose] > │ 0.0, 0.0, 0.0, v0) │
00:08:06 #26349 [Verbose] > │ and closure85 () () : UH1 = │
00:08:06 #26350 [Verbose] > │ let v0 : (unit -> UH1) = closure86() │
00:08:06 #26351 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.21000000000000002, 0.00048256960457257535, │
00:08:06 #26352 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26353 [Verbose] > │ and closure84 () () : UH1 = │
00:08:06 #26354 [Verbose] > │ let v0 : (unit -> UH1) = closure85() │
00:08:06 #26355 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.2, 0.0011965783214377905, 0.0, 0.0, 0.0, │
00:08:06 #26356 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26357 [Verbose] > │ and closure83 () () : UH1 = │
00:08:06 #26358 [Verbose] > │ let v0 : (unit -> UH1) = closure84() │
00:08:06 #26359 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.19, 0.0018854742084416015, 0.0, 0.0, 0.0, │
00:08:06 #26360 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26361 [Verbose] > │ and closure82 () () : UH1 = │
00:08:06 #26362 [Verbose] > │ let v0 : (unit -> UH1) = closure83() │
00:08:06 #26363 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.18000000000000002, 0.002534799269067951, │
00:08:06 #26364 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26365 [Verbose] > │ and closure81 () () : UH1 = │
00:08:06 #26366 [Verbose] > │ let v0 : (unit -> UH1) = closure82() │
00:08:06 #26367 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.17, 0.0031309259876915697, 0.0, 0.0, 0.0, │
00:08:06 #26368 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26369 [Verbose] > │ and closure80 () () : UH1 = │
00:08:06 #26370 [Verbose] > │ let v0 : (unit -> UH1) = closure81() │
00:08:06 #26371 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.16, 0.0036613433329888666, 0.0, 0.0, 0.0, │
00:08:06 #26372 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26373 [Verbose] > │ and closure79 () () : UH1 = │
00:08:06 #26374 [Verbose] > │ let v0 : (unit -> UH1) = closure80() │
00:08:06 #26375 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.15000000000000002, 0.0041149193294682815, │
00:08:06 #26376 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26377 [Verbose] > │ and closure78 () () : UH1 = │
00:08:06 #26378 [Verbose] > │ let v0 : (unit -> UH1) = closure79() │
00:08:06 #26379 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.14, 0.004482134686478519, 0.0, 0.0, 0.0, │
00:08:06 #26380 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26381 [Verbose] > │ and closure77 () () : UH1 = │
00:08:06 #26382 [Verbose] > │ let v0 : (unit -> UH1) = closure78() │
00:08:06 #26383 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.13, 0.004755282581475768, 0.0, 0.0, 0.0, │
00:08:06 #26384 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26385 [Verbose] > │ and closure76 () () : UH1 = │
00:08:06 #26386 [Verbose] > │ let v0 : (unit -> UH1) = closure77() │
00:08:06 #26387 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.12, 0.004928630404658255, 0.0, 0.0, 0.0, │
00:08:06 #26388 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26389 [Verbose] > │ and closure75 () () : UH1 = │
00:08:06 #26390 [Verbose] > │ let v0 : (unit -> UH1) = closure76() │
00:08:06 #26391 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.11, 0.004998540070400965, 0.0, 0.0, 0.0, │
00:08:06 #26392 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26393 [Verbose] > │ and closure74 () () : UH1 = │
00:08:06 #26394 [Verbose] > │ let v0 : (unit -> UH1) = closure75() │
00:08:06 #26395 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.09999999999999999, 0.00496354437049027, │
00:08:06 #26396 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26397 [Verbose] > │ and closure73 () () : UH1 = │
00:08:06 #26398 [Verbose] > │ let v0 : (unit -> UH1) = closure74() │
00:08:06 #26399 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.09, 0.004824377766717757, 0.0, 0.0, 0.0, │
00:08:06 #26400 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26401 [Verbose] > │ and closure72 () () : UH1 = │
00:08:06 #26402 [Verbose] > │ let v0 : (unit -> UH1) = closure73() │
00:08:06 #26403 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.08, 0.004583960976582912, 0.0, 0.0, 0.0, │
00:08:06 #26404 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26405 [Verbose] > │ and closure71 () () : UH1 = │
00:08:06 #26406 [Verbose] > │ let v0 : (unit -> UH1) = closure72() │
00:08:06 #26407 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.06999999999999999, 0.004247339675607605, │
00:08:06 #26408 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26409 [Verbose] > │ and closure70 () () : UH1 = │
00:08:06 #26410 [Verbose] > │ let v0 : (unit -> UH1) = closure71() │
00:08:06 #26411 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.060000000000000005, 0.0038215786027292415, │
00:08:06 #26412 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0) │
00:08:06 #26413 [Verbose] > │ and closure69 () () : UH1 = │
00:08:06 #26414 [Verbose] > │ let v0 : (unit -> UH1) = closure70() │
00:08:06 #26415 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.05, 0.0033156132912039757, 0.0, 0.0, 0.0, │
00:08:06 #26416 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26417 [Verbose] > │ and closure68 () () : UH1 = │
00:08:06 #26418 [Verbose] > │ let v0 : (unit -> UH1) = closure69() │
00:08:06 #26419 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.04, 0.00274006253677335, 0.0, 0.0, 0.0, │
00:08:06 #26420 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26421 [Verbose] > │ and closure67 () () : UH1 = │
00:08:06 #26422 [Verbose] > │ let v0 : (unit -> UH1) = closure68() │
00:08:06 #26423 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.03, 0.0021070055388626454, 0.0, 0.0, 0.0, │
00:08:06 #26424 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26425 [Verbose] > │ and closure66 () () : UH1 = │
00:08:06 #26426 [Verbose] > │ let v0 : (unit -> UH1) = closure67() │
00:08:06 #26427 [Verbose] > │ UH1_0(0.0, 8.422578125E-06, 0.02, 0.0014297283919934465, 0.0, 0.0, 0.0, │
00:08:06 #26428 [Verbose] > │ 0.0, 0.0, v0) │
00:08:06 #26429 [Verbose] > │ and closure132 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 = │
00:08:06 #26430 [Verbose] > │ let v2 : UH3 = v1 () │
00:08:06 #26431 [Verbose] > │ let v3 : UH1 = v0 () │
00:08:06 #26432 [Verbose] > │ match v2 with │
00:08:06 #26433 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:08:06 #26434 [Verbose] > │ match v3 with │
00:08:06 #26435 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:08:06 #26436 [Verbose] > │ StreamCons *) │
00:08:06 #26437 [Verbose] > │ let v24 : float = v9 * 1.25E-05 │
00:08:06 #26438 [Verbose] > │ let v25 : float = v19 + v24 │
00:08:06 #26439 [Verbose] > │ let v26 : float = 1.25E-05 * v6 │
00:08:06 #26440 [Verbose] > │ let v27 : float = 1.25E-05 * v7 │
00:08:06 #26441 [Verbose] > │ let v28 : float = 1.25E-05 * v8 │
00:08:06 #26442 [Verbose] > │ let v29 : float = v16 + v26 │
00:08:06 #26443 [Verbose] > │ let v30 : float = v17 + v27 │
00:08:06 #26444 [Verbose] > │ let v31 : float = v18 + v28 │
00:08:06 #26445 [Verbose] > │ let v32 : float = 1.25E-05 * v10 │
00:08:06 #26446 [Verbose] > │ let v33 : float = 1.25E-05 * v11 │
00:08:06 #26447 [Verbose] > │ let v34 : float = 1.25E-05 * v12 │
00:08:06 #26448 [Verbose] > │ let v35 : float = v20 + v32 │
00:08:06 #26449 [Verbose] > │ let v36 : float = v21 + v33 │
00:08:06 #26450 [Verbose] > │ let v37 : float = v22 + v34 │
00:08:06 #26451 [Verbose] > │ let v38 : (unit -> UH1) = closure132(v23, v13) │
00:08:06 #26452 [Verbose] > │ UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:08:06 #26453 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26454 [Verbose] > │ UH1_1 │
00:08:06 #26455 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26456 [Verbose] > │ UH1_1 │
00:08:06 #26457 [Verbose] > │ and closure133 (v0 : UH1) () : UH1 = │
00:08:06 #26458 [Verbose] > │ v0 │
00:08:06 #26459 [Verbose] > │ and closure134 (v0 : UH1, v1 : Mut0) () : UH1 = │
00:08:06 #26460 [Verbose] > │ let v2 : US0 = v1.l0 │
00:08:06 #26461 [Verbose] > │ match v2 with │
00:08:06 #26462 [Verbose] > │ | US0_1(v3) -> (* Computed *) │
00:08:06 #26463 [Verbose] > │ v3 │
00:08:06 #26464 [Verbose] > │ | US0_0(v4) -> (* NotComputed *) │
00:08:06 #26465 [Verbose] > │ let v5 : UH1 = v4 () │
00:08:06 #26466 [Verbose] > │ let v20 : UH1 = │
00:08:06 #26467 [Verbose] > │ match v5 with │
00:08:06 #26468 [Verbose] > │ | UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (* │
00:08:06 #26469 [Verbose] > │ StreamCons *) │
00:08:06 #26470 [Verbose] > │ let v17 : (unit -> UH1) = method3(v0, v16) │
00:08:06 #26471 [Verbose] > │ UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17) │
00:08:06 #26472 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26473 [Verbose] > │ UH1_1 │
00:08:06 #26474 [Verbose] > │ let v21 : US0 = US0_1(v20) │
00:08:06 #26475 [Verbose] > │ v1.l0 <- v21 │
00:08:06 #26476 [Verbose] > │ v20 │
00:08:06 #26477 [Verbose] > │ and method3 (v0 : UH1, v1 : (unit -> UH1)) : (unit -> UH1) = │
00:08:06 #26478 [Verbose] > │ let v2 : US0 = US0_0(v1) │
00:08:06 #26479 [Verbose] > │ let v3 : Mut0 = {l0 = v2} : Mut0 │
00:08:06 #26480 [Verbose] > │ closure134(v0, v3) │
00:08:06 #26481 [Verbose] > │ and closure135 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 = │
00:08:06 #26482 [Verbose] > │ let v2 : UH3 = v1 () │
00:08:06 #26483 [Verbose] > │ let v3 : UH1 = v0 () │
00:08:06 #26484 [Verbose] > │ match v2 with │
00:08:06 #26485 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:08:06 #26486 [Verbose] > │ match v3 with │
00:08:06 #26487 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:08:06 #26488 [Verbose] > │ StreamCons *) │
00:08:06 #26489 [Verbose] > │ let v24 : float = v9 * 2.5E-05 │
00:08:06 #26490 [Verbose] > │ let v25 : float = v19 + v24 │
00:08:06 #26491 [Verbose] > │ let v26 : float = 2.5E-05 * v6 │
00:08:06 #26492 [Verbose] > │ let v27 : float = 2.5E-05 * v7 │
00:08:06 #26493 [Verbose] > │ let v28 : float = 2.5E-05 * v8 │
00:08:06 #26494 [Verbose] > │ let v29 : float = v16 + v26 │
00:08:06 #26495 [Verbose] > │ let v30 : float = v17 + v27 │
00:08:06 #26496 [Verbose] > │ let v31 : float = v18 + v28 │
00:08:06 #26497 [Verbose] > │ let v32 : float = 2.5E-05 * v10 │
00:08:06 #26498 [Verbose] > │ let v33 : float = 2.5E-05 * v11 │
00:08:06 #26499 [Verbose] > │ let v34 : float = 2.5E-05 * v12 │
00:08:06 #26500 [Verbose] > │ let v35 : float = v20 + v32 │
00:08:06 #26501 [Verbose] > │ let v36 : float = v21 + v33 │
00:08:06 #26502 [Verbose] > │ let v37 : float = v22 + v34 │
00:08:06 #26503 [Verbose] > │ let v38 : (unit -> UH1) = closure135(v23, v13) │
00:08:06 #26504 [Verbose] > │ UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:08:06 #26505 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26506 [Verbose] > │ UH1_1 │
00:08:06 #26507 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26508 [Verbose] > │ UH1_1 │
00:08:06 #26509 [Verbose] > │ and closure136 (v0 : (unit -> UH3), v1 : (unit -> UH3)) () : UH3 = │
00:08:06 #26510 [Verbose] > │ let v2 : UH3 = v1 () │
00:08:06 #26511 [Verbose] > │ let v3 : UH3 = v0 () │
00:08:06 #26512 [Verbose] > │ match v2 with │
00:08:06 #26513 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:08:06 #26514 [Verbose] > │ match v3 with │
00:08:06 #26515 [Verbose] > │ | UH3_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:08:06 #26516 [Verbose] > │ StreamCons *) │
00:08:06 #26517 [Verbose] > │ let v24 : float = v4 + v14 │
00:08:06 #26518 [Verbose] > │ let v25 : float = v5 + v15 │
00:08:06 #26519 [Verbose] > │ let v26 : float = v9 + v19 │
00:08:06 #26520 [Verbose] > │ let v27 : float = v6 + v16 │
00:08:06 #26521 [Verbose] > │ let v28 : float = v7 + v17 │
00:08:06 #26522 [Verbose] > │ let v29 : float = v8 + v18 │
00:08:06 #26523 [Verbose] > │ let v30 : float = v10 + v20 │
00:08:06 #26524 [Verbose] > │ let v31 : float = v11 + v21 │
00:08:06 #26525 [Verbose] > │ let v32 : float = v12 + v22 │
00:08:06 #26526 [Verbose] > │ let v33 : (unit -> UH3) = closure136(v23, v13) │
00:08:06 #26527 [Verbose] > │ UH3_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33) │
00:08:06 #26528 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26529 [Verbose] > │ UH3_1 │
00:08:06 #26530 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26531 [Verbose] > │ UH3_1 │
00:08:06 #26532 [Verbose] > │ and closure137 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 = │
00:08:06 #26533 [Verbose] > │ let v2 : UH3 = v1 () │
00:08:06 #26534 [Verbose] > │ let v3 : UH1 = v0 () │
00:08:06 #26535 [Verbose] > │ match v2 with │
00:08:06 #26536 [Verbose] > │ | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *) │
00:08:06 #26537 [Verbose] > │ match v3 with │
00:08:06 #26538 [Verbose] > │ | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* │
00:08:06 #26539 [Verbose] > │ StreamCons *) │
00:08:06 #26540 [Verbose] > │ let v24 : float = v9 * 4.166666666666667E-06 │
00:08:06 #26541 [Verbose] > │ let v25 : float = v19 + v24 │
00:08:06 #26542 [Verbose] > │ let v26 : float = 4.166666666666667E-06 * v6 │
00:08:06 #26543 [Verbose] > │ let v27 : float = 4.166666666666667E-06 * v7 │
00:08:06 #26544 [Verbose] > │ let v28 : float = 4.166666666666667E-06 * v8 │
00:08:06 #26545 [Verbose] > │ let v29 : float = v16 + v26 │
00:08:06 #26546 [Verbose] > │ let v30 : float = v17 + v27 │
00:08:06 #26547 [Verbose] > │ let v31 : float = v18 + v28 │
00:08:06 #26548 [Verbose] > │ let v32 : float = 4.166666666666667E-06 * v10 │
00:08:06 #26549 [Verbose] > │ let v33 : float = 4.166666666666667E-06 * v11 │
00:08:06 #26550 [Verbose] > │ let v34 : float = 4.166666666666667E-06 * v12 │
00:08:06 #26551 [Verbose] > │ let v35 : float = v20 + v32 │
00:08:06 #26552 [Verbose] > │ let v36 : float = v21 + v33 │
00:08:06 #26553 [Verbose] > │ let v37 : float = v22 + v34 │
00:08:06 #26554 [Verbose] > │ let v38 : (unit -> UH1) = closure137(v23, v13) │
00:08:06 #26555 [Verbose] > │ UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38) │
00:08:06 #26556 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26557 [Verbose] > │ UH1_1 │
00:08:06 #26558 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26559 [Verbose] > │ UH1_1 │
00:08:06 #26560 [Verbose] > │ and closure131 (v0 : (UH1 -> UH3)) (v1 : UH1) : UH1 = │
00:08:06 #26561 [Verbose] > │ let v2 : UH3 = v0 v1 │
00:08:06 #26562 [Verbose] > │ let v44 : UH1 = │
00:08:06 #26563 [Verbose] > │ match v2 with │
00:08:06 #26564 [Verbose] > │ | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons │
00:08:06 #26565 [Verbose] > │ *) │
00:08:06 #26566 [Verbose] > │ match v1 with │
00:08:06 #26567 [Verbose] > │ | UH1_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* │
00:08:06 #26568 [Verbose] > │ StreamCons *) │
00:08:06 #26569 [Verbose] > │ let v23 : float = v8 * 1.25E-05 │
00:08:06 #26570 [Verbose] > │ let v24 : float = v18 + v23 │
00:08:06 #26571 [Verbose] > │ let v25 : float = 1.25E-05 * v5 │
00:08:06 #26572 [Verbose] > │ let v26 : float = 1.25E-05 * v6 │
00:08:06 #26573 [Verbose] > │ let v27 : float = 1.25E-05 * v7 │
00:08:06 #26574 [Verbose] > │ let v28 : float = v15 + v25 │
00:08:06 #26575 [Verbose] > │ let v29 : float = v16 + v26 │
00:08:06 #26576 [Verbose] > │ let v30 : float = v17 + v27 │
00:08:06 #26577 [Verbose] > │ let v31 : float = 1.25E-05 * v9 │
00:08:06 #26578 [Verbose] > │ let v32 : float = 1.25E-05 * v10 │
00:08:06 #26579 [Verbose] > │ let v33 : float = 1.25E-05 * v11 │
00:08:06 #26580 [Verbose] > │ let v34 : float = v19 + v31 │
00:08:06 #26581 [Verbose] > │ let v35 : float = v20 + v32 │
00:08:06 #26582 [Verbose] > │ let v36 : float = v21 + v33 │
00:08:06 #26583 [Verbose] > │ let v37 : (unit -> UH1) = closure132(v22, v12) │
00:08:06 #26584 [Verbose] > │ UH1_0(v13, v14, v28, v29, v30, v24, v34, v35, v36, v37) │
00:08:06 #26585 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26586 [Verbose] > │ UH1_1 │
00:08:06 #26587 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26588 [Verbose] > │ UH1_1 │
00:08:06 #26589 [Verbose] > │ let v45 : (unit -> UH1) = closure133(v44) │
00:08:06 #26590 [Verbose] > │ let v46 : (unit -> UH1) = method3(v44, v45) │
00:08:06 #26591 [Verbose] > │ let v47 : UH1 = v46 () │
00:08:06 #26592 [Verbose] > │ let v48 : UH3 = v0 v47 │
00:08:06 #26593 [Verbose] > │ let v90 : UH1 = │
00:08:06 #26594 [Verbose] > │ match v48 with │
00:08:06 #26595 [Verbose] > │ | UH3_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (* │
00:08:06 #26596 [Verbose] > │ StreamCons *) │
00:08:06 #26597 [Verbose] > │ match v1 with │
00:08:06 #26598 [Verbose] > │ | UH1_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (* │
00:08:06 #26599 [Verbose] > │ StreamCons *) │
00:08:06 #26600 [Verbose] > │ let v69 : float = v54 * 1.25E-05 │
00:08:06 #26601 [Verbose] > │ let v70 : float = v64 + v69 │
00:08:06 #26602 [Verbose] > │ let v71 : float = 1.25E-05 * v51 │
00:08:06 #26603 [Verbose] > │ let v72 : float = 1.25E-05 * v52 │
00:08:06 #26604 [Verbose] > │ let v73 : float = 1.25E-05 * v53 │
00:08:06 #26605 [Verbose] > │ let v74 : float = v61 + v71 │
00:08:06 #26606 [Verbose] > │ let v75 : float = v62 + v72 │
00:08:06 #26607 [Verbose] > │ let v76 : float = v63 + v73 │
00:08:06 #26608 [Verbose] > │ let v77 : float = 1.25E-05 * v55 │
00:08:06 #26609 [Verbose] > │ let v78 : float = 1.25E-05 * v56 │
00:08:06 #26610 [Verbose] > │ let v79 : float = 1.25E-05 * v57 │
00:08:06 #26611 [Verbose] > │ let v80 : float = v65 + v77 │
00:08:06 #26612 [Verbose] > │ let v81 : float = v66 + v78 │
00:08:06 #26613 [Verbose] > │ let v82 : float = v67 + v79 │
00:08:06 #26614 [Verbose] > │ let v83 : (unit -> UH1) = closure132(v68, v58) │
00:08:06 #26615 [Verbose] > │ UH1_0(v59, v60, v74, v75, v76, v70, v80, v81, v82, v83) │
00:08:06 #26616 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26617 [Verbose] > │ UH1_1 │
00:08:06 #26618 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26619 [Verbose] > │ UH1_1 │
00:08:06 #26620 [Verbose] > │ let v91 : (unit -> UH1) = closure133(v90) │
00:08:06 #26621 [Verbose] > │ let v92 : (unit -> UH1) = method3(v90, v91) │
00:08:06 #26622 [Verbose] > │ let v93 : UH1 = v92 () │
00:08:06 #26623 [Verbose] > │ let v94 : UH3 = v0 v93 │
00:08:06 #26624 [Verbose] > │ let v136 : UH1 = │
00:08:06 #26625 [Verbose] > │ match v94 with │
00:08:06 #26626 [Verbose] > │ | UH3_0(v95, v96, v97, v98, v99, v100, v101, v102, v103, v104) -> (* │
00:08:06 #26627 [Verbose] > │ StreamCons *) │
00:08:06 #26628 [Verbose] > │ match v1 with │
00:08:06 #26629 [Verbose] > │ | UH1_0(v105, v106, v107, v108, v109, v110, v111, v112, v113, │
00:08:06 #26630 [Verbose] > │ v114) -> (* StreamCons *) │
00:08:06 #26631 [Verbose] > │ let v115 : float = v100 * 2.5E-05 │
00:08:06 #26632 [Verbose] > │ let v116 : float = v110 + v115 │
00:08:06 #26633 [Verbose] > │ let v117 : float = 2.5E-05 * v97 │
00:08:06 #26634 [Verbose] > │ let v118 : float = 2.5E-05 * v98 │
00:08:06 #26635 [Verbose] > │ let v119 : float = 2.5E-05 * v99 │
00:08:06 #26636 [Verbose] > │ let v120 : float = v107 + v117 │
00:08:06 #26637 [Verbose] > │ let v121 : float = v108 + v118 │
00:08:06 #26638 [Verbose] > │ let v122 : float = v109 + v119 │
00:08:06 #26639 [Verbose] > │ let v123 : float = 2.5E-05 * v101 │
00:08:06 #26640 [Verbose] > │ let v124 : float = 2.5E-05 * v102 │
00:08:06 #26641 [Verbose] > │ let v125 : float = 2.5E-05 * v103 │
00:08:06 #26642 [Verbose] > │ let v126 : float = v111 + v123 │
00:08:06 #26643 [Verbose] > │ let v127 : float = v112 + v124 │
00:08:06 #26644 [Verbose] > │ let v128 : float = v113 + v125 │
00:08:06 #26645 [Verbose] > │ let v129 : (unit -> UH1) = closure135(v114, v104) │
00:08:06 #26646 [Verbose] > │ UH1_0(v105, v106, v120, v121, v122, v116, v126, v127, v128, │
00:08:06 #26647 [Verbose] > │ v129) │
00:08:06 #26648 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26649 [Verbose] > │ UH1_1 │
00:08:06 #26650 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26651 [Verbose] > │ UH1_1 │
00:08:06 #26652 [Verbose] > │ let v137 : (unit -> UH1) = closure133(v136) │
00:08:06 #26653 [Verbose] > │ let v138 : (unit -> UH1) = method3(v136, v137) │
00:08:06 #26654 [Verbose] > │ let v139 : UH1 = v138 () │
00:08:06 #26655 [Verbose] > │ let v140 : UH3 = v0 v139 │
00:08:06 #26656 [Verbose] > │ let v177 : UH3 = │
00:08:06 #26657 [Verbose] > │ match v2 with │
00:08:06 #26658 [Verbose] > │ | UH3_0(v141, v142, v143, v144, v145, v146, v147, v148, v149, v150) │
00:08:06 #26659 [Verbose] > │ -> (* StreamCons *) │
00:08:06 #26660 [Verbose] > │ match v48 with │
00:08:06 #26661 [Verbose] > │ | UH3_0(v151, v152, v153, v154, v155, v156, v157, v158, v159, │
00:08:06 #26662 [Verbose] > │ v160) -> (* StreamCons *) │
00:08:06 #26663 [Verbose] > │ let v161 : float = v141 + v151 │
00:08:06 #26664 [Verbose] > │ let v162 : float = v142 + v152 │
00:08:06 #26665 [Verbose] > │ let v163 : float = v146 + v156 │
00:08:06 #26666 [Verbose] > │ let v164 : float = v143 + v153 │
00:08:06 #26667 [Verbose] > │ let v165 : float = v144 + v154 │
00:08:06 #26668 [Verbose] > │ let v166 : float = v145 + v155 │
00:08:06 #26669 [Verbose] > │ let v167 : float = v147 + v157 │
00:08:06 #26670 [Verbose] > │ let v168 : float = v148 + v158 │
00:08:06 #26671 [Verbose] > │ let v169 : float = v149 + v159 │
00:08:06 #26672 [Verbose] > │ let v170 : (unit -> UH3) = closure136(v160, v150) │
00:08:06 #26673 [Verbose] > │ UH3_0(v161, v162, v164, v165, v166, v163, v167, v168, v169, │
00:08:06 #26674 [Verbose] > │ v170) │
00:08:06 #26675 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26676 [Verbose] > │ UH3_1 │
00:08:06 #26677 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26678 [Verbose] > │ UH3_1 │
00:08:06 #26679 [Verbose] > │ let v214 : UH3 = │
00:08:06 #26680 [Verbose] > │ match v177 with │
00:08:06 #26681 [Verbose] > │ | UH3_0(v178, v179, v180, v181, v182, v183, v184, v185, v186, v187) │
00:08:06 #26682 [Verbose] > │ -> (* StreamCons *) │
00:08:06 #26683 [Verbose] > │ match v48 with │
00:08:06 #26684 [Verbose] > │ | UH3_0(v188, v189, v190, v191, v192, v193, v194, v195, v196, │
00:08:06 #26685 [Verbose] > │ v197) -> (* StreamCons *) │
00:08:06 #26686 [Verbose] > │ let v198 : float = v178 + v188 │
00:08:06 #26687 [Verbose] > │ let v199 : float = v179 + v189 │
00:08:06 #26688 [Verbose] > │ let v200 : float = v183 + v193 │
00:08:06 #26689 [Verbose] > │ let v201 : float = v180 + v190 │
00:08:06 #26690 [Verbose] > │ let v202 : float = v181 + v191 │
00:08:06 #26691 [Verbose] > │ let v203 : float = v182 + v192 │
00:08:06 #26692 [Verbose] > │ let v204 : float = v184 + v194 │
00:08:06 #26693 [Verbose] > │ let v205 : float = v185 + v195 │
00:08:06 #26694 [Verbose] > │ let v206 : float = v186 + v196 │
00:08:06 #26695 [Verbose] > │ let v207 : (unit -> UH3) = closure136(v197, v187) │
00:08:06 #26696 [Verbose] > │ UH3_0(v198, v199, v201, v202, v203, v200, v204, v205, v206, │
00:08:06 #26697 [Verbose] > │ v207) │
00:08:06 #26698 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26699 [Verbose] > │ UH3_1 │
00:08:06 #26700 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26701 [Verbose] > │ UH3_1 │
00:08:06 #26702 [Verbose] > │ let v251 : UH3 = │
00:08:06 #26703 [Verbose] > │ match v214 with │
00:08:06 #26704 [Verbose] > │ | UH3_0(v215, v216, v217, v218, v219, v220, v221, v222, v223, v224) │
00:08:06 #26705 [Verbose] > │ -> (* StreamCons *) │
00:08:06 #26706 [Verbose] > │ match v94 with │
00:08:06 #26707 [Verbose] > │ | UH3_0(v225, v226, v227, v228, v229, v230, v231, v232, v233, │
00:08:06 #26708 [Verbose] > │ v234) -> (* StreamCons *) │
00:08:06 #26709 [Verbose] > │ let v235 : float = v215 + v225 │
00:08:06 #26710 [Verbose] > │ let v236 : float = v216 + v226 │
00:08:06 #26711 [Verbose] > │ let v237 : float = v220 + v230 │
00:08:06 #26712 [Verbose] > │ let v238 : float = v217 + v227 │
00:08:06 #26713 [Verbose] > │ let v239 : float = v218 + v228 │
00:08:06 #26714 [Verbose] > │ let v240 : float = v219 + v229 │
00:08:06 #26715 [Verbose] > │ let v241 : float = v221 + v231 │
00:08:06 #26716 [Verbose] > │ let v242 : float = v222 + v232 │
00:08:06 #26717 [Verbose] > │ let v243 : float = v223 + v233 │
00:08:06 #26718 [Verbose] > │ let v244 : (unit -> UH3) = closure136(v234, v224) │
00:08:06 #26719 [Verbose] > │ UH3_0(v235, v236, v238, v239, v240, v237, v241, v242, v243, │
00:08:06 #26720 [Verbose] > │ v244) │
00:08:06 #26721 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26722 [Verbose] > │ UH3_1 │
00:08:06 #26723 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26724 [Verbose] > │ UH3_1 │
00:08:06 #26725 [Verbose] > │ let v288 : UH3 = │
00:08:06 #26726 [Verbose] > │ match v251 with │
00:08:06 #26727 [Verbose] > │ | UH3_0(v252, v253, v254, v255, v256, v257, v258, v259, v260, v261) │
00:08:06 #26728 [Verbose] > │ -> (* StreamCons *) │
00:08:06 #26729 [Verbose] > │ match v94 with │
00:08:06 #26730 [Verbose] > │ | UH3_0(v262, v263, v264, v265, v266, v267, v268, v269, v270, │
00:08:06 #26731 [Verbose] > │ v271) -> (* StreamCons *) │
00:08:06 #26732 [Verbose] > │ let v272 : float = v252 + v262 │
00:08:06 #26733 [Verbose] > │ let v273 : float = v253 + v263 │
00:08:06 #26734 [Verbose] > │ let v274 : float = v257 + v267 │
00:08:06 #26735 [Verbose] > │ let v275 : float = v254 + v264 │
00:08:06 #26736 [Verbose] > │ let v276 : float = v255 + v265 │
00:08:06 #26737 [Verbose] > │ let v277 : float = v256 + v266 │
00:08:06 #26738 [Verbose] > │ let v278 : float = v258 + v268 │
00:08:06 #26739 [Verbose] > │ let v279 : float = v259 + v269 │
00:08:06 #26740 [Verbose] > │ let v280 : float = v260 + v270 │
00:08:06 #26741 [Verbose] > │ let v281 : (unit -> UH3) = closure136(v271, v261) │
00:08:06 #26742 [Verbose] > │ UH3_0(v272, v273, v275, v276, v277, v274, v278, v279, v280, │
00:08:06 #26743 [Verbose] > │ v281) │
00:08:06 #26744 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26745 [Verbose] > │ UH3_1 │
00:08:06 #26746 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26747 [Verbose] > │ UH3_1 │
00:08:06 #26748 [Verbose] > │ let v325 : UH3 = │
00:08:06 #26749 [Verbose] > │ match v288 with │
00:08:06 #26750 [Verbose] > │ | UH3_0(v289, v290, v291, v292, v293, v294, v295, v296, v297, v298) │
00:08:06 #26751 [Verbose] > │ -> (* StreamCons *) │
00:08:06 #26752 [Verbose] > │ match v140 with │
00:08:06 #26753 [Verbose] > │ | UH3_0(v299, v300, v301, v302, v303, v304, v305, v306, v307, │
00:08:06 #26754 [Verbose] > │ v308) -> (* StreamCons *) │
00:08:06 #26755 [Verbose] > │ let v309 : float = v289 + v299 │
00:08:06 #26756 [Verbose] > │ let v310 : float = v290 + v300 │
00:08:06 #26757 [Verbose] > │ let v311 : float = v294 + v304 │
00:08:06 #26758 [Verbose] > │ let v312 : float = v291 + v301 │
00:08:06 #26759 [Verbose] > │ let v313 : float = v292 + v302 │
00:08:06 #26760 [Verbose] > │ let v314 : float = v293 + v303 │
00:08:06 #26761 [Verbose] > │ let v315 : float = v295 + v305 │
00:08:06 #26762 [Verbose] > │ let v316 : float = v296 + v306 │
00:08:06 #26763 [Verbose] > │ let v317 : float = v297 + v307 │
00:08:06 #26764 [Verbose] > │ let v318 : (unit -> UH3) = closure136(v308, v298) │
00:08:06 #26765 [Verbose] > │ UH3_0(v309, v310, v312, v313, v314, v311, v315, v316, v317, │
00:08:06 #26766 [Verbose] > │ v318) │
00:08:06 #26767 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26768 [Verbose] > │ UH3_1 │
00:08:06 #26769 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26770 [Verbose] > │ UH3_1 │
00:08:06 #26771 [Verbose] > │ let v367 : UH1 = │
00:08:06 #26772 [Verbose] > │ match v325 with │
00:08:06 #26773 [Verbose] > │ | UH3_0(v326, v327, v328, v329, v330, v331, v332, v333, v334, v335) │
00:08:06 #26774 [Verbose] > │ -> (* StreamCons *) │
00:08:06 #26775 [Verbose] > │ match v1 with │
00:08:06 #26776 [Verbose] > │ | UH1_0(v336, v337, v338, v339, v340, v341, v342, v343, v344, │
00:08:06 #26777 [Verbose] > │ v345) -> (* StreamCons *) │
00:08:06 #26778 [Verbose] > │ let v346 : float = v331 * 4.166666666666667E-06 │
00:08:06 #26779 [Verbose] > │ let v347 : float = v341 + v346 │
00:08:06 #26780 [Verbose] > │ let v348 : float = 4.166666666666667E-06 * v328 │
00:08:06 #26781 [Verbose] > │ let v349 : float = 4.166666666666667E-06 * v329 │
00:08:06 #26782 [Verbose] > │ let v350 : float = 4.166666666666667E-06 * v330 │
00:08:06 #26783 [Verbose] > │ let v351 : float = v338 + v348 │
00:08:06 #26784 [Verbose] > │ let v352 : float = v339 + v349 │
00:08:06 #26785 [Verbose] > │ let v353 : float = v340 + v350 │
00:08:06 #26786 [Verbose] > │ let v354 : float = 4.166666666666667E-06 * v332 │
00:08:06 #26787 [Verbose] > │ let v355 : float = 4.166666666666667E-06 * v333 │
00:08:06 #26788 [Verbose] > │ let v356 : float = 4.166666666666667E-06 * v334 │
00:08:06 #26789 [Verbose] > │ let v357 : float = v342 + v354 │
00:08:06 #26790 [Verbose] > │ let v358 : float = v343 + v355 │
00:08:06 #26791 [Verbose] > │ let v359 : float = v344 + v356 │
00:08:06 #26792 [Verbose] > │ let v360 : (unit -> UH1) = closure137(v345, v335) │
00:08:06 #26793 [Verbose] > │ UH1_0(v336, v337, v351, v352, v353, v347, v357, v358, v359, │
00:08:06 #26794 [Verbose] > │ v360) │
00:08:06 #26795 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #26796 [Verbose] > │ UH1_1 │
00:08:06 #26797 [Verbose] > │ | UH3_1 -> (* StreamNil *) │
00:08:06 #26798 [Verbose] > │ UH1_1 │
00:08:06 #26799 [Verbose] > │ let v368 : (unit -> UH1) = closure133(v367) │
00:08:06 #26800 [Verbose] > │ let v369 : (unit -> UH1) = method3(v367, v368) │
00:08:06 #26801 [Verbose] > │ let v370 : UH1 = v369 () │
00:08:06 #26802 [Verbose] > │ v370 │
00:08:06 #26803 [Verbose] > │ and closure130 () (v0 : (UH1 -> UH3)) : (UH1 -> UH1) = │
00:08:06 #26804 [Verbose] > │ closure131(v0) │
00:08:06 #26805 [Verbose] > │ and method2 () : ((UH1 -> UH3) -> (UH1 -> UH1)) = │
00:08:06 #26806 [Verbose] > │ closure130() │
00:08:06 #26807 [Verbose] > │ and closure138 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:08:06 #26808 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:08:06 #26809 [Verbose] > │ float * float) = │
00:08:06 #26810 [Verbose] > │ let v9 : float = v2 * v2 │
00:08:06 #26811 [Verbose] > │ let v10 : float = v3 * v3 │
00:08:06 #26812 [Verbose] > │ let v11 : float = v9 + v10 │
00:08:06 #26813 [Verbose] > │ let v12 : float = v4 * v4 │
00:08:06 #26814 [Verbose] > │ let v13 : float = v11 + v12 │
00:08:06 #26815 [Verbose] > │ let v14 : float = sqrt v13 │
00:08:06 #26816 [Verbose] > │ let v15 : float = -5384.0 * v14 │
00:08:06 #26817 [Verbose] > │ let v16 : float = v15 * v2 │
00:08:06 #26818 [Verbose] > │ let v17 : float = v15 * v3 │
00:08:06 #26819 [Verbose] > │ let v18 : float = v15 * v4 │
00:08:06 #26820 [Verbose] > │ let v19 : float = v16 / v14 │
00:08:06 #26821 [Verbose] > │ let v20 : float = v17 / v14 │
00:08:06 #26822 [Verbose] > │ let v21 : float = v18 / v14 │
00:08:06 #26823 [Verbose] > │ struct (v19, v20, v21) │
00:08:06 #26824 [Verbose] > │ and closure139 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:08:06 #26825 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:08:06 #26826 [Verbose] > │ float * float) = │
00:08:06 #26827 [Verbose] > │ let v9 : float = v2 + -0.65 │
00:08:06 #26828 [Verbose] > │ let v10 : float = v9 * v9 │
00:08:06 #26829 [Verbose] > │ let v11 : float = v3 * v3 │
00:08:06 #26830 [Verbose] > │ let v12 : float = v10 + v11 │
00:08:06 #26831 [Verbose] > │ let v13 : float = v4 * v4 │
00:08:06 #26832 [Verbose] > │ let v14 : float = v12 + v13 │
00:08:06 #26833 [Verbose] > │ let v15 : float = sqrt v14 │
00:08:06 #26834 [Verbose] > │ let v16 : float = -5384.0 * v15 │
00:08:06 #26835 [Verbose] > │ let v17 : float = v16 * v9 │
00:08:06 #26836 [Verbose] > │ let v18 : float = v16 * v3 │
00:08:06 #26837 [Verbose] > │ let v19 : float = v16 * v4 │
00:08:06 #26838 [Verbose] > │ let v20 : float = v17 / v15 │
00:08:06 #26839 [Verbose] > │ let v21 : float = v18 / v15 │
00:08:06 #26840 [Verbose] > │ let v22 : float = v19 / v15 │
00:08:06 #26841 [Verbose] > │ struct (v20, v21, v22) │
00:08:06 #26842 [Verbose] > │ and closure141 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │
00:08:06 #26843 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 : │
00:08:06 #26844 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16 │
00:08:06 #26845 [Verbose] > │ : float, v17 : float) : struct (float * float * float) = │
00:08:06 #26846 [Verbose] > │ let v18 : float = -1.0 * v2 │
00:08:06 #26847 [Verbose] > │ let v19 : float = -1.0 * v3 │
00:08:06 #26848 [Verbose] > │ let v20 : float = -1.0 * v4 │
00:08:06 #26849 [Verbose] > │ let v21 : float = v11 + v18 │
00:08:06 #26850 [Verbose] > │ let v22 : float = v12 + v19 │
00:08:06 #26851 [Verbose] > │ let v23 : float = v13 + v20 │
00:08:06 #26852 [Verbose] > │ let v24 : float = v21 * v21 │
00:08:06 #26853 [Verbose] > │ let v25 : float = v22 * v22 │
00:08:06 #26854 [Verbose] > │ let v26 : float = v24 + v25 │
00:08:06 #26855 [Verbose] > │ let v27 : float = v23 * v23 │
00:08:06 #26856 [Verbose] > │ let v28 : float = v26 + v27 │
00:08:06 #26857 [Verbose] > │ let v29 : float = sqrt v28 │
00:08:06 #26858 [Verbose] > │ let v30 : float = -5384.0 * v29 │
00:08:06 #26859 [Verbose] > │ let v31 : float = v30 * v21 │
00:08:06 #26860 [Verbose] > │ let v32 : float = v30 * v22 │
00:08:06 #26861 [Verbose] > │ let v33 : float = v30 * v23 │
00:08:06 #26862 [Verbose] > │ let v34 : float = v31 / v29 │
00:08:06 #26863 [Verbose] > │ let v35 : float = v32 / v29 │
00:08:06 #26864 [Verbose] > │ let v36 : float = v33 / v29 │
00:08:06 #26865 [Verbose] > │ struct (v34, v35, v36) │
00:08:06 #26866 [Verbose] > │ and closure140 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:08:06 #26867 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : (struct (float * │
00:08:06 #26868 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct │
00:08:06 #26869 [Verbose] > │ (float * float * float)) = │
00:08:06 #26870 [Verbose] > │ closure141(v0, v1, v2, v3, v4, v5, v6, v7, v8) │
00:08:06 #26871 [Verbose] > │ and method4 () : UH4 = │
00:08:06 #26872 [Verbose] > │ let v0 : (struct (float * float * float * float * float * float * float │
00:08:06 #26873 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure138() │
00:08:06 #26874 [Verbose] > │ let v1 : US1 = US1_0(0, v0) │
00:08:06 #26875 [Verbose] > │ let v2 : (struct (float * float * float * float * float * float * float │
00:08:06 #26876 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure139() │
00:08:06 #26877 [Verbose] > │ let v3 : US1 = US1_0(63, v2) │
00:08:06 #26878 [Verbose] > │ let v4 : (struct (float * float * float * float * float * float * float │
00:08:06 #26879 [Verbose] > │ * float * float) -> (struct (float * float * float * float * float * float * │
00:08:06 #26880 [Verbose] > │ float * float * float) -> struct (float * float * float))) = closure140() │
00:08:06 #26881 [Verbose] > │ let v5 : US1 = US1_1(0, 1, v4) │
00:08:06 #26882 [Verbose] > │ let v6 : US1 = US1_1(1, 2, v4) │
00:08:06 #26883 [Verbose] > │ let v7 : US1 = US1_1(2, 3, v4) │
00:08:06 #26884 [Verbose] > │ let v8 : US1 = US1_1(3, 4, v4) │
00:08:06 #26885 [Verbose] > │ let v9 : US1 = US1_1(4, 5, v4) │
00:08:06 #26886 [Verbose] > │ let v10 : US1 = US1_1(5, 6, v4) │
00:08:06 #26887 [Verbose] > │ let v11 : US1 = US1_1(6, 7, v4) │
00:08:06 #26888 [Verbose] > │ let v12 : US1 = US1_1(7, 8, v4) │
00:08:06 #26889 [Verbose] > │ let v13 : US1 = US1_1(8, 9, v4) │
00:08:06 #26890 [Verbose] > │ let v14 : US1 = US1_1(9, 10, v4) │
00:08:06 #26891 [Verbose] > │ let v15 : US1 = US1_1(10, 11, v4) │
00:08:06 #26892 [Verbose] > │ let v16 : US1 = US1_1(11, 12, v4) │
00:08:06 #26893 [Verbose] > │ let v17 : US1 = US1_1(12, 13, v4) │
00:08:06 #26894 [Verbose] > │ let v18 : US1 = US1_1(13, 14, v4) │
00:08:06 #26895 [Verbose] > │ let v19 : US1 = US1_1(14, 15, v4) │
00:08:06 #26896 [Verbose] > │ let v20 : US1 = US1_1(15, 16, v4) │
00:08:06 #26897 [Verbose] > │ let v21 : US1 = US1_1(16, 17, v4) │
00:08:06 #26898 [Verbose] > │ let v22 : US1 = US1_1(17, 18, v4) │
00:08:06 #26899 [Verbose] > │ let v23 : US1 = US1_1(18, 19, v4) │
00:08:06 #26900 [Verbose] > │ let v24 : US1 = US1_1(19, 20, v4) │
00:08:06 #26901 [Verbose] > │ let v25 : US1 = US1_1(20, 21, v4) │
00:08:06 #26902 [Verbose] > │ let v26 : US1 = US1_1(21, 22, v4) │
00:08:06 #26903 [Verbose] > │ let v27 : US1 = US1_1(22, 23, v4) │
00:08:06 #26904 [Verbose] > │ let v28 : US1 = US1_1(23, 24, v4) │
00:08:06 #26905 [Verbose] > │ let v29 : US1 = US1_1(24, 25, v4) │
00:08:06 #26906 [Verbose] > │ let v30 : US1 = US1_1(25, 26, v4) │
00:08:06 #26907 [Verbose] > │ let v31 : US1 = US1_1(26, 27, v4) │
00:08:06 #26908 [Verbose] > │ let v32 : US1 = US1_1(27, 28, v4) │
00:08:06 #26909 [Verbose] > │ let v33 : US1 = US1_1(28, 29, v4) │
00:08:06 #26910 [Verbose] > │ let v34 : US1 = US1_1(29, 30, v4) │
00:08:06 #26911 [Verbose] > │ let v35 : US1 = US1_1(30, 31, v4) │
00:08:06 #26912 [Verbose] > │ let v36 : US1 = US1_1(31, 32, v4) │
00:08:06 #26913 [Verbose] > │ let v37 : US1 = US1_1(32, 33, v4) │
00:08:06 #26914 [Verbose] > │ let v38 : US1 = US1_1(33, 34, v4) │
00:08:06 #26915 [Verbose] > │ let v39 : US1 = US1_1(34, 35, v4) │
00:08:06 #26916 [Verbose] > │ let v40 : US1 = US1_1(35, 36, v4) │
00:08:06 #26917 [Verbose] > │ let v41 : US1 = US1_1(36, 37, v4) │
00:08:06 #26918 [Verbose] > │ let v42 : US1 = US1_1(37, 38, v4) │
00:08:06 #26919 [Verbose] > │ let v43 : US1 = US1_1(38, 39, v4) │
00:08:06 #26920 [Verbose] > │ let v44 : US1 = US1_1(39, 40, v4) │
00:08:06 #26921 [Verbose] > │ let v45 : US1 = US1_1(40, 41, v4) │
00:08:06 #26922 [Verbose] > │ let v46 : US1 = US1_1(41, 42, v4) │
00:08:06 #26923 [Verbose] > │ let v47 : US1 = US1_1(42, 43, v4) │
00:08:06 #26924 [Verbose] > │ let v48 : US1 = US1_1(43, 44, v4) │
00:08:06 #26925 [Verbose] > │ let v49 : US1 = US1_1(44, 45, v4) │
00:08:06 #26926 [Verbose] > │ let v50 : US1 = US1_1(45, 46, v4) │
00:08:06 #26927 [Verbose] > │ let v51 : US1 = US1_1(46, 47, v4) │
00:08:06 #26928 [Verbose] > │ let v52 : US1 = US1_1(47, 48, v4) │
00:08:06 #26929 [Verbose] > │ let v53 : US1 = US1_1(48, 49, v4) │
00:08:06 #26930 [Verbose] > │ let v54 : US1 = US1_1(49, 50, v4) │
00:08:06 #26931 [Verbose] > │ let v55 : US1 = US1_1(50, 51, v4) │
00:08:06 #26932 [Verbose] > │ let v56 : US1 = US1_1(51, 52, v4) │
00:08:06 #26933 [Verbose] > │ let v57 : US1 = US1_1(52, 53, v4) │
00:08:06 #26934 [Verbose] > │ let v58 : US1 = US1_1(53, 54, v4) │
00:08:06 #26935 [Verbose] > │ let v59 : US1 = US1_1(54, 55, v4) │
00:08:06 #26936 [Verbose] > │ let v60 : US1 = US1_1(55, 56, v4) │
00:08:06 #26937 [Verbose] > │ let v61 : US1 = US1_1(56, 57, v4) │
00:08:06 #26938 [Verbose] > │ let v62 : US1 = US1_1(57, 58, v4) │
00:08:06 #26939 [Verbose] > │ let v63 : US1 = US1_1(58, 59, v4) │
00:08:06 #26940 [Verbose] > │ let v64 : US1 = US1_1(59, 60, v4) │
00:08:06 #26941 [Verbose] > │ let v65 : UH4 = UH4_0 │
00:08:06 #26942 [Verbose] > │ let v66 : UH4 = UH4_1(v64, v65) │
00:08:06 #26943 [Verbose] > │ let v67 : UH4 = UH4_1(v63, v66) │
00:08:06 #26944 [Verbose] > │ let v68 : UH4 = UH4_1(v62, v67) │
00:08:06 #26945 [Verbose] > │ let v69 : UH4 = UH4_1(v61, v68) │
00:08:06 #26946 [Verbose] > │ let v70 : UH4 = UH4_1(v60, v69) │
00:08:06 #26947 [Verbose] > │ let v71 : UH4 = UH4_1(v59, v70) │
00:08:06 #26948 [Verbose] > │ let v72 : UH4 = UH4_1(v58, v71) │
00:08:06 #26949 [Verbose] > │ let v73 : UH4 = UH4_1(v57, v72) │
00:08:06 #26950 [Verbose] > │ let v74 : UH4 = UH4_1(v56, v73) │
00:08:06 #26951 [Verbose] > │ let v75 : UH4 = UH4_1(v55, v74) │
00:08:06 #26952 [Verbose] > │ let v76 : UH4 = UH4_1(v54, v75) │
00:08:06 #26953 [Verbose] > │ let v77 : UH4 = UH4_1(v53, v76) │
00:08:06 #26954 [Verbose] > │ let v78 : UH4 = UH4_1(v52, v77) │
00:08:06 #26955 [Verbose] > │ let v79 : UH4 = UH4_1(v51, v78) │
00:08:06 #26956 [Verbose] > │ let v80 : UH4 = UH4_1(v50, v79) │
00:08:06 #26957 [Verbose] > │ let v81 : UH4 = UH4_1(v49, v80) │
00:08:06 #26958 [Verbose] > │ let v82 : UH4 = UH4_1(v48, v81) │
00:08:06 #26959 [Verbose] > │ let v83 : UH4 = UH4_1(v47, v82) │
00:08:06 #26960 [Verbose] > │ let v84 : UH4 = UH4_1(v46, v83) │
00:08:06 #26961 [Verbose] > │ let v85 : UH4 = UH4_1(v45, v84) │
00:08:06 #26962 [Verbose] > │ let v86 : UH4 = UH4_1(v44, v85) │
00:08:06 #26963 [Verbose] > │ let v87 : UH4 = UH4_1(v43, v86) │
00:08:06 #26964 [Verbose] > │ let v88 : UH4 = UH4_1(v42, v87) │
00:08:06 #26965 [Verbose] > │ let v89 : UH4 = UH4_1(v41, v88) │
00:08:06 #26966 [Verbose] > │ let v90 : UH4 = UH4_1(v40, v89) │
00:08:06 #26967 [Verbose] > │ let v91 : UH4 = UH4_1(v39, v90) │
00:08:06 #26968 [Verbose] > │ let v92 : UH4 = UH4_1(v38, v91) │
00:08:06 #26969 [Verbose] > │ let v93 : UH4 = UH4_1(v37, v92) │
00:08:06 #26970 [Verbose] > │ let v94 : UH4 = UH4_1(v36, v93) │
00:08:06 #26971 [Verbose] > │ let v95 : UH4 = UH4_1(v35, v94) │
00:08:06 #26972 [Verbose] > │ let v96 : UH4 = UH4_1(v34, v95) │
00:08:06 #26973 [Verbose] > │ let v97 : UH4 = UH4_1(v33, v96) │
00:08:06 #26974 [Verbose] > │ let v98 : UH4 = UH4_1(v32, v97) │
00:08:06 #26975 [Verbose] > │ let v99 : UH4 = UH4_1(v31, v98) │
00:08:06 #26976 [Verbose] > │ let v100 : UH4 = UH4_1(v30, v99) │
00:08:06 #26977 [Verbose] > │ let v101 : UH4 = UH4_1(v29, v100) │
00:08:06 #26978 [Verbose] > │ let v102 : UH4 = UH4_1(v28, v101) │
00:08:06 #26979 [Verbose] > │ let v103 : UH4 = UH4_1(v27, v102) │
00:08:06 #26980 [Verbose] > │ let v104 : UH4 = UH4_1(v26, v103) │
00:08:06 #26981 [Verbose] > │ let v105 : UH4 = UH4_1(v25, v104) │
00:08:06 #26982 [Verbose] > │ let v106 : UH4 = UH4_1(v24, v105) │
00:08:06 #26983 [Verbose] > │ let v107 : UH4 = UH4_1(v23, v106) │
00:08:06 #26984 [Verbose] > │ let v108 : UH4 = UH4_1(v22, v107) │
00:08:06 #26985 [Verbose] > │ let v109 : UH4 = UH4_1(v21, v108) │
00:08:06 #26986 [Verbose] > │ let v110 : UH4 = UH4_1(v20, v109) │
00:08:06 #26987 [Verbose] > │ let v111 : UH4 = UH4_1(v19, v110) │
00:08:06 #26988 [Verbose] > │ let v112 : UH4 = UH4_1(v18, v111) │
00:08:06 #26989 [Verbose] > │ let v113 : UH4 = UH4_1(v17, v112) │
00:08:06 #26990 [Verbose] > │ let v114 : UH4 = UH4_1(v16, v113) │
00:08:06 #26991 [Verbose] > │ let v115 : UH4 = UH4_1(v15, v114) │
00:08:06 #26992 [Verbose] > │ let v116 : UH4 = UH4_1(v14, v115) │
00:08:06 #26993 [Verbose] > │ let v117 : UH4 = UH4_1(v13, v116) │
00:08:06 #26994 [Verbose] > │ let v118 : UH4 = UH4_1(v12, v117) │
00:08:06 #26995 [Verbose] > │ let v119 : UH4 = UH4_1(v11, v118) │
00:08:06 #26996 [Verbose] > │ let v120 : UH4 = UH4_1(v10, v119) │
00:08:06 #26997 [Verbose] > │ let v121 : UH4 = UH4_1(v9, v120) │
00:08:06 #26998 [Verbose] > │ let v122 : UH4 = UH4_1(v8, v121) │
00:08:06 #26999 [Verbose] > │ let v123 : UH4 = UH4_1(v7, v122) │
00:08:06 #27000 [Verbose] > │ let v124 : UH4 = UH4_1(v6, v123) │
00:08:06 #27001 [Verbose] > │ let v125 : UH4 = UH4_1(v5, v124) │
00:08:06 #27002 [Verbose] > │ let v126 : UH4 = UH4_1(v3, v125) │
00:08:06 #27003 [Verbose] > │ UH4_1(v1, v126) │
00:08:06 #27004 [Verbose] > │ and closure143 (v0 : UH5) () : UH5 = │
00:08:06 #27005 [Verbose] > │ v0 │
00:08:06 #27006 [Verbose] > │ and method5 (v0 : UH1, v1 : UH5, v2 : int32) : struct (UH5 * int32) = │
00:08:06 #27007 [Verbose] > │ match v0 with │
00:08:06 #27008 [Verbose] > │ | UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *) │
00:08:06 #27009 [Verbose] > │ let v13 : int32 = v2 + 1 │
00:08:06 #27010 [Verbose] > │ let v14 : UH1 = v12 () │
00:08:06 #27011 [Verbose] > │ let v15 : (unit -> UH5) = closure143(v1) │
00:08:06 #27012 [Verbose] > │ let v16 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │
00:08:06 #27013 [Verbose] > │ method5(v14, v16, v13) │
00:08:06 #27014 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #27015 [Verbose] > │ struct (v1, v2) │
00:08:06 #27016 [Verbose] > │ and closure144 (v0 : UH5) () : UH5 = │
00:08:06 #27017 [Verbose] > │ v0 │
00:08:06 #27018 [Verbose] > │ and method6 (v0 : UH5, v1 : UH5) : UH5 = │
00:08:06 #27019 [Verbose] > │ match v0 with │
00:08:06 #27020 [Verbose] > │ | UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons │
00:08:06 #27021 [Verbose] > │ *) │
00:08:06 #27022 [Verbose] > │ let v13 : UH5 = v12 () │
00:08:06 #27023 [Verbose] > │ let v14 : (unit -> UH5) = closure144(v1) │
00:08:06 #27024 [Verbose] > │ let v15 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │
00:08:06 #27025 [Verbose] > │ method6(v13, v15) │
00:08:06 #27026 [Verbose] > │ | UH5_1 -> (* StreamNil *) │
00:08:06 #27027 [Verbose] > │ v1 │
00:08:06 #27028 [Verbose] > │ and closure145 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:08:06 #27029 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:08:06 #27030 [Verbose] > │ float * float) = │
00:08:06 #27031 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:08:06 #27032 [Verbose] > │ and method9 (v0 : int32, v1 : UH1) : US3 = │
00:08:06 #27033 [Verbose] > │ match v1 with │
00:08:06 #27034 [Verbose] > │ | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:08:06 #27035 [Verbose] > │ let v12 : bool = v0 <= 0 │
00:08:06 #27036 [Verbose] > │ if v12 then │
00:08:06 #27037 [Verbose] > │ US3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10) │
00:08:06 #27038 [Verbose] > │ else │
00:08:06 #27039 [Verbose] > │ let v14 : int32 = v0 - 1 │
00:08:06 #27040 [Verbose] > │ let v15 : UH1 = v11 () │
00:08:06 #27041 [Verbose] > │ method9(v14, v15) │
00:08:06 #27042 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:06 #27043 [Verbose] > │ US3_1 │
00:08:06 #27044 [Verbose] > │ and closure146 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │
00:08:06 #27045 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float * │
00:08:06 #27046 [Verbose] > │ float * float) = │
00:08:06 #27047 [Verbose] > │ struct (0.0, 0.0, 0.0) │
00:08:06 #27048 [Verbose] > │ and method8 (v0 : int32, v1 : UH1, v2 : UH4, v3 : UH6) : UH6 = │
00:08:06 #27049 [Verbose] > │ match v2 with │
00:08:06 #27050 [Verbose] > │ | UH4_1(v4, v5) -> (* Cons *) │
00:08:06 #27051 [Verbose] > │ let v6 : UH6 = method8(v0, v1, v5, v3) │
00:08:06 #27052 [Verbose] > │ let v55 : (struct (float * float * float * float * float * float * │
00:08:06 #27053 [Verbose] > │ float * float * float) -> struct (float * float * float)) = │
00:08:06 #27054 [Verbose] > │ match v4 with │
00:08:06 #27055 [Verbose] > │ | US1_0(v7, v8) -> (* ExternalForce *) │
00:08:06 #27056 [Verbose] > │ let v9 : bool = v0 = v7 │
00:08:06 #27057 [Verbose] > │ if v9 then │
00:08:06 #27058 [Verbose] > │ v8 │
00:08:06 #27059 [Verbose] > │ else │
00:08:06 #27060 [Verbose] > │ closure145() │
00:08:06 #27061 [Verbose] > │ | US1_1(v12, v13, v14) -> (* InternalForce *) │
00:08:06 #27062 [Verbose] > │ let v15 : bool = v0 = v12 │
00:08:06 #27063 [Verbose] > │ let v49 : US2 = │
00:08:06 #27064 [Verbose] > │ if v15 then │
00:08:06 #27065 [Verbose] > │ let v16 : US3 = method9(v13, v1) │
00:08:06 #27066 [Verbose] > │ match v16 with │
00:08:06 #27067 [Verbose] > │ | US3_1 -> (* None *) │
00:08:06 #27068 [Verbose] > │ US2_1 │
00:08:06 #27069 [Verbose] > │ | US3_0(v17, v18, v19, v20, v21, v22, v23, v24, v25) │
00:08:06 #27070 [Verbose] > │ -> (* Some *) │
00:08:06 #27071 [Verbose] > │ let v26 : (struct (float * float * float * float │
00:08:06 #27072 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float)) │
00:08:06 #27073 [Verbose] > │ = v14 struct (v17, v18, v19, v20, v21, v22, v23, v24, v25) │
00:08:06 #27074 [Verbose] > │ US2_0(v26) │
00:08:06 #27075 [Verbose] > │ else │
00:08:06 #27076 [Verbose] > │ let v31 : bool = v0 = v13 │
00:08:06 #27077 [Verbose] > │ if v31 then │
00:08:06 #27078 [Verbose] > │ let v32 : US3 = method9(v12, v1) │
00:08:06 #27079 [Verbose] > │ match v32 with │
00:08:06 #27080 [Verbose] > │ | US3_1 -> (* None *) │
00:08:06 #27081 [Verbose] > │ US2_1 │
00:08:06 #27082 [Verbose] > │ | US3_0(v33, v34, v35, v36, v37, v38, v39, v40, │
00:08:06 #27083 [Verbose] > │ v41) -> (* Some *) │
00:08:06 #27084 [Verbose] > │ let v42 : (struct (float * float * float * │
00:08:06 #27085 [Verbose] > │ float * float * float * float * float * float) -> struct (float * float * │
00:08:06 #27086 [Verbose] > │ float)) = v14 struct (v33, v34, v35, v36, v37, v38, v39, v40, v41) │
00:08:06 #27087 [Verbose] > │ US2_0(v42) │
00:08:06 #27088 [Verbose] > │ else │
00:08:06 #27089 [Verbose] > │ US2_1 │
00:08:06 #27090 [Verbose] > │ match v49 with │
00:08:06 #27091 [Verbose] > │ | US2_1 -> (* None *) │
00:08:06 #27092 [Verbose] > │ closure146() │
00:08:06 #27093 [Verbose] > │ | US2_0(v50) -> (* Some *) │
00:08:06 #27094 [Verbose] > │ v50 │
00:08:06 #27095 [Verbose] > │ UH6_1(v55, v6) │
00:08:06 #27096 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:08:06 #27097 [Verbose] > │ v3 │
00:08:06 #27098 [Verbose] > │ and method10 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │
00:08:06 #27099 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : UH6, v10 : UH7) : UH7 = │
00:08:06 #27100 [Verbose] > │ match v9 with │
00:08:06 #27101 [Verbose] > │ | UH6_1(v11, v12) -> (* Cons *) │
00:08:06 #27102 [Verbose] > │ let v13 : UH7 = method10(v0, v1, v2, v3, v4, v5, v6, v7, v8, v12, │
00:08:06 #27103 [Verbose] > │ v10) │
00:08:06 #27104 [Verbose] > │ let struct (v14 : float, v15 : float, v16 : float) = v11 struct (v0, │
00:08:06 #27105 [Verbose] > │ v1, v2, v3, v4, v5, v6, v7, v8) │
00:08:06 #27106 [Verbose] > │ UH7_1(v14, v15, v16, v13) │
00:08:06 #27107 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:08:06 #27108 [Verbose] > │ v10 │
00:08:06 #27109 [Verbose] > │ and method11 (v0 : UH7, v1 : float, v2 : float, v3 : float) : struct (float │
00:08:06 #27110 [Verbose] > │ * float * float) = │
00:08:06 #27111 [Verbose] > │ match v0 with │
00:08:06 #27112 [Verbose] > │ | UH7_1(v4, v5, v6, v7) -> (* Cons *) │
00:08:06 #27113 [Verbose] > │ let v8 : float = v1 + v4 │
00:08:06 #27114 [Verbose] > │ let v9 : float = v2 + v5 │
00:08:06 #27115 [Verbose] > │ let v10 : float = v3 + v6 │
00:08:06 #27116 [Verbose] > │ method11(v7, v8, v9, v10) │
00:08:06 #27117 [Verbose] > │ | UH7_0 -> (* Nil *) │
00:08:06 #27118 [Verbose] > │ struct (v1, v2, v3) │
00:08:06 #27119 [Verbose] > │ and closure147 (v0 : UH3) () : UH3 = │
00:08:06 #27120 [Verbose] > │ v0 │
00:08:06 #27121 [Verbose] > │ and method7 (v0 : UH4, v1 : UH1, v2 : UH5, v3 : UH3) : UH3 = │
00:08:06 #27122 [Verbose] > │ match v2 with │
00:08:06 #27123 [Verbose] > │ | UH5_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* │
00:08:06 #27124 [Verbose] > │ StreamCons *) │
00:08:06 #27125 [Verbose] > │ let v15 : UH5 = v14 () │
00:08:06 #27126 [Verbose] > │ let v16 : UH3 = method7(v0, v1, v15, v3) │
00:08:06 #27127 [Verbose] > │ let v17 : UH6 = UH6_0 │
00:08:06 #27128 [Verbose] > │ let v18 : UH6 = method8(v4, v1, v0, v17) │
00:08:06 #27129 [Verbose] > │ let v19 : UH7 = UH7_0 │
00:08:06 #27130 [Verbose] > │ let v20 : UH7 = method10(v5, v6, v7, v8, v9, v10, v11, v12, v13, │
00:08:06 #27131 [Verbose] > │ v18, v19) │
00:08:06 #27132 [Verbose] > │ let v21 : float = 0.0 │
00:08:06 #27133 [Verbose] > │ let v22 : float = 0.0 │
00:08:06 #27134 [Verbose] > │ let v23 : float = 0.0 │
00:08:06 #27135 [Verbose] > │ let struct (v24 : float, v25 : float, v26 : float) = method11(v20, │
00:08:06 #27136 [Verbose] > │ v21, v22, v23) │
00:08:06 #27137 [Verbose] > │ let v27 : float = v24 / v6 │
00:08:06 #27138 [Verbose] > │ let v28 : float = v25 / v6 │
00:08:06 #27139 [Verbose] > │ let v29 : float = v26 / v6 │
00:08:06 #27140 [Verbose] > │ let v30 : (unit -> UH3) = closure147(v16) │
00:08:06 #27141 [Verbose] > │ UH3_0(0.0, 0.0, v11, v12, v13, 1.0, v27, v28, v29, v30) │
00:08:06 #27142 [Verbose] > │ | UH5_1 -> (* StreamNil *) │
00:08:06 #27143 [Verbose] > │ v3 │
00:08:06 #27144 [Verbose] > │ and closure142 (v0 : UH4) (v1 : UH1) : UH3 = │
00:08:06 #27145 [Verbose] > │ let v2 : UH5 = UH5_1 │
00:08:06 #27146 [Verbose] > │ let v3 : int32 = 0 │
00:08:06 #27147 [Verbose] > │ let struct (v4 : UH5, v5 : int32) = method5(v1, v2, v3) │
00:08:06 #27148 [Verbose] > │ let v6 : UH5 = UH5_1 │
00:08:06 #27149 [Verbose] > │ let v7 : UH5 = method6(v4, v6) │
00:08:06 #27150 [Verbose] > │ let v8 : UH3 = UH3_1 │
00:08:06 #27151 [Verbose] > │ let v9 : UH3 = method7(v0, v1, v7, v8) │
00:08:06 #27152 [Verbose] > │ v9 │
00:08:06 #27153 [Verbose] > │ and closure148 (v0 : (UH1 -> UH1), v1 : UH1, v2 : UH1) () : UH8 = │
00:08:06 #27154 [Verbose] > │ let v3 : UH1 = v0 v2 │
00:08:06 #27155 [Verbose] > │ let v4 : (unit -> UH8) = closure148(v0, v1, v3) │
00:08:06 #27156 [Verbose] > │ UH8_0(v2, v4) │
00:08:06 #27157 [Verbose] > │ and method12 (v0 : float, v1 : UH8) : US4 = │
00:08:06 #27158 [Verbose] > │ match v1 with │
00:08:06 #27159 [Verbose] > │ | UH8_0(v2, v3) -> (* StreamCons *) │
00:08:06 #27160 [Verbose] > │ let v4 : bool = v0 <= 0.0 │
00:08:06 #27161 [Verbose] > │ if v4 then │
00:08:06 #27162 [Verbose] > │ US4_0(v2) │
00:08:06 #27163 [Verbose] > │ else │
00:08:06 #27164 [Verbose] > │ let v6 : float = v0 - 1.0 │
00:08:06 #27165 [Verbose] > │ let v7 : UH8 = v3 () │
00:08:06 #27166 [Verbose] > │ method12(v6, v7) │
00:08:06 #27167 [Verbose] > │ | UH8_1 -> (* StreamNil *) │
00:08:06 #27168 [Verbose] > │ US4_1 │
00:08:06 #27169 [Verbose] > │ and closure149 (v0 : UH9) () : UH9 = │
00:08:06 #27170 [Verbose] > │ v0 │
00:08:06 #27171 [Verbose] > │ and method13 (v0 : UH1, v1 : UH9) : UH9 = │
00:08:06 #27172 [Verbose] > │ match v0 with │
00:08:06 #27173 [Verbose] > │ | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *) │
00:08:06 #27174 [Verbose] > │ let v12 : UH1 = v11 () │
00:08:06 #27175 [Verbose] > │ let v13 : UH9 = method13(v12, v1) │
00:08:06 #27176 [Verbose] > │ let v14 : (unit -> UH9) = closure149(v13) │
00:08:07 #27177 [Verbose] > │ UH9_0(v4, v5, v6, v14) │
00:08:07 #27178 [Verbose] > │ | UH1_1 -> (* StreamNil *) │
00:08:07 #27179 [Verbose] > │ v1 │
00:08:07 #27180 [Verbose] > │ and method14 (v0 : UH9, v1 : UH7) : UH7 = │
00:08:07 #27181 [Verbose] > │ match v0 with │
00:08:07 #27182 [Verbose] > │ | UH9_0(v2, v3, v4, v5) -> (* StreamCons *) │
00:08:07 #27183 [Verbose] > │ let v6 : UH9 = v5 () │
00:08:07 #27184 [Verbose] > │ let v7 : UH7 = method14(v6, v1) │
00:08:07 #27185 [Verbose] > │ UH7_1(v2, v3, v4, v7) │
00:08:07 #27186 [Verbose] > │ | UH9_1 -> (* StreamNil *) │
00:08:07 #27187 [Verbose] > │ v1 │
00:08:07 #27188 [Verbose] > │ and method15 (v0 : UH7, v1 : UH7) : UH7 = │
00:08:07 #27189 [Verbose] > │ match v0 with │
00:08:07 #27190 [Verbose] > │ | UH7_1(v2, v3, v4, v5) -> (* Cons *) │
00:08:07 #27191 [Verbose] > │ let v6 : UH7 = method15(v5, v1) │
00:08:07 #27192 [Verbose] > │ UH7_1(v2, v3, v4, v6) │
00:08:07 #27193 [Verbose] > │ | UH7_0 -> (* Nil *) │
00:08:07 #27194 [Verbose] > │ v1 │
00:08:07 #27195 [Verbose] > │ and method16 (v0 : UH7, v1 : UH10) : UH10 = │
00:08:07 #27196 [Verbose] > │ match v0 with │
00:08:07 #27197 [Verbose] > │ | UH7_1(v2, v3, v4, v5) -> (* Cons *) │
00:08:07 #27198 [Verbose] > │ let v6 : UH10 = method16(v5, v1) │
00:08:07 #27199 [Verbose] > │ UH10_1(v2, v3, v6) │
00:08:07 #27200 [Verbose] > │ | UH7_0 -> (* Nil *) │
00:08:07 #27201 [Verbose] > │ v1 │
00:08:07 #27202 [Verbose] > │ and closure150 (v0 : UH11) () : UH11 = │
00:08:07 #27203 [Verbose] > │ v0 │
00:08:07 #27204 [Verbose] > │ and method17 (v0 : UH10, v1 : UH11) : UH11 = │
00:08:07 #27205 [Verbose] > │ match v0 with │
00:08:07 #27206 [Verbose] > │ | UH10_1(v2, v3, v4) -> (* Cons *) │
00:08:07 #27207 [Verbose] > │ let v5 : UH11 = method17(v4, v1) │
00:08:07 #27208 [Verbose] > │ let v6 : (unit -> UH11) = closure150(v5) │
00:08:07 #27209 [Verbose] > │ UH11_0(v2, v3, v6) │
00:08:07 #27210 [Verbose] > │ | UH10_0 -> (* Nil *) │
00:08:07 #27211 [Verbose] > │ v1 │
00:08:07 #27212 [Verbose] > │ and closure151 (v0 : UH0) () : UH0 = │
00:08:07 #27213 [Verbose] > │ v0 │
00:08:07 #27214 [Verbose] > │ and closure152 (v0 : UH0) () : UH0 = │
00:08:07 #27215 [Verbose] > │ v0 │
00:08:07 #27216 [Verbose] > │ and method18 (v0 : UH11) : struct (UH0 * UH0) = │
00:08:07 #27217 [Verbose] > │ match v0 with │
00:08:07 #27218 [Verbose] > │ | UH11_0(v1, v2, v3) -> (* StreamCons *) │
00:08:07 #27219 [Verbose] > │ let v4 : UH11 = v3 () │
00:08:07 #27220 [Verbose] > │ let struct (v5 : UH0, v6 : UH0) = method18(v4) │
00:08:07 #27221 [Verbose] > │ let v7 : (unit -> UH0) = closure151(v5) │
00:08:07 #27222 [Verbose] > │ let v8 : UH0 = UH0_0(v1, v7) │
00:08:07 #27223 [Verbose] > │ let v9 : (unit -> UH0) = closure152(v6) │
00:08:07 #27224 [Verbose] > │ let v10 : UH0 = UH0_0(v2, v9) │
00:08:07 #27225 [Verbose] > │ struct (v8, v10) │
00:08:07 #27226 [Verbose] > │ | UH11_1 -> (* StreamNil *) │
00:08:07 #27227 [Verbose] > │ let v11 : UH0 = UH0_1 │
00:08:07 #27228 [Verbose] > │ let v12 : UH0 = UH0_1 │
00:08:07 #27229 [Verbose] > │ struct (v11, v12) │
00:08:07 #27230 [Verbose] > │ and method19 (v0 : UH0, v1 : UH12) : UH12 = │
00:08:07 #27231 [Verbose] > │ match v0 with │
00:08:07 #27232 [Verbose] > │ | UH0_0(v2, v3) -> (* StreamCons *) │
00:08:07 #27233 [Verbose] > │ let v4 : UH0 = v3 () │
00:08:07 #27234 [Verbose] > │ let v5 : UH12 = method19(v4, v1) │
00:08:07 #27235 [Verbose] > │ UH12_1(v2, v5) │
00:08:07 #27236 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:08:07 #27237 [Verbose] > │ v1 │
00:08:07 #27238 [Verbose] > │ and method21 (v0 : UH12, v1 : int32) : int32 = │
00:08:07 #27239 [Verbose] > │ match v0 with │
00:08:07 #27240 [Verbose] > │ | UH12_1(v2, v3) -> (* Cons *) │
00:08:07 #27241 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:08:07 #27242 [Verbose] > │ method21(v3, v4) │
00:08:07 #27243 [Verbose] > │ | UH12_0 -> (* Nil *) │
00:08:07 #27244 [Verbose] > │ v1 │
00:08:07 #27245 [Verbose] > │ and method22 (v0 : (float []), v1 : UH12, v2 : int32) : int32 = │
00:08:07 #27246 [Verbose] > │ match v1 with │
00:08:07 #27247 [Verbose] > │ | UH12_1(v3, v4) -> (* Cons *) │
00:08:07 #27248 [Verbose] > │ v0.[int v2] <- v3 │
00:08:07 #27249 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:08:07 #27250 [Verbose] > │ method22(v0, v4, v5) │
00:08:07 #27251 [Verbose] > │ | UH12_0 -> (* Nil *) │
00:08:07 #27252 [Verbose] > │ v2 │
00:08:07 #27253 [Verbose] > │ and method20 (v0 : UH12) : (float []) = │
00:08:07 #27254 [Verbose] > │ let v1 : int32 = 0 │
00:08:07 #27255 [Verbose] > │ let v2 : int32 = method21(v0, v1) │
00:08:07 #27256 [Verbose] > │ let v3 : (float []) = Array.zeroCreate<float> (v2) │
00:08:07 #27257 [Verbose] > │ let v4 : int32 = 0 │
00:08:07 #27258 [Verbose] > │ let v5 : int32 = method22(v3, v0, v4) │
00:08:07 #27259 [Verbose] > │ v3 │
00:08:07 #27260 [Verbose] > │ and closure153 (v0 : UH2) () : UH2 = │
00:08:07 #27261 [Verbose] > │ v0 │
00:08:07 #27262 [Verbose] > │ and method1 (v0 : UH1, v1 : UH0, v2 : UH2) : UH2 = │
00:08:07 #27263 [Verbose] > │ match v1 with │
00:08:07 #27264 [Verbose] > │ | UH0_0(v3, v4) -> (* StreamCons *) │
00:08:07 #27265 [Verbose] > │ let v5 : UH0 = v4 () │
00:08:07 #27266 [Verbose] > │ let v6 : UH2 = method1(v0, v5, v2) │
00:08:07 #27267 [Verbose] > │ let v7 : ((UH1 -> UH3) -> (UH1 -> UH1)) = method2() │
00:08:07 #27268 [Verbose] > │ let v8 : UH4 = method4() │
00:08:07 #27269 [Verbose] > │ let v9 : (UH1 -> UH3) = closure142(v8) │
00:08:07 #27270 [Verbose] > │ let v10 : (UH1 -> UH1) = v7 v9 │
00:08:07 #27271 [Verbose] > │ let v11 : UH1 = v10 v0 │
00:08:07 #27272 [Verbose] > │ let v12 : (unit -> UH8) = closure148(v10, v0, v11) │
00:08:07 #27273 [Verbose] > │ let v13 : UH8 = UH8_0(v0, v12) │
00:08:07 #27274 [Verbose] > │ let v14 : US4 = method12(v3, v13) │
00:08:07 #27275 [Verbose] > │ let v18 : UH1 = │
00:08:07 #27276 [Verbose] > │ match v14 with │
00:08:07 #27277 [Verbose] > │ | US4_1 -> (* None *) │
00:08:07 #27278 [Verbose] > │ failwith<UH1> "Option does not have a value." │
00:08:07 #27279 [Verbose] > │ | US4_0(v15) -> (* Some *) │
00:08:07 #27280 [Verbose] > │ v15 │
00:08:07 #27281 [Verbose] > │ let v19 : UH9 = UH9_1 │
00:08:07 #27282 [Verbose] > │ let v20 : UH9 = method13(v18, v19) │
00:08:07 #27283 [Verbose] > │ let v21 : UH7 = UH7_0 │
00:08:07 #27284 [Verbose] > │ let v22 : UH7 = method14(v20, v21) │
00:08:07 #27285 [Verbose] > │ let v23 : float = 0.65 │
00:08:07 #27286 [Verbose] > │ let v24 : float = 0.0 │
00:08:07 #27287 [Verbose] > │ let v25 : float = 0.0 │
00:08:07 #27288 [Verbose] > │ let v26 : UH7 = UH7_0 │
00:08:07 #27289 [Verbose] > │ let v27 : UH7 = UH7_1(v23, v24, v25, v26) │
00:08:07 #27290 [Verbose] > │ let v28 : UH7 = method15(v22, v27) │
00:08:07 #27291 [Verbose] > │ let v29 : UH10 = UH10_0 │
00:08:07 #27292 [Verbose] > │ let v30 : UH10 = method16(v28, v29) │
00:08:07 #27293 [Verbose] > │ let v31 : UH11 = UH11_1 │
00:08:07 #27294 [Verbose] > │ let v32 : UH11 = method17(v30, v31) │
00:08:07 #27295 [Verbose] > │ let struct (v33 : UH0, v34 : UH0) = method18(v32) │
00:08:07 #27296 [Verbose] > │ let v35 : UH12 = UH12_0 │
00:08:07 #27297 [Verbose] > │ let v36 : UH12 = method19(v33, v35) │
00:08:07 #27298 [Verbose] > │ let v37 : float = 0.0 │
00:08:07 #27299 [Verbose] > │ let v38 : UH12 = UH12_1(v37, v36) │
00:08:07 #27300 [Verbose] > │ let v39 : (float []) = method20(v38) │
00:08:07 #27301 [Verbose] > │ let v40 : UH12 = UH12_0 │
00:08:07 #27302 [Verbose] > │ let v41 : UH12 = method19(v34, v40) │
00:08:07 #27303 [Verbose] > │ let v42 : float = 0.0 │
00:08:07 #27304 [Verbose] > │ let v43 : UH12 = UH12_1(v42, v41) │
00:08:07 #27305 [Verbose] > │ let v44 : (float []) = method20(v43) │
00:08:07 #27306 [Verbose] > │ let v45 : (unit -> UH2) = closure153(v6) │
00:08:07 #27307 [Verbose] > │ UH2_0(v39, v44, v45) │
00:08:07 #27308 [Verbose] > │ | UH0_1 -> (* StreamNil *) │
00:08:07 #27309 [Verbose] > │ v2 │
00:08:07 #27310 [Verbose] > │ and closure154 (v0 : UH13) () : UH13 = │
00:08:07 #27311 [Verbose] > │ v0 │
00:08:07 #27312 [Verbose] > │ and method23 (v0 : UH2, v1 : UH13, v2 : int32) : struct (UH13 * int32) = │
00:08:07 #27313 [Verbose] > │ match v0 with │
00:08:07 #27314 [Verbose] > │ | UH2_0(v3, v4, v5) -> (* StreamCons *) │
00:08:07 #27315 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:08:07 #27316 [Verbose] > │ let v7 : UH2 = v5 () │
00:08:07 #27317 [Verbose] > │ let v8 : (unit -> UH13) = closure154(v1) │
00:08:07 #27318 [Verbose] > │ let v9 : UH13 = UH13_0(v2, v3, v4, v8) │
00:08:07 #27319 [Verbose] > │ method23(v7, v9, v6) │
00:08:07 #27320 [Verbose] > │ | UH2_1 -> (* StreamNil *) │
00:08:07 #27321 [Verbose] > │ struct (v1, v2) │
00:08:07 #27322 [Verbose] > │ and closure155 (v0 : UH13) () : UH13 = │
00:08:07 #27323 [Verbose] > │ v0 │
00:08:07 #27324 [Verbose] > │ and method24 (v0 : UH13, v1 : UH13) : UH13 = │
00:08:07 #27325 [Verbose] > │ match v0 with │
00:08:07 #27326 [Verbose] > │ | UH13_0(v2, v3, v4, v5) -> (* StreamCons *) │
00:08:07 #27327 [Verbose] > │ let v6 : UH13 = v5 () │
00:08:07 #27328 [Verbose] > │ let v7 : (unit -> UH13) = closure155(v1) │
00:08:07 #27329 [Verbose] > │ let v8 : UH13 = UH13_0(v2, v3, v4, v7) │
00:08:07 #27330 [Verbose] > │ method24(v6, v8) │
00:08:07 #27331 [Verbose] > │ | UH13_1 -> (* StreamNil *) │
00:08:07 #27332 [Verbose] > │ v1 │
00:08:07 #27333 [Verbose] > │ and closure156 (v0 : UH14) () : UH14 = │
00:08:07 #27334 [Verbose] > │ v0 │
00:08:07 #27335 [Verbose] > │ and method25 (v0 : UH13, v1 : UH14) : UH14 = │
00:08:07 #27336 [Verbose] > │ match v0 with │
00:08:07 #27337 [Verbose] > │ | UH13_0(v2, v3, v4, v5) -> (* StreamCons *) │
00:08:07 #27338 [Verbose] > │ let v6 : UH13 = v5 () │
00:08:07 #27339 [Verbose] > │ let v7 : UH14 = method25(v6, v1) │
00:08:07 #27340 [Verbose] > │ let v8 : string = $"{v2}" │
00:08:07 #27341 [Verbose] > │ let v9 : (struct (string * (float []) * (float [])) []) = [|struct │
00:08:07 #27342 [Verbose] > │ (v8, v3, v4)|] │
00:08:07 #27343 [Verbose] > │ let v10 : string = "wave" │
00:08:07 #27344 [Verbose] > │ let v11 : string = "position (m)" │
00:08:07 #27345 [Verbose] > │ let v12 : string = "displacement (m)" │
00:08:07 #27346 [Verbose] > │ let v13 : (unit -> UH14) = closure156(v7) │
00:08:07 #27347 [Verbose] > │ UH14_0(v10, v11, v12, v9, v13) │
00:08:07 #27348 [Verbose] > │ | UH13_1 -> (* StreamNil *) │
00:08:07 #27349 [Verbose] > │ v1 │
00:08:07 #27350 [Verbose] > │ and method26 (v0 : UH14, v1 : UH15) : UH15 = │
00:08:07 #27351 [Verbose] > │ match v0 with │
00:08:07 #27352 [Verbose] > │ | UH14_0(v2, v3, v4, v5, v6) -> (* StreamCons *) │
00:08:07 #27353 [Verbose] > │ let v7 : UH14 = v6 () │
00:08:07 #27354 [Verbose] > │ let v8 : UH15 = method26(v7, v1) │
00:08:07 #27355 [Verbose] > │ UH15_1(v2, v3, v4, v5, v8) │
00:08:07 #27356 [Verbose] > │ | UH14_1 -> (* StreamNil *) │
00:08:07 #27357 [Verbose] > │ v1 │
00:08:07 #27358 [Verbose] > │ and method28 (v0 : UH15, v1 : int32) : int32 = │
00:08:07 #27359 [Verbose] > │ match v0 with │
00:08:07 #27360 [Verbose] > │ | UH15_1(v2, v3, v4, v5, v6) -> (* Cons *) │
00:08:07 #27361 [Verbose] > │ let v7 : int32 = v1 + 1 │
00:08:07 #27362 [Verbose] > │ method28(v6, v7) │
00:08:07 #27363 [Verbose] > │ | UH15_0 -> (* Nil *) │
00:08:07 #27364 [Verbose] > │ v1 │
00:08:07 #27365 [Verbose] > │ and method29 (v0 : (struct (string * string * string * (struct (string * │
00:08:07 #27366 [Verbose] > │ (float []) * (float [])) [])) []), v1 : UH15, v2 : int32) : int32 = │
00:08:07 #27367 [Verbose] > │ match v1 with │
00:08:07 #27368 [Verbose] > │ | UH15_1(v3, v4, v5, v6, v7) -> (* Cons *) │
00:08:07 #27369 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5, v6) │
00:08:07 #27370 [Verbose] > │ let v8 : int32 = v2 + 1 │
00:08:07 #27371 [Verbose] > │ method29(v0, v7, v8) │
00:08:07 #27372 [Verbose] > │ | UH15_0 -> (* Nil *) │
00:08:07 #27373 [Verbose] > │ v2 │
00:08:07 #27374 [Verbose] > │ and method27 (v0 : UH15) : (struct (string * string * string * (struct │
00:08:07 #27375 [Verbose] > │ (string * (float []) * (float [])) [])) []) = │
00:08:07 #27376 [Verbose] > │ let v1 : int32 = 0 │
00:08:07 #27377 [Verbose] > │ let v2 : int32 = method28(v0, v1) │
00:08:07 #27378 [Verbose] > │ let v3 : (struct (string * string * string * (struct (string * (float [ │
00:08:07 #27379 [Verbose] > │ ]) * (float [])) [])) []) = Array.zeroCreate<struct (string * string * │
00:08:07 #27380 [Verbose] > │ string * (struct (string * (float []) * (float [])) []))> (v2) │
00:08:07 #27381 [Verbose] > │ let v4 : int32 = 0 │
00:08:07 #27382 [Verbose] > │ let v5 : int32 = method29(v3, v0, v4) │
00:08:07 #27383 [Verbose] > │ v3 │
00:08:07 #27384 [Verbose] > │ and method0 () : (struct (string * string * string * (struct (string * │
00:08:07 #27385 [Verbose] > │ (float []) * (float [])) [])) []) = │
00:08:07 #27386 [Verbose] > │ let v0 : float = 0.0 │
00:08:07 #27387 [Verbose] > │ let v1 : (unit -> UH0) = closure0() │
00:08:07 #27388 [Verbose] > │ let v2 : UH0 = UH0_0(v0, v1) │
00:08:07 #27389 [Verbose] > │ let v3 : float = 0.0 │
00:08:07 #27390 [Verbose] > │ let v4 : float = 8.422578125E-06 │
00:08:07 #27391 [Verbose] > │ let v5 : float = 0.01 │
00:08:07 #27392 [Verbose] > │ let v6 : float = 0.0007224452478461068 │
00:08:07 #27393 [Verbose] > │ let v7 : float = 0.0 │
00:08:07 #27394 [Verbose] > │ let v8 : float = 0.0 │
00:08:07 #27395 [Verbose] > │ let v9 : float = 0.0 │
00:08:07 #27396 [Verbose] > │ let v10 : float = 0.0 │
00:08:07 #27397 [Verbose] > │ let v11 : float = 0.0 │
00:08:07 #27398 [Verbose] > │ let v12 : (unit -> UH1) = closure66() │
00:08:07 #27399 [Verbose] > │ let v13 : UH1 = UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) │
00:08:07 #27400 [Verbose] > │ let v14 : UH2 = UH2_1 │
00:08:07 #27401 [Verbose] > │ let v15 : UH2 = method1(v13, v2, v14) │
00:08:07 #27402 [Verbose] > │ let v16 : UH13 = UH13_1 │
00:08:07 #27403 [Verbose] > │ let v17 : int32 = 0 │
00:08:07 #27404 [Verbose] > │ let struct (v18 : UH13, v19 : int32) = method23(v15, v16, v17) │
00:08:07 #27405 [Verbose] > │ let v20 : UH13 = UH13_1 │
00:08:07 #27406 [Verbose] > │ let v21 : UH13 = method24(v18, v20) │
00:08:07 #27407 [Verbose] > │ let v22 : UH14 = UH14_1 │
00:08:07 #27408 [Verbose] > │ let v23 : UH14 = method25(v21, v22) │
00:08:07 #27409 [Verbose] > │ let v24 : UH15 = UH15_0 │
00:08:07 #27410 [Verbose] > │ let v25 : UH15 = method26(v23, v24) │
00:08:07 #27411 [Verbose] > │ method27(v25) │
00:08:07 #27412 [Verbose] > │ method0() │
00:08:07 #27413 [Verbose] > │ │
00:08:07 #27414 [Verbose] > │ │
00:08:07 #27415 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:08:07 #27416 [Verbose] >
00:08:07 #27417 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:08:07 #27418 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:08:07 #27419 [Verbose] > │ ## end │
00:08:07 #27420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:08:09 #27421 [Verbose] > [NbConvertApp] Converting notebook physics.dib.ipynb to html
00:08:09 #27422 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:08:09 #27423 [Verbose] > validate(nb)
00:08:10 #27424 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:08:10 #27425 [Verbose] > return _pygments_highlight(
00:08:15 #27426 [Verbose] > [NbConvertApp] Writing 2732433 bytes to physics.dib.html
00:08:16 #27427 [Debug] executeAsync / exitCode: 0 / output.Length: 576504
00:08:16 #27428 [Debug] main / executeCommand / exitCode: 0
00:08:18 #27429 [Debug] runWithTimeoutChildAsync / timeout: 2000
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: file_system.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: console.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: optionm'.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: math.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: common.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: testing.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: date_time.dib
00:00:00 #2 [Debug] writeDibCode / output: Spi / path: guid.dib
00:00:00 #5 [Debug] parseDibCode / output: Spi / file: console.dib
00:00:00 #6 [Debug] parseDibCode / output: Spi / file: optionm'.dib
00:00:00 #5 [Debug] parseDibCode / output: Spi / file: common.dib
00:00:00 #5 [Debug] parseDibCode / output: Spi / file: guid.dib
00:00:00 #7 [Debug] parseDibCode / output: Spi / file: file_system.dib
00:00:00 #9 [Debug] parseDibCode / output: Spi / file: testing.dib
00:00:00 #8 [Debug] parseDibCode / output: Spi / file: math.dib
00:00:00 #10 [Debug] parseDibCode / output: Spi / file: date_time.dib
00:00:00 #13 [Debug] writeDibCode / output: Spi / path: stream.dib
00:00:00 #14 [Debug] writeDibCode / output: Spi / path: seq.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: benchmark.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: listm'.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: am'.dib
00:00:00 #12 [Debug] writeDibCode / output: Spi / path: sm'.dib
00:00:00 #15 [Debug] parseDibCode / output: Spi / file: stream.dib
00:00:00 #16 [Debug] parseDibCode / output: Spi / file: seq.dib
00:00:00 #17 [Debug] parseDibCode / output: Spi / file: benchmark.dib
00:00:00 #18 [Debug] parseDibCode / output: Spi / file: listm'.dib
00:00:00 #19 [Debug] parseDibCode / output: Spi / file: am'.dib
00:00:00 #20 [Debug] parseDibCode / output: Spi / file: sm'.dib
00:00:00 #23 [Debug] writeDibCode / output: Spi / path: physics.dib
00:00:00 #23 [Debug] writeDibCode / output: Spi / path: rust.dib
00:00:00 #21 [Debug] writeDibCode / output: Spi / path: util.dib
00:00:00 #24 [Debug] parseDibCode / output: Spi / file: physics.dib
00:00:00 #25 [Debug] parseDibCode / output: Spi / file: rust.dib
00:00:00 #26 [Debug] parseDibCode / output: Spi / file: util.dib
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command =
"dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = Some <fun:main@438-47> }
00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\spiral
00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release
00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805
00:00:01 #11 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:01 #12 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #13 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #14 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # common\n\ninl array x = x\n\n// // ## prototype\n\nprototype (~:\u003E) r : forall t. t -\u003E r\nprototype append t : t -\u003E t -\u003E t\nprototype of_string t : string -\u003E t\nprototype to_string t : t -\u003E string\n\n// // ## null\n\ninl null forall t. () : t =\n $\u0022null |\u003E unbox\u003C\u0060t\u003E\u0022\n\n// // ## unativeint\n\nnominal unativeint = $\u0022unativeint\u0022\n\ninl unativeint forall t {int}. (n : t) : unativeint =\n $\u0022unativeint !n\u0022\n\n// // ## i32\n\ninl i32 forall t. (x : t) : i32 =\n $\u0022int32 !x\u0022\n\n// // ## i64\n\ninl i64 forall t. (x : t) : i64 =\n $\u0022int64 !x\u0022\n\n// // ## f32\n\ninl f32 forall t. (x : t) : f32 =\n $\u0022float32 !x\u0022\n\n// // ## f64\n\ninl f64 forall t. (x : t) : f64 =\n $\u0022float !x\u0022\n\n// // ## pair\n\ntype pair a b = $\u0022(\u0060a * \u0060b)\u0022\n\ninl pair x y =\n x, y\n\n// // ## new_pair\n\ninl new_pair forall a b. (a : a) (b : b) : pair a b =\n $\u0022!a, !b\u0022\n\n// // ## from_pair\n\ninl from_pair forall a b. (pair : pair a b) : a * b =\n $\u0022let (a, b) = !pair\u0022\n $\u0022a\u0022, $\u0022b\u0022\n\n// // ## memoize\n\nnominal lazy t = $\u0027Lazy\u003C\u0060t\u003E\u0027\n\ninl memoize forall t. (fn : () -\u003E t) : () -\u003E t =\n inl result : lazy t = $\u0027lazy !fn ()\u0027\n fun () =\u003E $\u0027!result.Value\u0027\n\n// // ## trace_level\n\nunion trace_level =\n | Verbose\n | Debug\n | Info\n | Warning\n | Critical\n\ninstance to_string trace_level = function\n | Verbose =\u003E \u0022Verbose\u0022\n | Debug =\u003E \u0022Debug\u0022\n | Info =\u003E \u0022Info\u0022\n | Warning =\u003E \u0022Warning\u0022\n | Critical =\u003E \u0022Critical\u0022\n\ninstance of_string trace_level = function\n | \u0022Verbose\u0022 =\u003E Verbose\n | \u0022Debug\u0022 =\u003E Debug\n | \u0022Info\u0022 =\u003E Info\n | \u0022Warning\u0022 =\u003E Warning\n | \u0022Critical\u0022 =\u003E Critical\n\n// // ## get_locals\n\ninl get_locals () = \u0022\u0022\n\n// // ## trace_state\n\ninl trace_state () =\n inl result =\n fun () =\u003E\n {\n enabled = mut true\n count = mut 0i64\n level = mut Debug\n dump = mut false\n }\n |\u003E memoize\n result ()\n\n// // ## test_trace_level\n\ninl test_trace_level level =\n inl state = trace_state ()\n inl level\u0027 = *state.level\n *state.enabled \u0026\u0026 $\u0027!level \u003E= !level\u0027 \u0027\n\n// // ## any\n\nnominal any = $\u0022obj\u0022\n\n// // ## to_any\n\ninl to_any forall t. (obj : t) : any =\n $\u0022!obj\u0022\n\ninstance (~:\u003E) any = to_any\n\n// // ## (/@)\n\ninl (/@) a b =\n b |\u003E append a\n\n// // ## unbox\n\ninl unbox forall t u. (x : t) : u =\n $\u0022!x |\u003E unbox\u003C\u0060u\u003E\u0022\n\n// // ## (\u002B.)\n\ninl (\u002B.) forall t. (a : t) (b : t) : t =\n $\u0022!a \u002B !b\u0022\n\n// // ## (-.)\n\ninl (-.) forall t. (a : t) (b : t) : t =\n $\u0022!a - !b\u0022\n\n// // ## (*.)\n\ninl (*.) forall t. (a : t) (b : t) : t =\n $\u0022!a * !b\u0022\n\n// // ## (/.)\n\ninl (/.) forall t. (a : t) (b : t) : t =\n $\u0022!a / !b\u0022\n\n// // ## (=.)\n\ninl (=.) forall t. (a : t) (b : t) : bool =\n $\u0022!a = !b\u0022\n\n// // ## (||\u003E)\n\ninl (||\u003E) (arg1, arg2) fn =\n arg2 |\u003E fn arg1\n\n// // ## flip\n\ninl flip fn a b =\n fn b a\n\n// // ## join_body\n\ninl join_body body acc x =\n if var_is x |\u003E not\n then body acc x\n else\n inl acc = dyn acc\n join body acc x\n\n// // ## join_body_unit\n\ninl join_body_unit body d x =\n if var_is d |\u003E not\n then body x\n else\n inl x = dyn x\n join body x\n\n// // ## run_target\n\nunion target_runtime =\n | Native\n | Fable\n | Wasm\n | Contract\n\nunion target =\n | Rust : target_runtime\n | Fsharp : target_runtime\n\ninl run_target forall t. (fn : target -\u003E (() -\u003E t)) : t =\n inl result : optionm\u0027.option\u0027 t = $\u0027None\u0027\n $\u0022let mutable _!result = !result\u0022\n $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 \\!WASM \u0026\u0026 \\!CONTRACT\u0022\n fn (Rust Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n fn (Rust Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 CONTRACT\u0022\n fn (Rust Contract) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if \\!FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n fn (Fsharp Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n fn (Fsharp Fable) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022#if \\!FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n fn (Fsharp Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n $\u0022#endif\u0022\n $\u0022|\u003E fun x -\u003E _!result \u003C- Some x\u0022\n $\u0022_!result |\u003E Option.get\u0022\n\n// // ## nameof\n\ninl nameof x : string =\n $\u0022nameof !x\u0022\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\n// // ## disposable\n\nnominal disposable = $\u0022System.IDisposable\u0022\n\n// // ## use_disposable\n\ninl use_disposable (disposable : disposable) : disposable =\n $\u0022use !disposable = !disposable\u0022 : ()\n $\u0022!disposable\u0022\n\n// // ## new_disposable\n\ninl new_disposable (fn : () -\u003E ()) : disposable =\n run_target function\n | Fsharp _ =\u003E fun () =\u003E $\u0027{ new System.IDisposable with member _.Dispose () = !fn () }\u0027\n // | Rust _ =\u003E\n // fun () =\u003E\n // $\u0027{ new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () \u0022!fn()\u0022 }\u0027\n | target =\u003E fun () =\u003E failwith $\u0027$\u0022new_disposable / target: {!target}\u0022\u0027\n\n// // ## exn\n\nnominal exn = $\u0022exn\u0022\n\n// // ## try\n\ninl try forall t. (fn : () -\u003E t) (ex_fn : exn -\u003E ()) : option t =\n inl none = None : option t\n inl some (s : t) = Some s\n $\u0027try !fn () |\u003E !some with ex -\u003E !ex_fn ex; !none \u0027\n\n// // ## sleep\n\ninl sleep (n : i32) : () =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E $\u0027System.Threading.Thread.Sleep\u0027 n\n | _ =\u003E fun () =\u003E ()\n\n// // ## retry_fn\n\ninl retry_fn forall t. retries (fn : () -\u003E t) : option t =\n let rec loop retry =\n try\n fun () =\u003E\n if retry \u003C retries\n then fn () |\u003E Some\n else None\n fun ex =\u003E\n let getLocals () = $\u0022retry: {retry} / ex: {ex |\u003E SpiralSm.format_exception} / {getLocals ()}\u0022\n // trace Warning (fun () =\u003E \u0022retry_fn\u0022) getLocals\n sleep 1\n |\u003E function\n | Some x =\u003E x\n | None =\u003E loop (retry \u002B 1)\n loop 0\n\n// // ## main\n\ninl main () =\n inl retry_fn (r : i32) (x : () -\u003E _) : optionm\u0027.option\u0027 () =\n retry_fn r x |\u003E optionm\u0027.box\n $\u0022let new_disposable x = !new_disposable x\u0022 : ()\n $\u0022let retry_fn x = !retry_fn x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result.Length:
00:00:02 #15 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result.Length:
00:00:02 #16 [Verbose] > Building c:\home\git\polyglot\lib\spiral\common.spi
00:00:02 #17 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:03 #18 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:04 #19 [Debug] buildFile / takeWhileInclusive / fsxContent: type [<Struct>] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [<Struct>] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [<Struct>] US2 =
| US2_0
| US2_1
and [<Struct>] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos... / errors: [] / typeErrorCount: 0
00:00:04 #20 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:04 #21 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:04 #22 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:04 #23 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:04 #24 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # date_time\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::DateTime\u003C$0\u003E\\\u0022)\u003E] type chrono_DateTime\u003C\u0027T\u003E = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Local\\\u0022)\u003E] type chrono_Local = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::NaiveDateTime\\\u0022)\u003E] type chrono_NaiveDateTime = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Utc\\\u0022)\u003E] type chrono_Utc = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::time::Duration\\\u0022)\u003E] type std_time_Duration = class end\u0022\n\nnominal timestamp = i64\nnominal duration = $\u0022std_time_Duration\u0022\nnominal date_time = $\u0022System.DateTime\u0022\nnominal date_time\u0027 t = $\u0022chrono_DateTime\u003C\u0060t\u003E\u0022\nnominal local = $\u0022chrono_Local\u0022\nnominal naive_date_time = $\u0022chrono_NaiveDateTime\u0022\nnominal utc = $\u0022chrono_Utc\u0022\n\n// // ## naive_utc\n\ninl naive_utc (date_time : date_time\u0027 utc) : naive_date_time =\n inl date_time = join date_time\n !\\($\u0027\u0022!date_time.naive_utc()\u0022\u0027)\n\n// // ## to_local\n\ninl to_local (date_time : date_time\u0027 utc) : date_time\u0027 local =\n inl naive_date_time = date_time |\u003E naive_utc\n !\\($\u0027\u0022chrono::offset::TimeZone::from_utc_datetime(\u0026chrono::Local, \u0026!naive_date_time)\u0022\u0027)\n\n// // ## from_timestamp\u0027\n\ninl from_timestamp\u0027 forall t {number; int}. (timestamp : t) : option (date_time\u0027 utc) =\n inl timestamp = join timestamp\n inl result : optionm\u0027.option\u0027 (date_time\u0027 utc) =\n !\\($\u0027\u0022chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)\u0022\u0027)\n result |\u003E optionm\u0027.unbox\n\n// // ## ticks\n\ninl ticks (date_time : date_time) : timestamp =\n date_time |\u003E $\u0027_.Ticks\u0027\n\n// // ## format\n\ninl format (format : string) (date_time : date_time) : string =\n $\u0027!date_time.ToString\u0027 format\n\n// // ## format_iso8601\n\ninl format_iso8601 (date_time : date_time) =\n date_time |\u003E format \u0022yyyy-MM-ddTHH-mm-ss.fff\u0022\n\n// // ## format\u0027\n\ninl format\u0027 (format : string) (date_time : date_time\u0027 utc) : sm\u0027.std_string =\n inl format = #format\n inl date_time = join date_time\n !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format\u0027\u0027\n\ninl format\u0027\u0027 (format : string) (date_time : date_time\u0027 _) : sm\u0027.std_string =\n inl format = #format\n inl date_time = join date_time\n !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format_timestamp\n\ninl format_timestamp (timestamp : sm\u0027.std_string) =\n inl timestamp = join timestamp\n timestamp\n |\u003E fun x =\u003E !\\($\u0027\u0022!x.parse().unwrap()\u0022\u0027) : i64\n |\u003E from_timestamp\u0027\n |\u003E optionm.map fun x =\u003E\n x\n |\u003E to_local\n |\u003E format\u0027\u0027 \u0022%Y-%m-%d %H:%M:%S\u0022\n |\u003E sm\u0027.from_std_string\n |\u003E resultm.from_option\n\n// // ## duration_from_millis\n\ninl duration_from_millis (ms : u64) : duration =\n inl ms = join ms\n !\\($\u0027\u0022std::time::Duration::from_millis(!ms)\u0022\u0027)\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\ntype timestamp_guid = guid.guid\ntype date_time_guid = guid.guid\n\n// // ## date_time_guid_from_date_time\n\ninl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =\n inl guid = guid |\u003E sm\u0027.obj_to_string\n inl prefix = $\u0027!date_time.ToString \u0022yyyyMMdd-HHmm-ssff-ffff-f\u0022\u0027 : string\n $\u0027\u0060date_time_guid $\u0022{!prefix}{!guid.[!prefix.Length..]}\u0022\u0027 : date_time_guid\n\n// // ## date_time_from_guid\n\ninl date_time_from_guid (date_time_guid : date_time_guid) =\n inl date_time_guid = date_time_guid |\u003E sm\u0027.obj_to_string\n inl sm\u0027_replace = join sm\u0027.replace\n run_target function\n | Fsharp =\u003E fun () =\u003E $\u0027System.DateTime.ParseExact (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022, \u0022yyyyMMddHHmmssfffffff\u0022, null)\u0027 : date_time\n | Rust _ =\u003E fun () =\u003E\n $\u0027System.DateTime.Parse (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022)\u0027 : date_time\n\n// // ## timestamp_guid_from_timestamp\n\ninl timestamp_guid_from_timestamp (guid : guid.guid) (timestamp : timestamp) : timestamp_guid =\n inl guid = guid |\u003E sm\u0027.obj_to_string\n inl timestamp = timestamp |\u003E sm\u0027.obj_to_string |\u003E sm\u0027.pad_left 18i32 \u00270\u0027\n $\u0027\u0060timestamp_guid $\u0022{!timestamp.[0..7]}-{!timestamp.[8..11]}-{!timestamp.[12..15]}-{!timestamp.[16..17]}{!guid.[21..]}\u0022\u0027\n\n// // ## timestamp_from_guid\n\ninl timestamp_from_guid (guid : date_time_guid) : timestamp =\n inl guid = guid |\u003E sm\u0027.obj_to_string\n $\u0027\u0060i64 $\u0022{!guid.[0..7]}{!guid.[9..12]}{!guid.[14..17]}{!guid.[19..20]}\u0022\u0027\n\n// // ## utc_now\n\ninl utc_now () : date_time =\n $\u0027System.DateTime.UtcNow\u0027\n\n// // ## time_span\n\nnominal time_span = $\u0027System.TimeSpan\u0027\n\n// // ## new_time_span\n\ninl new_time_span (a : date_time) (b : date_time) : time_span =\n $\u0027!b - !a \u0027\n\n// // ## total_seconds\n\ninl total_seconds (time_span : time_span) : f64 =\n time_span |\u003E $\u0027_.TotalSeconds\u0027\n\n// // ## new_guid_from_date_time\n\ninl new_guid_from_date_time (date_time : date_time) =\n inl guid = guid.new_raw_guid ()\n date_time_guid_from_date_time guid date_time\n\n// // ## new_guid_from_timestamp\n\ninl new_guid_from_timestamp (timestamp : timestamp) =\n inl guid = guid.new_raw_guid ()\n timestamp_guid_from_timestamp guid timestamp\n\n// // ## main\n\ninl main () =\n $\u0022let date_time_guid_from_date_time x = !date_time_guid_from_date_time x\u0022 : ()\n $\u0022let date_time_from_guid x = !date_time_from_guid x\u0022 : ()\n $\u0022let timestamp_guid_from_timestamp x = !timestamp_guid_from_timestamp x\u0022 : ()\n $\u0022let timestamp_from_guid x = !timestamp_from_guid x\u0022 : ()\n $\u0022let new_guid_from_date_time x = !new_guid_from_date_time x\u0022 : ()\n $\u0022let new_guid_from_timestamp x = !new_guid_from_timestamp x\u0022 : ()\n $\u0022let format x = !format x\u0022 : ()\n $\u0022let format_iso8601 x = !format_iso8601 x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result.Length:
00:00:04 #25 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result.Length:
00:00:04 #26 [Verbose] > Building c:\home\git\polyglot\lib\spiral\date_time.spi
00:00:04 #27 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (... / errors: [] / typeErrorCount: 0
00:00:04 #28 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:04 #29 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:04 #30 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:04 #31 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:04 #32 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # file_system\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::path::Path\\\u0022)\u003E] type std_path_Path = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::path::PathBuf\\\u0022)\u003E] type std_path_PathBuf = class end\u0022\n\ninl types () =\n global \u0022#if FABLE_COMPILER // file_system.types\u0022\n sm\u0027.types ()\n rust.types ()\n types ()\n global \u0022#endif // file_system.types\u0022\n\n// // ## path\n\nnominal path = $\u0027std_path_Path\u0027\nnominal path_buf = $\u0027std_path_PathBuf\u0027\n\n// // ## new_path_buf\n\ninl new_path_buf (path : string) : path_buf =\n inl path = path |\u003E sm\u0027.to_std_string\n !\\\\(path, $\u0027\u0022std::path::PathBuf::from($0)\u0022\u0027)\n\n// // ## path_buf_from\n\ninl path_buf_from (path : rust.box path) : path_buf =\n !\\\\(path, $\u0027\u0022std::path::PathBuf::from($0)\u0022\u0027)\n\n// // ## path_join\n\ninl path_join (s : string) (path_buf : path_buf) : path_buf =\n !\\\\((path_buf, s |\u003E sm\u0027.to_std_string), $\u0027\u0022$0.join($1)\u0022\u0027)\n\n// // ## path_display\n\ninl path_display (path : rust.ref\u0027 path) : sm\u0027.std_string =\n !\\\\(path, $\u0027\u0022$0.display().to_string()\u0022\u0027)\n\n// // ## path_buf_file_name\n\ninl path_buf_file_name (path : path_buf) : optionm\u0027.option\u0027 (rust.ref\u0027 sm\u0027.os_str) =\n !\\($\u0027\u0022!path.file_name()\u0022\u0027)\n\n// // ## path_buf_display\n\ninl path_buf_display (path : path_buf) : sm\u0027.std_string =\n !\\\\(path, $\u0027\u0022$0.display().to_string()\u0022\u0027)\n\n// // ## path_exists\n\ninl path_buf_exists (path_buf : path_buf) : bool =\n !\\($\u0027\u0022!path_buf.exists()\u0022\u0027)\n\n// // ## path_is_dir\n\ninl path_buf_is_dir (path_buf : path_buf) : bool =\n !\\($\u0027\u0022!path_buf.is_dir()\u0022\u0027)\n\n// // ## path_is_file\n\ninl path_buf_is_file (path_buf : path_buf) : bool =\n !\\($\u0027\u0022!path_buf.is_file()\u0022\u0027)\n\n// // ## path_parent\n\ninl path_buf_parent (path_buf : path_buf) : optionm\u0027.option\u0027 path_buf =\n !\\\\(path_buf, $\u0027\u0022$0.parent().map(std::path::PathBuf::from)\u0022\u0027)\n\n// // ## (\u003C /\u003E)\n\ninl (\u003C/\u003E) (a : string) (b : string) : string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n $\u0027System.IO.Path.Combine (!a, !b)\u0027\n | Rust (Native) =\u003E fun () =\u003E\n a |\u003E new_path_buf |\u003E path_join b |\u003E path_buf_display |\u003E sm\u0027.from_std_string\n | target =\u003E fun () =\u003E null ()\n\n// // ## get_temp_path\n\ninl get_temp_path () : string =\n $\u0027System.IO.Path.GetTempPath\u0027 ()\n\n// // ## create_temp_directory_name\n\ninl create_temp_directory_name () =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n inl root = $\u0027System.Reflection.Assembly.GetEntryAssembly().GetName().Name\u0027 : string\n\n get_temp_path ()\n \u003C/\u003E ($\u0027$\u0022\\!{!root}\u0022\u0027 : string)\n \u003C/\u003E (date_time.new_guid_from_date_time $\u0027System.DateTime.Now\u0027 |\u003E sm\u0027.obj_to_string)\n | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info\n\nnominal directory_info = $\u0027System.IO.DirectoryInfo\u0027\n\ninl directory_info (path : string) : directory_info =\n path |\u003E $\u0027\u0060directory_info \u0027\n\n// // ## directory_info_exists\n\ninl directory_info_exists (info : directory_info) : bool =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n $\u0027!info.Exists\u0027\n | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info_creation_time\n\ninl directory_info_creation_time (info : directory_info) : date_time.date_time =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n $\u0027!info.CreationTime\u0027\n | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info_name\n\ninl directory_info_name (info : directory_info) : string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n $\u0027!info.Name\u0027\n | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info_full_name\n\ninl directory_info_full_name (info : directory_info) : string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n $\u0027!info.FullName\u0027\n | target =\u003E fun () =\u003E null ()\n\n// // ## create_directory\n\ninl create_directory (path : string) : directory_info =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n path |\u003E $\u0027System.IO.Directory.CreateDirectory\u0027\n | target =\u003E fun () =\u003E null ()\n\n// // ## directory_exists\n\ninl directory_exists (path : string) : bool =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n path |\u003E $\u0027System.IO.Directory.Exists\u0027\n | Rust (Native) =\u003E fun () =\u003E\n inl path = path |\u003E new_path_buf\n (path |\u003E path_buf_exists) \u0026\u0026 (path |\u003E path_buf_is_dir)\n | target =\u003E fun () =\u003E null ()\n\n// // ## directory_get_parent\n\ninl directory_get_parent (path : string) : optionm\u0027.option\u0027 string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n inl parent : directory_info = path |\u003E $\u0027System.IO.Directory.GetParent\u0027\n if parent =. null ()\n then None\n else parent |\u003E directory_info_full_name |\u003E Some\n | Rust (Native) =\u003E fun () =\u003E\n path\n |\u003E new_path_buf\n |\u003E path_buf_parent\n |\u003E optionm\u0027.try\u0027\n |\u003E path_buf_display\n |\u003E sm\u0027.from_std_string\n |\u003E Some\n | target =\u003E fun () =\u003E null ()\n |\u003E optionm\u0027.box\n\n// // ## file_exists\n\ninl file_exists (path : string) : bool =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n path |\u003E $\u0027System.IO.File.Exists\u0027\n | Rust (Native) =\u003E fun () =\u003E\n inl path_buf = path |\u003E new_path_buf\n (path_buf |\u003E path_buf_exists) \u0026\u0026 (path_buf |\u003E path_buf_is_file)\n | target =\u003E fun () =\u003E null ()\n\n// // ## create_temp_directory\n\ninl create_temp_directory () =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E\n inl temp_folder = create_temp_directory_name ()\n inl result = temp_folder |\u003E create_directory\n\n inl exists\u0027 = result |\u003E directory_info_exists\n if not exists\u0027 then\n inl creation_time = result |\u003E directory_info_creation_time\n inl result = ($\u0027{| Exists = !exists\u0027; CreationTime = !creation_time |}\u0027 : any) |\u003E sm\u0027.format_debug\n inl get_locals () : string =\n $\u0027$\u0022temp_folder: {!temp_folder} / result: {!result} {!get_locals ()}\u0022\u0027\n // trace Debug (fun () =\u003E \u0022createTempDirectory\u0022) get_locals\n console.write_line ($\u0027$\u0022create_temp_directory / {!get_locals ()}\u0022\u0027 : string)\n\n temp_folder\n | target =\u003E fun () =\u003E null ()\n\n// // ## get_source_directory\n\ninl get_source_directory () =\n $\u0027__SOURCE_DIRECTORY__\u0027 : string\n\n// // ## find_parent\n\ninl find_parent name is_file root_dir =\n let rec loop dir =\n if dir \u003C/\u003E name |\u003E (if is_file then file_exists else directory_exists)\n then dir\n else\n match dir |\u003E (join directory_get_parent) |\u003E optionm\u0027.unbox with\n | Some parent =\u003E parent |\u003E loop\n | None =\u003E failwith $\u0027$\u0022\u0022\u0022No parent for {if !is_file then \u0022file\u0022 else \u0022dir\u0022} \\\u0027{!name}\\\u0027 at \\\u0027{!root_dir}\\\u0027\u0022\u0022\u0022\u0027\n loop root_dir\n\n// // ## main\n\ninl main () =\n types ()\n $\u0022let create_temp_directory_name () = !create_temp_directory_name ()\u0022 : ()\n $\u0022let create_temp_directory () = !create_temp_directory ()\u0022 : ()\n $\u0022let get_source_directory () = !get_source_directory ()\u0022 : ()\n $\u0022let find_parent x = !find_parent x\u0022 : ()\n inl combine x = (\u003C/\u003E) x\n $\u0022let (\u003C/\u003E) x = !combine x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result.Length:
00:00:04 #33 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result.Length:
00:00:04 #34 [Verbose] > Building c:\home\git\polyglot\lib\spiral\file_system.spi
00:00:04 #35 [Debug] buildFile / takeWhileInclusive / fsxContent: #if FABLE_COMPILER // file_system.types
[<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end
[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type base64_DecodeError = class end
[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type borsh_io_Error = class end
[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type js_sys_JsString = class end
[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type serde_json_Error = class end
[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type serde_json_Value = class end
[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type serde_wasm_bindgen_Error = class end
[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_O... / errors: [] / typeErrorCount: 0
00:00:04 #36 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:04 #37 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:04 #38 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:04 #39 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:05 #40 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # guid\n\n// // ## guid\n\nnominal guid = $\u0022System.Guid\u0022\n\n// // ## new_guid\n\ninl new_guid (x : string) : guid =\n $\u0027\u0060guid !x \u0027\n\n// // ## new_raw_guid\n\ninl new_raw_guid () : guid =\n $\u0022System.Guid.NewGuid ()\u0022\n\n// // ## main\n\ninl main () =\n $\u0022let new_guid x = !new_guid x\u0022 : ()\n $\u0022let new_raw_guid x = !new_raw_guid x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result.Length:
00:00:05 #41 [Verbose] > Building c:\home\git\polyglot\lib\spiral\guid.spi
00:00:05 #42 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result.Length:
00:00:05 #43 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure0 () (v0 : string) : System.Guid =
let v1 : System.Guid = System.Guid v0
v1
and closure1 () () : System.Guid =
let v0 : System.Guid = System.Guid.NewGuid ()
v0
let v0 : (string -> System.Guid) = closure0()
let new_guid x = v0 x
let v1 : (unit -> System.Guid) = closure1()
let new_raw_guid x = v1 x
()
/ errors: [] / typeErrorCount: 0
00:00:05 #44 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:05 #45 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:05 #46 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:05 #47 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:05 #48 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # sm\u0027\n\nopen rust_operators\n\n// // ## types\n\ninl types () =\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022str\\\u0022)\u003E] type Str = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022base64::DecodeError\\\u0022)\u003E] type base64_DecodeError = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022borsh::io::Error\\\u0022)\u003E] type borsh_io_Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022js_sys::JsString\\\u0022)\u003E] type js_sys_JsString = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_json::Error\\\u0022)\u003E] type serde_json_Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_json::Value\\\u0022)\u003E] type serde_json_Value = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_wasm_bindgen::Error\\\u0022)\u003E] type serde_wasm_bindgen_Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::ffi::OsStr\\\u0022)\u003E] type std_ffi_OsStr = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::ffi::OsString\\\u0022)\u003E] type std_ffi_OsString = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::str::Utf8Error\\\u0022)\u003E] type std_str_Utf8Error = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::string::String\\\u0022)\u003E] type std_string_String = class end\u0022\n\nnominal base64_decode_error = $\u0022base64_DecodeError\u0022\nnominal borsh_io_error = $\u0022borsh_io_Error\u0022\nnominal utf8_error = $\u0022std_str_Utf8Error\u0022\nnominal json_value = $\u0022serde_json_Value\u0022\nnominal json_error = $\u0022serde_json_Error\u0022\nnominal serde_wasm_bindgen_error = $\u0022serde_wasm_bindgen_Error\u0022\nnominal js_string = $\u0022js_sys_JsString\u0022\nnominal str = $\u0022Str\u0022\nnominal os_str = $\u0022std_ffi_OsStr\u0022\nnominal os_string = $\u0022std_ffi_OsString\u0022\nnominal std_string = $\u0022std_string_String\u0022\n\n// // ## contains\n\ninl contains (value : string) (s : string) : bool =\n $\u0022!s.Contains !value\u0022\n\n// // ## ends_with\n\ninl ends_with (value : string) (s : string) : bool =\n $\u0022!s.EndsWith !value\u0022\n\n// // ## pad_left\n\ninl pad_left (total_width : i32) (padding_char : char) (s : string) : string =\n $\u0022!s.PadLeft (!total_width, !padding_char)\u0022\n\n// // ## pad_right\n\ninl pad_right (pad : i32) (s : string) : string =\n $\u0022!s.PadRight !pad\u0022\n\n// // ## replace\n\ninl replace (old_value : string) (new_value : string) (s : string) : string =\n $\u0022!s.Replace (!old_value, !new_value)\u0022\n\n// // ## starts_with\n\ninl starts_with (value : string) (s : string) : bool =\n $\u0022!s.StartsWith !value\u0022\n\n// // ## substring\n\ninl substring (start : i32) (len : i32) (str : string) : string =\n $\u0022!str.Substring (!start, !len)\u0022\n\n// // ## to_lower\n\ninl to_lower (input : string) : string =\n $\u0022!input.ToLower ()\u0022\n\n// // ## to_upper\n\ninl to_upper (input : string) : string =\n $\u0022!input.ToUpper ()\u0022\n\n// // ## trim\n\ninl trim (input : string) : string =\n $\u0022!input.Trim ()\u0022\n\n// // ## trim_end\n\ninl trim_end (trim_chars : array_base char) (input : string) : string =\n $\u0022!input.TrimEnd !trim_chars\u0022\n\n// // ## trim_start\n\ninl trim_start (trim_chars : array_base char) (input : string) : string =\n $\u0022!input.TrimStart !trim_chars\u0022\n\n// // ## slice\n\ninl slice from to s : string =\n sm.slice s { from to }\n\n// // ## raw_string_literal\n\ninl raw_string_literal (s : string) : rust.ref\u0027 str =\n !\\($\u0022\\\u0022r#\\\\\\\u0022\\\u0022 \u002B !s \u002B \\\u0022\\\\\\\u0022#\\\u0022\u0022)\n\n// // ## raw_string_literal_static\n\ninl raw_string_literal_static (s : string) : rust.static_ref\u0027 str =\n !\\($\u0022\\\u0022r#\\\\\\\u0022\\\u0022 \u002B !s \u002B \\\u0022\\\\\\\u0022#\\\u0022\u0022)\n\n// // ## include_str\n\ninl include_str (path : string) : rust.ref\u0027 str =\n !\\($\u0027\u0022include_str\\!(\\\\\\\u0022\u0022 \u002B !path \u002B \u0022\\\\\\\u0022)\u0022\u0027)\n\n// // ## as_str\n\ninl as_str (s : string) : rust.ref\u0027 str =\n !\\\\(s, $\u0027\u0022fable_library_rust::String_::LrcStr::as_str(\u0026$0)\u0022\u0027)\n\n// // ## as_os_ref\n\ninl as_os_ref (s : os_string) : rust.ref\u0027 os_str =\n !\\\\(s, $\u0027\u0022$0.as_ref()\u0022\u0027)\n\n// // ## to_os_string\n\ninl to_os_string (s : rust.ref\u0027 os_str) : os_string =\n !\\\\(s, $\u0027\u0022$0.to_os_string()\u0022\u0027)\n\n// // ## os_to_str\n\ninl os_to_str (s : os_string) : optionm\u0027.option\u0027 (rust.ref\u0027 str) =\n !\\\\(s, $\u0027\u0022$0.to_str()\u0022\u0027)\n\n// // ## from_std_string\n\ninl from_std_string (str : std_string) : string =\n !\\\\(str, $\u0027\u0022fable_library_rust::String_::fromString($0)\u0022\u0027)\n\n// // ## ref_to_std_string\n\ninl ref_to_std_string (str : rust.ref\u0027 str) : std_string =\n !\\\\(str, $\u0027\u0022String::from($0)\u0022\u0027)\n\n// // ## to_std_string\n\ninl to_std_string (s : string) : std_string =\n inl s = join s\n s |\u003E as_str |\u003E ref_to_std_string\n\n// // ## as_str_std\n\ninl as_str_std (s : std_string) : rust.ref\u0027 str =\n inl s = join s\n !\\($\u0027\u0022!s.as_str()\u0022\u0027)\n\n// // ## into_boxed_str\n\ninl into_boxed_str (s : std_string) : rust.box str =\n !\\($\u0027\u0022!s.into_boxed_str()\u0022\u0027)\n\n// // ## format\u0027\n\ninl format\u0027 x : std_string =\n !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_debug\n\ninl format_debug x : string =\n $\u0027$\u0022%A{!x}\u0022\u0027\n\n// // ## format_debug\u0027\n\ninl format_debug\u0027 x : std_string =\n !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{:?}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_pretty\u0027\n\ninl format_pretty\u0027 x : std_string =\n !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{:#?}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_exception\n\ninl format_exception (ex : exn) : string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E $\u0027$\u0022{!ex.GetType ()}: {!ex.Message}\u0022\u0027\n | _ =\u003E fun () =\u003E ex |\u003E format_debug\n\n// // ## obj_to_string\n\ninl obj_to_string x : string =\n x |\u003E $\u0027_.ToString()\u0027\n\n// // ## to_string any\n\ninstance to_string any =\n obj_to_string\n\n// // ## to_string result t u\n\ninstance to_string result t u = fun x =\u003E\n real\n open rust\n typecase (t * u) with\n | string * string =\u003E\n match x with\n | Ok x =\u003E x\n | Error x =\u003E $\u0027\u0022Error: \u0022 \u002B !x \u002B \u0022\u0022\u0027 : string\n | std_string * std_string =\u003E\n match x with\n | Ok x =\u003E from_std_string x\n | Error x =\u003E $\u0027\u0022Error: \u0022 \u002B string !x \u002B \u0022\u0022\u0027 : string\n | _ =\u003E obj_to_string \u0060u x\n\n// // ## serialize\n\ninl serialize forall t. (x : t) : resultm.result\u0027 std_string json_error =\n !\\($\u0027\u0022serde_json::to_string(\u0026!x)\u0022\u0027)\n\n// // ## deserialize\n\ninl deserialize forall t. (json : string) : resultm.result\u0027 t std_string =\n inl json = join json\n inl json = json |\u003E as_str\n !\\($\u0027\u0022serde_json::from_str(\u0026!json)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : json_error) =\u003E x |\u003E format\u0027\n\n// // ## borsh_deserialize\n\ninl borsh_deserialize forall t. (data : array_base u8) : resultm.result\u0027 t std_string =\n inl data = data |\u003E am\u0027.as_slice\n !\\($\u0027\u0022let mut !data = !data\u0022\u0027)\n inl result = !\\($\u0027\u0022borsh::BorshDeserialize::deserialize(\u0026mut !data)\u0022\u0027)\n result\n |\u003E resultm.map_error\u0027 fun (x : borsh_io_error) =\u003E x |\u003E format\u0027\n\n// // ## deserialize_vec\n\ninl deserialize_vec (value : json_value) : resultm.result\u0027 (am\u0027.vec u8) std_string =\n inl value = join value\n !\\($\u0027\u0022serde_json::from_value(!value)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : json_error) =\u003E x |\u003E format\u0027\n\n// // ## encode_uri_component\n\ninl encode_uri_component (s : std_string) : js_string =\n !\\($\u0027\u0022js_sys::encode_uri_component(\u0026!s)\u0022\u0027)\n\n// // ## strip_prefix\n\ninl strip_prefix (prefix : char) (s : std_string) : optionm\u0027.option\u0027 (rust.ref\u0027 str) =\n inl s = join s\n !\\($\u0027\u0022!s.strip_prefix(!prefix)\u0022\u0027)\n\n// // ## base64_decode\n\ninl base64_decode (s : std_string) : result std_string std_string =\n fun () =\u003E\n inl s = join s\n inl bytes : resultm.result\u0027 (am\u0027.vec u8) base64_decode_error =\n !\\($\u0027\u0022base64::Engine::decode(\u0026base64::engine::general_purpose::STANDARD, !s)\u0022\u0027)\n inl bytes =\n bytes\n |\u003E resultm.map_error\u0027 format\u0027\n |\u003E resultm.try\u0027\n inl result : resultm.result\u0027 std_string utf8_error =\n !\\($\u0027\u0022std::str::from_utf8(\u0026!bytes).map(String::from)\u0022\u0027)\n result\n |\u003E resultm.map_error\u0027 format\u0027\n |\u003E fun x =\u003E\n join x ()\n |\u003E resultm.unbox\n\n// // ## concat_array_trailing\n\ninl concat_array_trailing (separator : string) (input : a i32 string) =\n (\u0022\u0022, input)\n ||\u003E am.fold fun acc (x : string) =\u003E\n $\u0027!acc \u002B !x \u002B !separator \u002B \u0022\u0022\u0027\n\n// // ## concat_list_trailing\n\ninl concat_list_trailing separator input =\n (\u0022\u0022, input)\n ||\u003E listm.fold fun acc (x : string) =\u003E\n $\u0027!acc \u002B !x \u002B !separator \u002B \u0022\u0022\u0027\n\n// // ## concat_list_heap_trailing\n\ninl concat_list_heap_trailing separator input =\n inl separator = join separator\n inl separator = separator |\u003E as_str\n (\u0022\u0022, input)\n ||\u003E listm.fold fun acc (x : string) =\u003E\n inl acc = acc |\u003E to_std_string\n inl x = x |\u003E as_str\n $\u0027$\u0022{!acc}{!x}{!separator}\u0022\u0027\n\n// // ## concat\n\ninl concat (a : string) (b : seq.seq\u0027 _) : string =\n $\u0022!b |\u003E String.concat !a\u0022\n\n// // ## ellipsis\n\ninl ellipsis (max : i32) (s : string) =\n if sm.length s \u003C= max\n then s\n else s |\u003E slice 0 (max - 1) |\u003E fun x =\u003E $\u0027!x \u002B \u0022...\u0022\u0027\n\n// // ## ellipsis_end\n\ninl ellipsis_end (max : i64) (s : string) =\n inl len = sm.length s\n if len \u003C= max\n then s\n else\n inl half = f64 max / 2\n inl start_half = half |\u003E math.ceil |\u003E i64\n inl end_half = half |\u003E math.floor |\u003E i64\n inl start = s |\u003E slice 0 (start_half - 1)\n inl end = s |\u003E slice (len - end_half) (len - 1)\n (a ;[start; \u0022...\u0022; end] : _ i32 _)\n |\u003E seq.of_array\n |\u003E concat \u0022\u0022\n\n// // ## format_ellipsis\n\ninl format_ellipsis s =\n s\n |\u003E format_debug\n |\u003E ellipsis_end 400\n\n// // ## split\n\ninl split (separator : string) (str : string) : array_base string =\n $\u0022!str.Split !separator\u0022\n\n// // ## split_string\n\ninl split_string (separator : array_base string) (str : string) : array_base string =\n run_target function\n | Fsharp (Native) =\u003E fun () =\u003E $\u0022!str.Split (!separator, System.StringSplitOptions.None)\u0022\n | _ =\u003E fun () =\u003E str |\u003E split ((a separator : _ i32 _) |\u003E seq.of_array |\u003E concat (join \u0022\u0022))\n\n// // ## join\u0027\n\ninl join\u0027 (concat : string) (s : a i32 string) : string =\n $\u0022System.String.Join (!concat, !s)\u0022\n\n// // ## to_char_array\n\ninl to_char_array (str : string) : a i32 char =\n am.init (str |\u003E sm.length) (fun i =\u003E sm.index str i)\n\n// // ## to_char_list\n\ninl to_char_list (str : string) : list char =\n listm.init (str |\u003E sm.length) (fun (i : i64) =\u003E sm.index str i)\n\n// // ## to_string std_string\n\nopen rust\ninstance to_string std_string = from_std_string\n\n// // ## main\n\ninl main () =\n $\u0022let contains x = !contains x\u0022 : ()\n $\u0022let ends_with x = !ends_with x\u0022 : ()\n $\u0022let pad_left x = !pad_left x\u0022 : ()\n $\u0022let pad_right x = !pad_right x\u0022 : ()\n $\u0022let replace x = !replace x\u0022 : ()\n inl slice (a : i32) (b : i32) c = slice a b c\n $\u0022let slice x = !slice x\u0022 : ()\n $\u0022let split x = !split x\u0022 : ()\n $\u0022let split_string x = !split_string x\u0022 : ()\n $\u0022let starts_with x = !starts_with x\u0022 : ()\n $\u0022let substring x = !substring x\u0022 : ()\n $\u0022let to_lower x = !to_lower x\u0022 : ()\n $\u0022let to_upper x = !to_upper x\u0022 : ()\n $\u0022let trim x = !trim x\u0022 : ()\n $\u0022let trim_end x = !trim_end x\u0022 : ()\n $\u0022let trim_start x = !trim_start x\u0022 : ()\n $\u0022let ellipsis x = !ellipsis x\u0022 : ()\n $\u0022let ellipsis_end x = !ellipsis_end x\u0022 : ()\n $\u0022let format_exception x = !format_exception x\u0022 : ()\n $\u0022let concat_array_trailing x = !concat_array_trailing x\u0022 : ()\n inl concat a (b : seq.seq\u0027 string) = concat a b\n $\u0022let concat x = !concat x\u0022 : ()\n $\u0022let join\u0027 x = !join\u0027 x\u0022 : ()\n $\u0022let to_char_array x = !to_char_array x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result.Length:
00:00:05 #49 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result.Length:
00:00:05 #50 [Verbose] > Building c:\home\git\polyglot\lib\spiral\sm'.spi
00:00:05 #51 [Debug] buildFile / takeWhileInclusive / fsxContent: type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri... / errors: [] / typeErrorCount: 0
00:00:05 #52 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:07 #53 [Debug] runWithTimeoutChildAsync / timeout: 2000
In [ ]:
{ . "$ScriptDir/../lib/math/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command =
"dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = Some <fun:main@438-47> }
00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\math
00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release
00:00:01 #6 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:01 #5 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:01 #8 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:02 #9 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:02 #10 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:02 #11 [Verbose] > Server bound to: http://localhost:13805
00:00:02 #12 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:06 #13 [Verbose] >
00:00:06 #14 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:07 #15 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:07 #16 [Verbose] > │ # math │
00:00:07 #17 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:07 #18 [Verbose] >
00:00:07 #19 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:07 #20 [Verbose] > open testing
00:00:07 #21 [Verbose] > open rust_operators
00:00:11 #22 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2157-5765-5aaba2ae88ed\main.spi
00:00:16 #23 [Verbose] >
00:00:16 #24 [Verbose] > ╭─[ 9.17s - stdout ]───────────────────────────────────────────────────────────╮
00:00:16 #25 [Verbose] > │ () │
00:00:16 #26 [Verbose] > │ │
00:00:16 #27 [Verbose] > │ │
00:00:16 #28 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #29 [Verbose] >
00:00:16 #30 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #31 [Verbose] > inl types () =
00:00:16 #32 [Verbose] > global "[[<Fable.Core.Erase;
00:00:16 #33 [Verbose] > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]] type num_complex_Complex<'T> =
00:00:16 #34 [Verbose] > class end"
00:00:16 #35 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::types::PyModule\")>]]
00:00:16 #36 [Verbose] > type pyo3_types_PyModule = class end"
00:00:16 #37 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Bound<$0>\")>]] type
00:00:16 #38 [Verbose] > pyo3_Bound<'T> = class end"
00:00:16 #39 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Python\")>]] type
00:00:16 #40 [Verbose] > pyo3_Python = class end"
00:00:16 #41 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyAny\")>]] type
00:00:16 #42 [Verbose] > pyo3_PyAny = class end"
00:00:16 #43 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyErr\")>]] type
00:00:16 #44 [Verbose] > pyo3_PyErr = class end"
00:00:16 #45 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2743-4319-432a4957e188\main.spi
00:00:16 #46 [Verbose] >
00:00:16 #47 [Verbose] > ╭─[ 330.32ms - stdout ]────────────────────────────────────────────────────────╮
00:00:16 #48 [Verbose] > │ () │
00:00:16 #49 [Verbose] > │ │
00:00:16 #50 [Verbose] > │ │
00:00:16 #51 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #52 [Verbose] >
00:00:16 #53 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #54 [Verbose] > inl types () =
00:00:16 #55 [Verbose] > rust.types ()
00:00:16 #56 [Verbose] > sm'.types ()
00:00:16 #57 [Verbose] > types ()
00:00:16 #58 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2775-7566-707d92298e45\main.spi
00:00:16 #59 [Verbose] >
00:00:16 #60 [Verbose] > ╭─[ 306.56ms - stdout ]────────────────────────────────────────────────────────╮
00:00:16 #61 [Verbose] > │ () │
00:00:16 #62 [Verbose] > │ │
00:00:16 #63 [Verbose] > │ │
00:00:16 #64 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #65 [Verbose] >
00:00:16 #66 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:16 #67 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:16 #68 [Verbose] > │ ## complex │
00:00:16 #69 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:16 #70 [Verbose] >
00:00:16 #71 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:16 #72 [Verbose] > nominal complex t = $"num_complex_Complex<`t>"
00:00:16 #73 [Verbose] > nominal bound t = $"pyo3_Bound<`t>"
00:00:16 #74 [Verbose] > nominal python = $"pyo3_Python"
00:00:16 #75 [Verbose] > nominal pymodule = $"pyo3_types_PyModule"
00:00:16 #76 [Verbose] > nominal pyany = $"pyo3_PyAny"
00:00:16 #77 [Verbose] > nominal pyerr = $"pyo3_PyErr"
00:00:16 #78 [Verbose] >
00:00:16 #79 [Verbose] > inl complex forall t. ((re : t), (im : t)) : complex t =
00:00:16 #80 [Verbose] > !\\((re, im), $'"num_complex::Complex::new($0, $1)"')
00:00:16 #81 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2807-0707-096a6b2e203f\main.spi
00:00:17 #82 [Verbose] >
00:00:17 #83 [Verbose] > ╭─[ 335.89ms - stdout ]────────────────────────────────────────────────────────╮
00:00:17 #84 [Verbose] > │ () │
00:00:17 #85 [Verbose] > │ │
00:00:17 #86 [Verbose] > │ │
00:00:17 #87 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #88 [Verbose] >
00:00:17 #89 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:17 #90 [Verbose] > // // test
00:00:17 #91 [Verbose] > // // rust=
00:00:17 #92 [Verbose] >
00:00:17 #93 [Verbose] > types ()
00:00:17 #94 [Verbose] >
00:00:17 #95 [Verbose] > complex (0f64, 0f64)
00:00:17 #96 [Verbose] > |> sm'.format'
00:00:17 #97 [Verbose] > |> sm'.from_std_string
00:00:17 #98 [Verbose] > |> _assert_eq "0+0i"
00:00:17 #99 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2841-4126-4cb7df0039dc\main.spi
00:00:25 #100 [Verbose] >
00:00:25 #101 [Verbose] > ╭─[ 8.18s - return value ]─────────────────────────────────────────────────────╮
00:00:25 #102 [Verbose] > │ .rs output: │
00:00:25 #103 [Verbose] > │ "0+0i" │
00:00:25 #104 [Verbose] > │ │
00:00:25 #105 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:25 #106 [Verbose] >
00:00:25 #107 [Verbose] > ╭─[ 8.20s - stdout ]───────────────────────────────────────────────────────────╮
00:00:25 #108 [Verbose] > │ │
00:00:25 #109 [Verbose] > │ .fsx: │
00:00:25 #110 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class │
00:00:25 #111 [Verbose] > │ end │
00:00:25 #112 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = │
00:00:25 #113 [Verbose] > │ class end │
00:00:25 #114 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end │
00:00:25 #115 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end │
00:00:25 #116 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end │
00:00:25 #117 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end │
00:00:25 #118 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = │
00:00:25 #119 [Verbose] > │ class end │
00:00:25 #120 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:00:25 #121 [Verbose] > │ class end │
00:00:25 #122 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end │
00:00:25 #123 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end │
00:00:25 #124 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:00:25 #125 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> = │
00:00:25 #126 [Verbose] > │ class end │
00:00:25 #127 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> = │
00:00:25 #128 [Verbose] > │ class end │
00:00:25 #129 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any = │
00:00:25 #130 [Verbose] > │ class end │
00:00:25 #131 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type │
00:00:25 #132 [Verbose] > │ std_cell_RefCell<'T> = class end │
00:00:25 #133 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type │
00:00:25 #134 [Verbose] > │ std_pin_Pin<'T> = class end │
00:00:25 #135 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T> │
00:00:25 #136 [Verbose] > │ = class end │
00:00:25 #137 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type │
00:00:25 #138 [Verbose] > │ std_rc_Weak<'T> = class end │
00:00:25 #139 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type │
00:00:25 #140 [Verbose] > │ std_sync_Arc<'T> = class end │
00:00:25 #141 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:00:25 #142 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type │
00:00:25 #143 [Verbose] > │ base64_DecodeError = class end │
00:00:25 #144 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type │
00:00:25 #145 [Verbose] > │ borsh_io_Error = class end │
00:00:25 #146 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type │
00:00:25 #147 [Verbose] > │ js_sys_JsString = class end │
00:00:25 #148 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type │
00:00:25 #149 [Verbose] > │ serde_json_Error = class end │
00:00:25 #150 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type │
00:00:25 #151 [Verbose] > │ serde_json_Value = class end │
00:00:25 #152 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type │
00:00:25 #153 [Verbose] > │ serde_wasm_bindgen_Error = class end │
00:00:25 #154 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr │
00:00:25 #155 [Verbose] > │ = class end │
00:00:25 #156 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type │
00:00:25 #157 [Verbose] > │ std_ffi_OsString = class end │
00:00:25 #158 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type │
00:00:25 #159 [Verbose] > │ std_str_Utf8Error = class end │
00:00:25 #160 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:00:25 #161 [Verbose] > │ std_string_String = class end │
00:00:25 #162 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type │
00:00:25 #163 [Verbose] > │ num_complex_Complex<'T> = class end │
00:00:25 #164 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type │
00:00:25 #165 [Verbose] > │ pyo3_types_PyModule = class end │
00:00:25 #166 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │
00:00:25 #167 [Verbose] > │ = class end │
00:00:25 #168 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python = │
00:00:25 #169 [Verbose] > │ class end │
00:00:25 #170 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │
00:00:25 #171 [Verbose] > │ end │
00:00:25 #172 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │
00:00:25 #173 [Verbose] > │ end │
00:00:25 #174 [Verbose] > │ let rec method1 (v0 : bool) : bool = │
00:00:25 #175 [Verbose] > │ v0 │
00:00:25 #176 [Verbose] > │ and method0 () : unit = │
00:00:25 #177 [Verbose] > │ let v0 : string = "num_complex::Complex::new($0, $1)" │
00:00:25 #178 [Verbose] > │ let v1 : num_complex_Complex<float> = │
00:00:25 #179 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v0 │
00:00:25 #180 [Verbose] > │ let v2 : string = @$"format!(""{{}}"", $0)" │
00:00:25 #181 [Verbose] > │ let v3 : std_string_String = Fable.Core.RustInterop.emitRustExpr v1 v2 │
00:00:25 #182 [Verbose] > │ let v4 : string = "fable_library_rust::String_::fromString($0)" │
00:00:25 #183 [Verbose] > │ let v5 : string = Fable.Core.RustInterop.emitRustExpr v3 v4 │
00:00:25 #184 [Verbose] > │ let v6 : string = $"%A{v5}" │
00:00:25 #185 [Verbose] > │ System.Console.WriteLine v6 │
00:00:25 #186 [Verbose] > │ let v8 : bool = v5 = "0+0i" │
00:00:25 #187 [Verbose] > │ let v10 : bool = │
00:00:25 #188 [Verbose] > │ if v8 then │
00:00:25 #189 [Verbose] > │ true │
00:00:25 #190 [Verbose] > │ else │
00:00:25 #191 [Verbose] > │ method1(v8) │
00:00:25 #192 [Verbose] > │ let v11 : string = "0+0i" │
00:00:25 #193 [Verbose] > │ let v12 : string = $"__expect / actual: %A{v5} / expected: %A{v11}" │
00:00:25 #194 [Verbose] > │ let v13 : bool = v10 = false │
00:00:25 #195 [Verbose] > │ if v13 then │
00:00:25 #196 [Verbose] > │ failwith<unit> v12 │
00:00:25 #197 [Verbose] > │ method0() │
00:00:25 #198 [Verbose] > │ │
00:00:25 #199 [Verbose] > │ │
00:00:25 #200 [Verbose] > │ .rs: │
00:00:25 #201 [Verbose] > │ #![allow(dead_code,)] │
00:00:25 #202 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:25 #203 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:25 #204 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:25 #205 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:25 #206 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:25 #207 [Verbose] > │ #![allow(unused_imports,)] │
00:00:25 #208 [Verbose] > │ #![allow(unused_macros,)] │
00:00:25 #209 [Verbose] > │ #![allow(unused_parens,)] │
00:00:25 #210 [Verbose] > │ #![allow(unused_variables,)] │
00:00:25 #211 [Verbose] > │ mod module_ccfa04bf { │
00:00:25 #212 [Verbose] > │ pub mod Spiral_eval { │
00:00:25 #213 [Verbose] > │ use super::*; │
00:00:25 #214 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:25 #215 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:00:25 #216 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:00:25 #217 [Verbose] > │ use fable_library_rust::String_::string; │
00:00:25 #218 [Verbose] > │ pub fn method1(v0: bool) -> bool { v0 } │
00:00:25 #219 [Verbose] > │ pub fn method0() { │
00:00:25 #220 [Verbose] > │ let v1: num_complex::Complex<f64> = │
00:00:25 #221 [Verbose] > │ num_complex::Complex::new(0.0_f64, 0.0_f64); │
00:00:25 #222 [Verbose] > │ let v3: std::string::String = format!("{}", v1); │
00:00:25 #223 [Verbose] > │ let v5: string = fable_library_rust::String_::fromString(v3); │
00:00:25 #224 [Verbose] > │ let v6: string = sprintf!("{:?}", v5.clone()); │
00:00:25 #225 [Verbose] > │ printfn!("{0}", v6); │
00:00:25 #226 [Verbose] > │ { │
00:00:25 #227 [Verbose] > │ let v8: bool = v5.clone() == string("0+0i"); │
00:00:25 #228 [Verbose] > │ if (if v8 { true } else { Spiral_eval::method1(v8) }) == │
00:00:25 #229 [Verbose] > │ false │
00:00:25 #230 [Verbose] > │ { │
00:00:25 #231 [Verbose] > │ panic!("{}", │
00:00:25 #232 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: │
00:00:25 #233 [Verbose] > │ {:?}", v5, string("0+0i"))); │
00:00:25 #234 [Verbose] > │ } │
00:00:25 #235 [Verbose] > │ } │
00:00:25 #236 [Verbose] > │ } │
00:00:25 #237 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:25 #238 [Verbose] > │ } │
00:00:25 #239 [Verbose] > │ } │
00:00:25 #240 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:25 #241 [Verbose] > │ │
00:00:25 #242 [Verbose] > │ │
00:00:25 #243 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:25 #244 [Verbose] >
00:00:25 #245 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 #246 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:25 #247 [Verbose] > │ ## complex_sin │
00:00:25 #248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:25 #249 [Verbose] >
00:00:25 #250 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 #251 [Verbose] > inl re forall t. (c : complex t) : t =
00:00:25 #252 [Verbose] > inl c = join c
00:00:25 #253 [Verbose] > !\($'"!c.re"')
00:00:25 #254 [Verbose] >
00:00:25 #255 [Verbose] > inl im forall t. (c : complex t) : t =
00:00:25 #256 [Verbose] > inl c = join c
00:00:25 #257 [Verbose] > !\($'"!c.im"')
00:00:25 #258 [Verbose] >
00:00:25 #259 [Verbose] > inl complex_unbox forall t. (c : complex t) =
00:00:25 #260 [Verbose] > re c, im c
00:00:25 #261 [Verbose] >
00:00:25 #262 [Verbose] > inl (~.^) c = complex c
00:00:25 #263 [Verbose] >
00:00:25 #264 [Verbose] > inl complex_eq forall t. (a : complex t) (b : complex t) : bool =
00:00:25 #265 [Verbose] > !\($'"!a == !b"')
00:00:25 #266 [Verbose] >
00:00:25 #267 [Verbose] > inl (.=) a b = complex_eq a b
00:00:25 #268 [Verbose] >
00:00:25 #269 [Verbose] > instance equable complex t = complex_eq
00:00:25 #270 [Verbose] >
00:00:25 #271 [Verbose] > inl complex_add forall t. (a : complex t) (b : complex t) : complex t =
00:00:25 #272 [Verbose] > !\($'"!a + !b"')
00:00:25 #273 [Verbose] >
00:00:25 #274 [Verbose] > inl (.+) a b = complex_add a b
00:00:25 #275 [Verbose] >
00:00:25 #276 [Verbose] > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t =
00:00:25 #277 [Verbose] > !\\((a, b), $'"$0 - $1"')
00:00:25 #278 [Verbose] >
00:00:25 #279 [Verbose] > inl (.-) a b = complex_sub a b
00:00:25 #280 [Verbose] >
00:00:25 #281 [Verbose] > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t =
00:00:25 #282 [Verbose] > !\\((a, b), $'"$0 * $1"')
00:00:25 #283 [Verbose] >
00:00:25 #284 [Verbose] > inl (.*) a b = complex_mult a b
00:00:25 #285 [Verbose] >
00:00:25 #286 [Verbose] > inl complex_div forall t. (a : complex t) (b : complex t) : complex t =
00:00:25 #287 [Verbose] > !\($'"!a / !b"')
00:00:25 #288 [Verbose] >
00:00:25 #289 [Verbose] > inl (./) a b = complex_div a b
00:00:25 #290 [Verbose] >
00:00:25 #291 [Verbose] > inl powc forall t. (s : complex t) (c : complex t) : complex t =
00:00:25 #292 [Verbose] > inl c = join c
00:00:25 #293 [Verbose] > inl s = join s
00:00:25 #294 [Verbose] > !\($'"num_complex::Complex::powc(!c, !s)"')
00:00:25 #295 [Verbose] >
00:00:25 #296 [Verbose] > inl (.**) a b = powc b a
00:00:25 #297 [Verbose] >
00:00:25 #298 [Verbose] > inl complex_sin forall t. (c : complex t) : complex t =
00:00:25 #299 [Verbose] > !\($'"!c.sin()"')
00:00:25 #300 [Verbose] >
00:00:25 #301 [Verbose] > inl conj forall t. (c : complex t) : complex t =
00:00:25 #302 [Verbose] > !\($'"!c.conj()"')
00:00:25 #303 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3672-7259-7b61cc2fae00\main.spi
00:00:25 #304 [Verbose] >
00:00:25 #305 [Verbose] > ╭─[ 474.27ms - stdout ]────────────────────────────────────────────────────────╮
00:00:25 #306 [Verbose] > │ () │
00:00:25 #307 [Verbose] > │ │
00:00:25 #308 [Verbose] > │ │
00:00:25 #309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:25 #310 [Verbose] >
00:00:25 #311 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:25 #312 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:25 #313 [Verbose] > │ ## zeta │
00:00:25 #314 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:25 #315 [Verbose] >
00:00:25 #316 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:25 #317 [Verbose] > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex
00:00:25 #318 [Verbose] > f64 =
00:00:25 #319 [Verbose] > inl rec zeta count gamma s =
00:00:25 #320 [Verbose] > if log then
00:00:25 #321 [Verbose] > !\\(s, $'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\", !count,
00:00:25 #322 [Verbose] > $0)"')
00:00:25 #323 [Verbose] > if re s > 1 then
00:00:25 #324 [Verbose] > (.^(0, 0), (am.init 10000i32 id : a i32 _))
00:00:25 #325 [Verbose] > ||> am.fold fun acc n =>
00:00:25 #326 [Verbose] > acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s))
00:00:25 #327 [Verbose] > else
00:00:25 #328 [Verbose] > inl gamma_term = gamma (.^(1, 0) .- s)
00:00:25 #329 [Verbose] > inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin
00:00:25 #330 [Verbose] > inl one_minus_s = .^(1 - re s, -(im s))
00:00:25 #331 [Verbose] > inl mirror_term =
00:00:25 #332 [Verbose] > if re one_minus_s <= 1
00:00:25 #333 [Verbose] > then .^(0, 0)
00:00:25 #334 [Verbose] > else
00:00:25 #335 [Verbose] > if count <= 3
00:00:25 #336 [Verbose] > then zeta (count + 1) gamma one_minus_s
00:00:25 #337 [Verbose] > else one_minus_s
00:00:25 #338 [Verbose] > inl reflection_formula =
00:00:25 #339 [Verbose] > .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .*
00:00:25 #340 [Verbose] > mirror_term
00:00:25 #341 [Verbose] > reflection_formula
00:00:25 #342 [Verbose] > join zeta 0i32 gamma s
00:00:26 #343 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3720-2096-27c982a2de1a\main.spi
00:00:26 #344 [Verbose] >
00:00:26 #345 [Verbose] > ╭─[ 350.03ms - stdout ]────────────────────────────────────────────────────────╮
00:00:26 #346 [Verbose] > │ () │
00:00:26 #347 [Verbose] > │ │
00:00:26 #348 [Verbose] > │ │
00:00:26 #349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #350 [Verbose] >
00:00:26 #351 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 #352 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:26 #353 [Verbose] > │ ## eval │
00:00:26 #354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #355 [Verbose] >
00:00:26 #356 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 #357 [Verbose] > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =
00:00:26 #358 [Verbose] > inl py = join py
00:00:26 #359 [Verbose] > inl code = code |> sm'.as_str
00:00:26 #360 [Verbose] > !\($'"pyo3::types::PyModule::from_code_bound(!py, !code, \\"\\", \\"\\")"')
00:00:26 #361 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:26 #362 [Verbose] >
00:00:26 #363 [Verbose] > inl use_pyanymethods () =
00:00:26 #364 [Verbose] > global "Fable.Core.RustInterop.emitRustExpr () \");\nuse
00:00:26 #365 [Verbose] > pyo3::prelude::PyAnyMethods;\n//\""
00:00:26 #366 [Verbose] >
00:00:26 #367 [Verbose] > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =
00:00:26 #368 [Verbose] > inl attr = join attr
00:00:26 #369 [Verbose] > inl attr = attr |> sm'.as_str
00:00:26 #370 [Verbose] > inl module = join module
00:00:26 #371 [Verbose] > use_pyanymethods ()
00:00:26 #372 [Verbose] > !\($'"!module.getattr(!attr)"')
00:00:26 #373 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:26 #374 [Verbose] >
00:00:26 #375 [Verbose] > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =
00:00:26 #376 [Verbose] > inl args = join args
00:00:26 #377 [Verbose] > inl module = join module
00:00:26 #378 [Verbose] > !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1),
00:00:26 #379 [Verbose] > None)"')
00:00:26 #380 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:26 #381 [Verbose] >
00:00:26 #382 [Verbose] > inl extract forall t. (result : bound pyany) : _ t _ =
00:00:26 #383 [Verbose] > inl result = join result
00:00:26 #384 [Verbose] > use_pyanymethods ()
00:00:26 #385 [Verbose] > !\($'"!result.extract()"')
00:00:26 #386 [Verbose] > |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'
00:00:26 #387 [Verbose] >
00:00:26 #388 [Verbose] > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string =
00:00:26 #389 [Verbose] > inl code =
00:00:26 #390 [Verbose] > code
00:00:26 #391 [Verbose] > |> module_from_code py
00:00:26 #392 [Verbose] > |> resultm.unwrap'
00:00:26 #393 [Verbose] > inl fn =
00:00:26 #394 [Verbose] > code
00:00:26 #395 [Verbose] > |> getattr "fn"
00:00:26 #396 [Verbose] > |> resultm.unwrap'
00:00:26 #397 [Verbose] >
00:00:26 #398 [Verbose] > fn
00:00:26 #399 [Verbose] > |> call args
00:00:26 #400 [Verbose] > |> resultm.try'
00:00:26 #401 [Verbose] > |> extract
00:00:26 #402 [Verbose] > |> resultm.try'
00:00:26 #403 [Verbose] > |> complex
00:00:26 #404 [Verbose] > |> Ok
00:00:26 #405 [Verbose] > |> resultm.box
00:00:26 #406 [Verbose] >
00:00:26 #407 [Verbose] > inl call1_ log py s code =
00:00:26 #408 [Verbose] > inl code = join (a code : _ i32 _) |> sm'.concat_array_trailing "\n"
00:00:26 #409 [Verbose] >
00:00:26 #410 [Verbose] > inl s = new_pair (re s) (im s)
00:00:26 #411 [Verbose] > inl args = new_pair log s
00:00:26 #412 [Verbose] >
00:00:26 #413 [Verbose] > eval py code args
00:00:26 #414 [Verbose] >
00:00:26 #415 [Verbose] > inl call1_ log name py s line =
00:00:26 #416 [Verbose] > inl s = join s
00:00:26 #417 [Verbose] > join
00:00:26 #418 [Verbose] > ;[[
00:00:26 #419 [Verbose] > $'$"import sys"'
00:00:26 #420 [Verbose] > $'$"import traceback"'
00:00:26 #421 [Verbose] > $'$"import re"'
00:00:26 #422 [Verbose] > $'$"count = 0"'
00:00:26 #423 [Verbose] > $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"'
00:00:26 #424 [Verbose] > $'$"def trace_calls(frame, event, arg):"'
00:00:26 #425 [Verbose] > $'$" global count"'
00:00:26 #426 [Verbose] > $'$" count += 1"'
00:00:26 #427 [Verbose] > $'$" if count < 200:"'
00:00:26 #428 [Verbose] > $'$" try:"'
00:00:26 #429 [Verbose] > $'$" args = {{ k: v for k, v in frame.f_locals.items() if
00:00:26 #430 [Verbose] > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not
00:00:26 #431 [Verbose] > callable(v) }}"'
00:00:26 #432 [Verbose] > $'$" args_str = \', \'.join([[
00:00:26 #433 [Verbose] > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k,
00:00:26 #434 [Verbose] > v in args.items() ]])"'
00:00:26 #435 [Verbose] > $'$" print(f\\\"{{event}}({!name}) / f_code.co_name:
00:00:26 #436 [Verbose] > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}}
00:00:26 #437 [Verbose] > / f_code.co_filename:
00:00:26 #438 [Verbose] > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno:
00:00:26 #439 [Verbose] > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }}
00:00:26 #440 [Verbose] > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else
00:00:26 #441 [Verbose] > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg:
00:00:26 #442 [Verbose] > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"'
00:00:26 #443 [Verbose] > $'$" except ValueError as e:"'
00:00:26 #444 [Verbose] > $'$" print(f\'{!name} / e: {{e}}\', flush=True)"'
00:00:26 #445 [Verbose] > $'$" return trace_calls"'
00:00:26 #446 [Verbose] > $'$"import mpmath"'
00:00:26 #447 [Verbose] > $'$"def fn(log, s):"'
00:00:26 #448 [Verbose] > $'$" global count"'
00:00:26 #449 [Verbose] > $'$" if log:"'
00:00:26 #450 [Verbose] > $'$" print(f\'{!name} / s: {{s}} / count: {{count}}\',
00:00:26 #451 [Verbose] > flush=True)"'
00:00:26 #452 [Verbose] > $'$" s = complex(*s)"'
00:00:26 #453 [Verbose] > $'$" try:"'
00:00:26 #454 [Verbose] > $'$" if log: sys.settrace(trace_calls)"'
00:00:26 #455 [Verbose] > line
00:00:26 #456 [Verbose] > $'$" if log:"'
00:00:26 #457 [Verbose] > $'$" sys.settrace(None)"'
00:00:26 #458 [Verbose] > $'$" print(f\'{!name} / result: {{s}} / count:
00:00:26 #459 [Verbose] > {{count}}\', flush=True)"'
00:00:26 #460 [Verbose] > $'$" except ValueError as e:"'
00:00:26 #461 [Verbose] > $'$" if s.real == 1:"'
00:00:26 #462 [Verbose] > $'$" s = complex(float(\'inf\'), 0)"'
00:00:26 #463 [Verbose] > $'$" return (s.real, s.imag)"'
00:00:26 #464 [Verbose] > ]]
00:00:26 #465 [Verbose] > |> call1_ log py s
00:00:26 #466 [Verbose] >
00:00:26 #467 [Verbose] > inl gamma_ log py s =
00:00:26 #468 [Verbose] > call1_ log "gamma_" py s $'$" s = mpmath.gamma(s)"'
00:00:26 #469 [Verbose] >
00:00:26 #470 [Verbose] > inl zeta_ log py s =
00:00:26 #471 [Verbose] > call1_ log "zeta_" py s $'$" s = mpmath.zeta(s)"'
00:00:26 #472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3761-6119-62b579f0dec3\main.spi
00:00:26 #473 [Verbose] >
00:00:26 #474 [Verbose] > ╭─[ 423.68ms - stdout ]────────────────────────────────────────────────────────╮
00:00:26 #475 [Verbose] > │ () │
00:00:26 #476 [Verbose] > │ │
00:00:26 #477 [Verbose] > │ │
00:00:26 #478 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #479 [Verbose] >
00:00:26 #480 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 #481 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:26 #482 [Verbose] > │ ## run_test │
00:00:26 #483 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #484 [Verbose] >
00:00:26 #485 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:26 #486 [Verbose] > inl run_test log closure_fix (fn : (complex f64 -> complex f64) * (complex f64
00:00:26 #487 [Verbose] > -> complex f64) -> ()) =
00:00:26 #488 [Verbose] > inl fn_ (py : python) : resultm.result' () pyerr =
00:00:26 #489 [Verbose] > inl nan () =
00:00:26 #490 [Verbose] > !\($'"f64::NAN"')
00:00:26 #491 [Verbose] > inl gamma__ = fun (s : complex f64) =>
00:00:26 #492 [Verbose] > inl result = gamma_ log py s
00:00:26 #493 [Verbose] > if log then
00:00:26 #494 [Verbose] > inl s = join s
00:00:26 #495 [Verbose] > !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s,
00:00:26 #496 [Verbose] > !result)"')
00:00:26 #497 [Verbose] > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:26 #498 [Verbose] > .^(nan (), nan ())
00:00:26 #499 [Verbose] > inl zeta__ = fun (s : complex f64) =>
00:00:26 #500 [Verbose] > inl result = zeta_ log py s
00:00:26 #501 [Verbose] >
00:00:26 #502 [Verbose] > inl z = zeta true gamma__ s
00:00:26 #503 [Verbose] >
00:00:26 #504 [Verbose] > if log then
00:00:26 #505 [Verbose] > inl s = join s
00:00:26 #506 [Verbose] > !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z:
00:00:26 #507 [Verbose] > {:?}\\\", !s, !result, !z)"')
00:00:26 #508 [Verbose] >
00:00:26 #509 [Verbose] > // re result - re x |> abs
00:00:26 #510 [Verbose] > // |> _assert_lt 0.001
00:00:26 #511 [Verbose] >
00:00:26 #512 [Verbose] > // im result - im x |> abs
00:00:26 #513 [Verbose] > // |> _assert_lt 0.001
00:00:26 #514 [Verbose] >
00:00:26 #515 [Verbose] > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value
00:00:26 #516 [Verbose] > .^(nan (), nan ())
00:00:26 #517 [Verbose] > join fn (zeta__, gamma__)
00:00:26 #518 [Verbose] >
00:00:26 #519 [Verbose] > Ok ()
00:00:26 #520 [Verbose] > |> resultm.box
00:00:26 #521 [Verbose] >
00:00:26 #522 [Verbose] > join
00:00:26 #523 [Verbose] > !\($'"pyo3::prepare_freethreaded_python()"') : ()
00:00:26 #524 [Verbose] >
00:00:26 #525 [Verbose] > !\($'"let __result = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()> {
00:00:26 #526 [Verbose] > //"')
00:00:26 #527 [Verbose] >
00:00:26 #528 [Verbose] > let x' = fn_ (!\($'"py"') : python)
00:00:26 #529 [Verbose] > inl x' = join x'
00:00:26 #530 [Verbose] >
00:00:26 #531 [Verbose] > inl closure_fix = 2u8, 1u8
00:00:26 #532 [Verbose] > x' |> rust.fix_closure closure_fix
00:00:26 #533 [Verbose] >
00:00:26 #534 [Verbose] > (!\($'"__result"') : _ () pyerr)
00:00:26 #535 [Verbose] > |> resultm.unwrap'
00:00:26 #536 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3800-0040-045d91fca3b4\main.spi
00:00:27 #537 [Verbose] >
00:00:27 #538 [Verbose] > ╭─[ 318.15ms - stdout ]────────────────────────────────────────────────────────╮
00:00:27 #539 [Verbose] > │ () │
00:00:27 #540 [Verbose] > │ │
00:00:27 #541 [Verbose] > │ │
00:00:27 #542 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #543 [Verbose] >
00:00:27 #544 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:27 #545 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:27 #546 [Verbose] > │ ## test_zeta_at_known_values_ │
00:00:27 #547 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #548 [Verbose] >
00:00:27 #549 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:27 #550 [Verbose] > inl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:00:27 #551 [Verbose] > ;[[
00:00:27 #552 [Verbose] > .^(2, 0), pi ** 2 / 6
00:00:27 #553 [Verbose] > .^(-1, 0), -1 / 12
00:00:27 #554 [Verbose] > ]]
00:00:27 #555 [Verbose] > |> fun x => a x : _ i32 _
00:00:27 #556 [Verbose] > |> am.iter fun s, e =>
00:00:27 #557 [Verbose] > inl result = zeta s
00:00:27 #558 [Verbose] >
00:00:27 #559 [Verbose] > result |> im |> _assert_eq 0
00:00:27 #560 [Verbose] > re result - e |> abs |> _assert_lt 0.0001
00:00:27 #561 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3832-3224-38e92513ed10\main.spi
00:00:27 #562 [Verbose] >
00:00:27 #563 [Verbose] > ╭─[ 306.70ms - stdout ]────────────────────────────────────────────────────────╮
00:00:27 #564 [Verbose] > │ () │
00:00:27 #565 [Verbose] > │ │
00:00:27 #566 [Verbose] > │ │
00:00:27 #567 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #568 [Verbose] >
00:00:27 #569 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:27 #570 [Verbose] > // // test
00:00:27 #571 [Verbose] > // // rust=
00:00:27 #572 [Verbose] > // // print_code=false
00:00:27 #573 [Verbose] >
00:00:27 #574 [Verbose] > types ()
00:00:27 #575 [Verbose] > test_zeta_at_known_values_ true
00:00:27 #576 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3863-6316-6c95e3efbce7\main.spi
00:00:41 #577 [Verbose] >
00:00:41 #578 [Verbose] > ╭─[ 13.75s - return value ]────────────────────────────────────────────────────╮
00:00:41 #579 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0 │
00:00:41 #580 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:41 #581 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:00:41 #582 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:41 #583 [Verbose] > │ / arg: None │
00:00:41 #584 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:41 #585 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:00:41 #586 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:41 #587 [Verbose] > │ / arg: None │
00:00:41 #588 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:00:41 #589 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:00:41 #590 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:41 #591 [Verbose] > │ / arg: None │
00:00:41 #592 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:00:41 #593 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #594 [Verbose] >
00:00:41 #595 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:41 #596 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:41 #597 [Verbose] > │ ## test_zeta_at_2_minus2 │
00:00:41 #598 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #599 [Verbose] >
00:00:41 #600 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:41 #601 [Verbose] > inl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =>
00:00:41 #602 [Verbose] > inl s = .^(2, -2)
00:00:41 #603 [Verbose] > inl result = zeta s
00:00:41 #604 [Verbose] >
00:00:41 #605 [Verbose] > (re result - 0.8673) |> abs |> _assert_lt 0.001
00:00:41 #606 [Verbose] > (im result - 0.2750) |> abs |> _assert_lt 0.001
00:00:41 #607 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-5240-4034-447a877a9f5b\main.spi
00:00:41 #608 [Verbose] >
00:00:41 #609 [Verbose] > ╭─[ 251.92ms - stdout ]────────────────────────────────────────────────────────╮
00:00:41 #610 [Verbose] > │ () │
00:00:41 #611 [Verbose] > │ │
00:00:41 #612 [Verbose] > │ │
00:00:41 #613 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:41 #614 [Verbose] >
00:00:41 #615 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:41 #616 [Verbose] > // // test
00:00:41 #617 [Verbose] > // // rust=
00:00:41 #618 [Verbose] > // // print_code=false
00:00:41 #619 [Verbose] >
00:00:41 #620 [Verbose] > types ()
00:00:41 #621 [Verbose] > test_zeta_at_2_minus2 true
00:00:41 #622 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-5265-6587-600564302e15\main.spi
00:00:50 #623 [Verbose] >
00:00:50 #624 [Verbose] > ╭─[ 9.26s - return value ]─────────────────────────────────────────────────────╮
00:00:50 #625 [Verbose] > │ zeta_ / s: (2.0, -2.0) / count: 0 │
00:00:50 #626 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0, │
00:00:50 #627 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:00:50 #628 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:50 #629 [Verbose] > │ / arg: None │
00:00:50 #630 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0, │
00:00:50 #631 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:00:50 #632 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:50 #633 [Verbose] > │ / arg: None │
00:00:50 #634 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0, │
00:00:50 #635 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:00:50 #636 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:00:50 #637 [Verbose] > │ / arg: None │
00:00:50 #638 [Verbose] > │ line(zeta_) / f_code.co_name: ... │
00:00:50 #639 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #640 [Verbose] >
00:00:50 #641 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:50 #642 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:50 #643 [Verbose] > │ ## test_trivial_zero_at_negative_even___ │
00:00:50 #644 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #645 [Verbose] >
00:00:50 #646 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 #647 [Verbose] > inl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun
00:00:50 #648 [Verbose] > zeta, gamma =>
00:00:50 #649 [Verbose] > (join listm'.init_series -2f64 -40 -2)
00:00:50 #650 [Verbose] > |> listm.iter fun n =>
00:00:50 #651 [Verbose] > inl s = .^(n, 0)
00:00:50 #652 [Verbose] > inl result = zeta s
00:00:50 #653 [Verbose] >
00:00:50 #654 [Verbose] > result |> re |> _assert_eq 0
00:00:50 #655 [Verbose] > result |> im |> _assert_eq 0
00:00:50 #656 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-0192-9256-957d3d040a31\main.spi
00:00:50 #657 [Verbose] >
00:00:50 #658 [Verbose] > ╭─[ 230.25ms - stdout ]────────────────────────────────────────────────────────╮
00:00:50 #659 [Verbose] > │ () │
00:00:50 #660 [Verbose] > │ │
00:00:50 #661 [Verbose] > │ │
00:00:50 #662 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:50 #663 [Verbose] >
00:00:50 #664 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:50 #665 [Verbose] > // // test
00:00:50 #666 [Verbose] > // // rust=
00:00:50 #667 [Verbose] > // // print_code=false
00:00:50 #668 [Verbose] >
00:00:50 #669 [Verbose] > types ()
00:00:50 #670 [Verbose] > test_trivial_zero_at_negative_even___ true
00:00:51 #671 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-0215-1574-13571280073c\main.spi
00:01:01 #672 [Verbose] >
00:01:01 #673 [Verbose] > ╭─[ 10.75s - return value ]────────────────────────────────────────────────────╮
00:01:01 #674 [Verbose] > │ zeta_ / s: (-2.0, 0.0) / count: 0 │
00:01:01 #675 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:01:01 #676 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:01 #677 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:01 #678 [Verbose] > │ / arg: None │
00:01:01 #679 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:01:01 #680 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:01 #681 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:01 #682 [Verbose] > │ / arg: None │
00:01:01 #683 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │
00:01:01 #684 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:01 #685 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:01 #686 [Verbose] > │ / arg: None │
00:01:01 #687 [Verbose] > │ line(zeta_) / f_code.co_nam... │
00:01:01 #688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #689 [Verbose] >
00:01:01 #690 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:01 #691 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:01 #692 [Verbose] > │ ## test_non_trivial_zero___ │
00:01:01 #693 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:01 #694 [Verbose] >
00:01:01 #695 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:01 #696 [Verbose] > inl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:01:01 #697 [Verbose] > ;[[
00:01:01 #698 [Verbose] > .^(0.5, 14.134725)
00:01:01 #699 [Verbose] > .^(0.5, 21.022040)
00:01:01 #700 [Verbose] > .^(0.5, 25.010857)
00:01:01 #701 [Verbose] > .^(0.5, 30.424876)
00:01:01 #702 [Verbose] > .^(0.5, 32.935062)
00:01:01 #703 [Verbose] > .^(0.5, 37.586178)
00:01:01 #704 [Verbose] > ]]
00:01:01 #705 [Verbose] > |> fun x => a x : _ i32 _
00:01:01 #706 [Verbose] > |> am.iter fun x =>
00:01:01 #707 [Verbose] > inl result = zeta x
00:01:01 #708 [Verbose] > result |> re |> abs |> _assert_lt 0.0001
00:01:01 #709 [Verbose] > result |> im |> abs |> _assert_lt 0.0001
00:01:01 #710 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-1295-9583-9d94697b5120\main.spi
00:01:02 #711 [Verbose] >
00:01:02 #712 [Verbose] > ╭─[ 282.93ms - stdout ]────────────────────────────────────────────────────────╮
00:01:02 #713 [Verbose] > │ () │
00:01:02 #714 [Verbose] > │ │
00:01:02 #715 [Verbose] > │ │
00:01:02 #716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:02 #717 [Verbose] >
00:01:02 #718 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:02 #719 [Verbose] > // // test
00:01:02 #720 [Verbose] > // // rust=
00:01:02 #721 [Verbose] > // // print_code=false
00:01:02 #722 [Verbose] >
00:01:02 #723 [Verbose] > types ()
00:01:02 #724 [Verbose] > test_non_trivial_zero___ true
00:01:02 #725 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-1324-2437-210d2c6f561d\main.spi
00:01:12 #726 [Verbose] >
00:01:12 #727 [Verbose] > ╭─[ 10.66s - return value ]────────────────────────────────────────────────────╮
00:01:12 #728 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0 │
00:01:12 #729 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:01:12 #730 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:12 #731 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:12 #732 [Verbose] > │ / arg: None │
00:01:12 #733 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:01:12 #734 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:12 #735 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:12 #736 [Verbose] > │ / arg: None │
00:01:12 #737 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:01:12 #738 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / │
00:01:12 #739 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 / │
00:01:12 #740 [Verbose] > │ f_back.f_code.co_filename: / arg: ... │
00:01:12 #741 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:12 #742 [Verbose] >
00:01:12 #743 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:12 #744 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:12 #745 [Verbose] > │ ## test_real_part_greater_than_one___ │
00:01:13 #746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #747 [Verbose] >
00:01:13 #748 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:13 #749 [Verbose] > inl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta,
00:01:13 #750 [Verbose] > gamma =>
00:01:13 #751 [Verbose] > inl points = ;[[2; 3; 4; 5; 10; 20; 50]]
00:01:13 #752 [Verbose] > (a points : _ i32 _)
00:01:13 #753 [Verbose] > |> am.iter fun point =>
00:01:13 #754 [Verbose] > inl s = .^(point, 0)
00:01:13 #755 [Verbose] > inl result = zeta s
00:01:13 #756 [Verbose] > result |> re |> _assert_gt 0
00:01:13 #757 [Verbose] > result |> im |> _assert_eq 0
00:01:13 #758 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-2428-2870-29d09ed7a4df\main.spi
00:01:13 #759 [Verbose] >
00:01:13 #760 [Verbose] > ╭─[ 383.62ms - stdout ]────────────────────────────────────────────────────────╮
00:01:13 #761 [Verbose] > │ () │
00:01:13 #762 [Verbose] > │ │
00:01:13 #763 [Verbose] > │ │
00:01:13 #764 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:13 #765 [Verbose] >
00:01:13 #766 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:13 #767 [Verbose] > // // test
00:01:13 #768 [Verbose] > // // rust=
00:01:13 #769 [Verbose] > // // print_code=false
00:01:13 #770 [Verbose] >
00:01:13 #771 [Verbose] > types ()
00:01:13 #772 [Verbose] > test_real_part_greater_than_one___ true
00:01:13 #773 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-2465-6563-6c85cc5693d8\main.spi
00:01:27 #774 [Verbose] >
00:01:27 #775 [Verbose] > ╭─[ 14.47s - return value ]────────────────────────────────────────────────────╮
00:01:27 #776 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0 │
00:01:27 #777 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:01:27 #778 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:27 #779 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:27 #780 [Verbose] > │ / arg: None │
00:01:27 #781 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:01:27 #782 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:27 #783 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:27 #784 [Verbose] > │ / arg: None │
00:01:27 #785 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:01:27 #786 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:27 #787 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:27 #788 [Verbose] > │ / arg: None │
00:01:27 #789 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:01:27 #790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #791 [Verbose] >
00:01:27 #792 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:27 #793 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:27 #794 [Verbose] > │ ## test_zeta_at_1___ │
00:01:27 #795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:27 #796 [Verbose] >
00:01:27 #797 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:27 #798 [Verbose] > inl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =>
00:01:27 #799 [Verbose] > inl s = .^(1, 0)
00:01:27 #800 [Verbose] > inl result = zeta s
00:01:27 #801 [Verbose] > result |> re |> _assert_eq limit.max
00:01:27 #802 [Verbose] > result |> im |> _assert_eq 0
00:01:28 #803 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-3915-1551-1e52bf4a2e4f\main.spi
00:01:28 #804 [Verbose] >
00:01:28 #805 [Verbose] > ╭─[ 229.93ms - stdout ]────────────────────────────────────────────────────────╮
00:01:28 #806 [Verbose] > │ () │
00:01:28 #807 [Verbose] > │ │
00:01:28 #808 [Verbose] > │ │
00:01:28 #809 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:28 #810 [Verbose] >
00:01:28 #811 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:28 #812 [Verbose] > // // test
00:01:28 #813 [Verbose] > // // rust=
00:01:28 #814 [Verbose] > // // print_code=false
00:01:28 #815 [Verbose] >
00:01:28 #816 [Verbose] > types ()
00:01:28 #817 [Verbose] > test_zeta_at_1___ true
00:01:28 #818 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-3938-3853-362c947815be\main.spi
00:01:38 #819 [Verbose] >
00:01:38 #820 [Verbose] > ╭─[ 10.76s - return value ]────────────────────────────────────────────────────╮
00:01:38 #821 [Verbose] > │ zeta_ / s: (1.0, 0.0) / count: 0 │
00:01:38 #822 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0, │
00:01:38 #823 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:38 #824 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:38 #825 [Verbose] > │ / arg: None │
00:01:38 #826 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0, │
00:01:38 #827 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:38 #828 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:38 #829 [Verbose] > │ / arg: None │
00:01:38 #830 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0, │
00:01:38 #831 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:38 #832 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:38 #833 [Verbose] > │ / arg: None │
00:01:38 #834 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:01:38 #835 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #836 [Verbose] >
00:01:38 #837 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #838 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #839 [Verbose] > │ ## test_symmetry_across_real_axis___ │
00:01:38 #840 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #841 [Verbose] >
00:01:38 #842 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #843 [Verbose] > inl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta,
00:01:38 #844 [Verbose] > gamma =>
00:01:38 #845 [Verbose] > inl s = .^(2, 10)
00:01:38 #846 [Verbose] > inl result_positive_im = zeta s
00:01:38 #847 [Verbose] > inl result_negative_im = zeta .^(re s, -(im s))
00:01:38 #848 [Verbose] > inl conj = result_negative_im |> conj
00:01:38 #849 [Verbose] > result_positive_im |> re |> _assert_eq (conj |> re)
00:01:38 #850 [Verbose] > result_positive_im |> im |> _assert_eq (conj |> im)
00:01:39 #851 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-5016-1684-153439a6e959\main.spi
00:01:39 #852 [Verbose] >
00:01:39 #853 [Verbose] > ╭─[ 212.79ms - stdout ]────────────────────────────────────────────────────────╮
00:01:39 #854 [Verbose] > │ () │
00:01:39 #855 [Verbose] > │ │
00:01:39 #856 [Verbose] > │ │
00:01:39 #857 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:39 #858 [Verbose] >
00:01:39 #859 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:39 #860 [Verbose] > // // test
00:01:39 #861 [Verbose] > // // rust=
00:01:39 #862 [Verbose] > // // print_code=false
00:01:39 #863 [Verbose] >
00:01:39 #864 [Verbose] > types ()
00:01:39 #865 [Verbose] > test_symmetry_across_real_axis___ true
00:01:39 #866 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-5038-3814-370614dded84\main.spi
00:01:49 #867 [Verbose] >
00:01:49 #868 [Verbose] > ╭─[ 10.45s - return value ]────────────────────────────────────────────────────╮
00:01:49 #869 [Verbose] > │ zeta_ / s: (2.0, 10.0) / count: 0 │
00:01:49 #870 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:01:49 #871 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:49 #872 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:49 #873 [Verbose] > │ / arg: None │
00:01:49 #874 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:01:49 #875 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:49 #876 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:49 #877 [Verbose] > │ / arg: None │
00:01:49 #878 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │
00:01:49 #879 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:01:49 #880 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:49 #881 [Verbose] > │ / arg: None │
00:01:49 #882 [Verbose] > │ line(zeta_) / f_code.co_nam... │
00:01:49 #883 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #884 [Verbose] >
00:01:49 #885 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:49 #886 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:49 #887 [Verbose] > │ ## test_behavior_near_origin___ │
00:01:49 #888 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #889 [Verbose] >
00:01:49 #890 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #891 [Verbose] > inl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma
00:01:49 #892 [Verbose] > =>
00:01:49 #893 [Verbose] > inl s = .^(0.01, 0.01)
00:01:49 #894 [Verbose] > inl result = zeta s
00:01:49 #895 [Verbose] > result |> re |> _assert_lt limit.max
00:01:49 #896 [Verbose] > result |> im |> _assert_lt limit.max
00:01:49 #897 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-0085-8521-877ae6c48b86\main.spi
00:01:49 #898 [Verbose] >
00:01:49 #899 [Verbose] > ╭─[ 221.40ms - stdout ]────────────────────────────────────────────────────────╮
00:01:49 #900 [Verbose] > │ () │
00:01:49 #901 [Verbose] > │ │
00:01:49 #902 [Verbose] > │ │
00:01:49 #903 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:49 #904 [Verbose] >
00:01:49 #905 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:49 #906 [Verbose] > // // test
00:01:49 #907 [Verbose] > // // rust=
00:01:49 #908 [Verbose] > // // print_code=false
00:01:49 #909 [Verbose] >
00:01:49 #910 [Verbose] > types ()
00:01:49 #911 [Verbose] > test_behavior_near_origin___ true
00:01:49 #912 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-0107-0746-0d0a430d6a2e\main.spi
00:01:59 #913 [Verbose] >
00:01:59 #914 [Verbose] > ╭─[ 9.60s - return value ]─────────────────────────────────────────────────────╮
00:01:59 #915 [Verbose] > │ zeta_ / s: (0.01, 0.01) / count: 0 │
00:01:59 #916 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1, │
00:01:59 #917 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:01:59 #918 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:59 #919 [Verbose] > │ / arg: None │
00:01:59 #920 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1, │
00:01:59 #921 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:01:59 #922 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:01:59 #923 [Verbose] > │ / arg: None │
00:01:59 #924 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1, │
00:01:59 #925 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / │
00:01:59 #926 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 / │
00:01:59 #927 [Verbose] > │ f_back.f_code.co_filename: / arg: None │
00:01:59 #928 [Verbose] > │ line(zeta_)... │
00:01:59 #929 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #930 [Verbose] >
00:01:59 #931 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:59 #932 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:59 #933 [Verbose] > │ ## test_imaginary_axis │
00:01:59 #934 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #935 [Verbose] >
00:01:59 #936 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #937 [Verbose] > inl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:01:59 #938 [Verbose] > (join a ;[[10; 20; 30; 40; 50; 60; 70; 80; 90; 100]] : _ i32 _)
00:01:59 #939 [Verbose] > |> am.iter fun s =>
00:01:59 #940 [Verbose] > inl s = .^(0, s)
00:01:59 #941 [Verbose] > inl result = zeta s
00:01:59 #942 [Verbose] > result |> re |> _assert_ne 0
00:01:59 #943 [Verbose] > result |> im |> _assert_ne 0
00:01:59 #944 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-1069-6936-6f6c6cd36d9f\main.spi
00:01:59 #945 [Verbose] >
00:01:59 #946 [Verbose] > ╭─[ 204.12ms - stdout ]────────────────────────────────────────────────────────╮
00:01:59 #947 [Verbose] > │ () │
00:01:59 #948 [Verbose] > │ │
00:01:59 #949 [Verbose] > │ │
00:01:59 #950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:59 #951 [Verbose] >
00:01:59 #952 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:59 #953 [Verbose] > // // test
00:01:59 #954 [Verbose] > // // rust=
00:01:59 #955 [Verbose] > // // print_code=false
00:01:59 #956 [Verbose] >
00:01:59 #957 [Verbose] > types ()
00:01:59 #958 [Verbose] > test_imaginary_axis true
00:01:59 #959 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-1089-8976-8e1885b8e5ae\main.spi
00:02:09 #960 [Verbose] >
00:02:09 #961 [Verbose] > ╭─[ 9.55s - return value ]─────────────────────────────────────────────────────╮
00:02:09 #962 [Verbose] > │ zeta_ / s: (0.0, 10.0) / count: 0 │
00:02:09 #963 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0, │
00:02:09 #964 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:02:09 #965 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:09 #966 [Verbose] > │ / arg: None │
00:02:09 #967 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0, │
00:02:09 #968 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:02:09 #969 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:09 #970 [Verbose] > │ / arg: None │
00:02:09 #971 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0, │
00:02:09 #972 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:02:09 #973 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:09 #974 [Verbose] > │ / arg: None │
00:02:09 #975 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_... │
00:02:09 #976 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #977 [Verbose] >
00:02:09 #978 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:09 #979 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:09 #980 [Verbose] > │ ## test_critical_strip │
00:02:09 #981 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #982 [Verbose] >
00:02:09 #983 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #984 [Verbose] > inl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:02:09 #985 [Verbose] > ;[[
00:02:09 #986 [Verbose] > .^(0.5, 14.134725)
00:02:09 #987 [Verbose] > .^(0.75, 20.5)
00:02:09 #988 [Verbose] > .^(1.25, 30.1)
00:02:09 #989 [Verbose] > .^(0.25, 40.0)
00:02:09 #990 [Verbose] > .^(1.0, 50.0)
00:02:09 #991 [Verbose] > ]]
00:02:09 #992 [Verbose] > |> fun x => a x : _ i32 _
00:02:09 #993 [Verbose] > |> am.iter fun s =>
00:02:09 #994 [Verbose] > inl result = zeta s
00:02:09 #995 [Verbose] > result |> re |> _assert_ne 0
00:02:09 #996 [Verbose] > result |> im |> _assert_ne 0
00:02:09 #997 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-2046-4626-42bd388a67ad\main.spi
00:02:09 #998 [Verbose] >
00:02:09 #999 [Verbose] > ╭─[ 237.51ms - stdout ]────────────────────────────────────────────────────────╮
00:02:09 #1000 [Verbose] > │ () │
00:02:09 #1001 [Verbose] > │ │
00:02:09 #1002 [Verbose] > │ │
00:02:09 #1003 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:09 #1004 [Verbose] >
00:02:09 #1005 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:09 #1006 [Verbose] > // // test
00:02:09 #1007 [Verbose] > // // rust=
00:02:09 #1008 [Verbose] > // // print_code=false
00:02:09 #1009 [Verbose] >
00:02:09 #1010 [Verbose] > types ()
00:02:09 #1011 [Verbose] > test_critical_strip true
00:02:09 #1012 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-2070-7023-7fb8713c2640\main.spi
00:02:19 #1013 [Verbose] >
00:02:19 #1014 [Verbose] > ╭─[ 10.41s - return value ]────────────────────────────────────────────────────╮
00:02:19 #1015 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0 │
00:02:19 #1016 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:02:19 #1017 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:02:19 #1018 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:19 #1019 [Verbose] > │ / arg: None │
00:02:19 #1020 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:02:19 #1021 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:02:19 #1022 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:19 #1023 [Verbose] > │ / arg: None │
00:02:19 #1024 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1, │
00:02:19 #1025 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / │
00:02:19 #1026 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 / │
00:02:19 #1027 [Verbose] > │ f_back.f_code.co_filename: / arg: ... │
00:02:19 #1028 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #1029 [Verbose] >
00:02:19 #1030 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:19 #1031 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:19 #1032 [Verbose] > │ ## test_reflection_formula_for_specific_value │
00:02:19 #1033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:19 #1034 [Verbose] >
00:02:19 #1035 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:19 #1036 [Verbose] > inl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun
00:02:19 #1037 [Verbose] > zeta, gamma =>
00:02:19 #1038 [Verbose] > ;[[
00:02:19 #1039 [Verbose] > .^(3, 4)
00:02:19 #1040 [Verbose] > .^(2.5, -3.5)
00:02:19 #1041 [Verbose] > .^(1.5, 2.5)
00:02:19 #1042 [Verbose] > .^(0.5, 14.134725)
00:02:19 #1043 [Verbose] > ]]
00:02:19 #1044 [Verbose] > |> fun x => a x : _ i32 _
00:02:19 #1045 [Verbose] > |> am.iter fun s =>
00:02:19 #1046 [Verbose] > inl lhs = zeta s
00:02:19 #1047 [Verbose] > inl reflection_coefficient =
00:02:19 #1048 [Verbose] > (.^(2, 0) .** s)
00:02:19 #1049 [Verbose] > .* (.^(pi, 0) .** (s .- .^(1, 0)))
00:02:19 #1050 [Verbose] > .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin)
00:02:19 #1051 [Verbose] > .* gamma (.^(1, 0) .- s)
00:02:19 #1052 [Verbose] >
00:02:19 #1053 [Verbose] > inl one_minus_s = .^(1 - re s, -(im s))
00:02:19 #1054 [Verbose] > inl rhs = reflection_coefficient .* zeta one_minus_s
00:02:19 #1055 [Verbose] >
00:02:19 #1056 [Verbose] > re lhs - re rhs |> abs |> _assert_lt 0.0001
00:02:19 #1057 [Verbose] > im lhs - im rhs |> abs |> _assert_lt 0.0001
00:02:20 #1058 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-3112-1278-12420b57c3e7\main.spi
00:02:20 #1059 [Verbose] >
00:02:20 #1060 [Verbose] > ╭─[ 244.81ms - stdout ]────────────────────────────────────────────────────────╮
00:02:20 #1061 [Verbose] > │ () │
00:02:20 #1062 [Verbose] > │ │
00:02:20 #1063 [Verbose] > │ │
00:02:20 #1064 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:20 #1065 [Verbose] >
00:02:20 #1066 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:20 #1067 [Verbose] > // // test
00:02:20 #1068 [Verbose] > // // rust=
00:02:20 #1069 [Verbose] > // // print_code=false
00:02:20 #1070 [Verbose] >
00:02:20 #1071 [Verbose] > types ()
00:02:20 #1072 [Verbose] > test_reflection_formula_for_specific_value true
00:02:20 #1073 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-3137-3738-31a619a43bfe\main.spi
00:02:30 #1074 [Verbose] >
00:02:30 #1075 [Verbose] > ╭─[ 10.65s - return value ]────────────────────────────────────────────────────╮
00:02:30 #1076 [Verbose] > │ zeta_ / s: (3.0, 4.0) / count: 0 │
00:02:30 #1077 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0, │
00:02:30 #1078 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:02:30 #1079 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:30 #1080 [Verbose] > │ / arg: None │
00:02:30 #1081 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0, │
00:02:30 #1082 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:02:30 #1083 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:30 #1084 [Verbose] > │ / arg: None │
00:02:30 #1085 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0, │
00:02:30 #1086 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:02:30 #1087 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:30 #1088 [Verbose] > │ / arg: None │
00:02:30 #1089 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:02:30 #1090 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #1091 [Verbose] >
00:02:30 #1092 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:30 #1093 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:30 #1094 [Verbose] > │ ## test_euler_product_formula │
00:02:30 #1095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:30 #1096 [Verbose] >
00:02:30 #1097 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:30 #1098 [Verbose] > inl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =>
00:02:30 #1099 [Verbose] > inl s_values = ;[[2; 2.5; 3; 3.5; 4; 4.5; 5]]
00:02:30 #1100 [Verbose] > inl primes = ;[[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53;
00:02:30 #1101 [Verbose] > 59; 61; 67; 71]]
00:02:30 #1102 [Verbose] > (a s_values : _ i32 _)
00:02:30 #1103 [Verbose] > |> am.iter fun s_re =>
00:02:30 #1104 [Verbose] > inl s = .^(s_re, 0)
00:02:30 #1105 [Verbose] > inl product =
00:02:30 #1106 [Verbose] > (1, (a primes : _ i32 _))
00:02:30 #1107 [Verbose] > ||> am.fold fun acc x =>
00:02:30 #1108 [Verbose] > acc * 1 / (1 - x ** -s_re)
00:02:30 #1109 [Verbose] >
00:02:30 #1110 [Verbose] > inl result = zeta s
00:02:30 #1111 [Verbose] > re result - product |> abs |> _assert_lt 0.01
00:02:30 #1112 [Verbose] > result |> im |> _assert_lt 0.01
00:02:30 #1113 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-4204-0441-053ca8f371c9\main.spi
00:02:31 #1114 [Verbose] >
00:02:31 #1115 [Verbose] > ╭─[ 284.30ms - stdout ]────────────────────────────────────────────────────────╮
00:02:31 #1116 [Verbose] > │ () │
00:02:31 #1117 [Verbose] > │ │
00:02:31 #1118 [Verbose] > │ │
00:02:31 #1119 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:31 #1120 [Verbose] >
00:02:31 #1121 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:31 #1122 [Verbose] > // // test
00:02:31 #1123 [Verbose] > // // rust=
00:02:31 #1124 [Verbose] > // // print_code=false
00:02:31 #1125 [Verbose] >
00:02:31 #1126 [Verbose] > types ()
00:02:31 #1127 [Verbose] > test_euler_product_formula true
00:02:31 #1128 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-4233-3301-341700e72dca\main.spi
00:02:41 #1129 [Verbose] >
00:02:41 #1130 [Verbose] > ╭─[ 10.37s - return value ]────────────────────────────────────────────────────╮
00:02:41 #1131 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0 │
00:02:41 #1132 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:02:41 #1133 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: │
00:02:41 #1134 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:41 #1135 [Verbose] > │ / arg: None │
00:02:41 #1136 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:02:41 #1137 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename: │
00:02:41 #1138 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:41 #1139 [Verbose] > │ / arg: None │
00:02:41 #1140 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0, │
00:02:41 #1141 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: │
00:02:41 #1142 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │
00:02:41 #1143 [Verbose] > │ / arg: None │
00:02:41 #1144 [Verbose] > │ line(zeta_) / f_code.co_name: z... │
00:02:41 #1145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:41 #1146 [Verbose] >
00:02:41 #1147 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:41 #1148 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:41 #1149 [Verbose] > │ ## graph │
00:02:41 #1150 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:41 #1151 [Verbose] >
00:02:41 #1152 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────
00:02:41 #1153 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:41 #1154 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white"> │
00:02:41 #1155 [Verbose] > │ <link rel="stylesheet" │
00:02:41 #1156 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │
00:02:41 #1157 [Verbose] > │ css"> │
00:02:41 #1158 [Verbose] > │ <div id="e6c46050c7e44890b17dcfe5122fb2ff"></div> │
00:02:41 #1159 [Verbose] > │ <script type="module"> │
00:02:41 #1160 [Verbose] > │ │
00:02:41 #1161 [Verbose] > │ import mermaid from │
00:02:41 #1162 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; │
00:02:41 #1163 [Verbose] > │ let renderTarget = │
00:02:41 #1164 [Verbose] > │ document.getElementById('e6c46050c7e44890b17dcfe5122fb2ff'); │
00:02:41 #1165 [Verbose] > │ try { │
00:02:41 #1166 [Verbose] > │ const {svg, bindFunctions} = await │
00:02:41 #1167 [Verbose] > │ mermaid.mermaidAPI.render( │
00:02:41 #1168 [Verbose] > │ 'mermaid_e6c46050c7e44890b17dcfe5122fb2ff', │
00:02:41 #1169 [Verbose] > │ `graph TD │
00:02:41 #1170 [Verbose] > │ zeta("zeta()") --> convert │
00:02:41 #1171 [Verbose] > │ zeta --> f["f()"] │
00:02:41 #1172 [Verbose] > │ f --> mpc_f["mpc_zeta()"] │
00:02:41 #1173 [Verbose] > │ f --> mpf_f["mpf_zeta()"] │
00:02:41 #1174 [Verbose] > │ convert --> from_float │
00:02:41 #1175 [Verbose] > │ from_float --> from_man_exp │
00:02:41 #1176 [Verbose] > │ from_man_exp --> python_bitcount │
00:02:41 #1177 [Verbose] > │ python_bitcount --> _normalize │
00:02:41 #1178 [Verbose] > │ _normalize --> make_mpc │
00:02:41 #1179 [Verbose] > │ make_mpc --> mpc_zeta["mpc_zeta()"] │
00:02:41 #1180 [Verbose] > │ mpc_zeta --> mpf_zeta["mpf_zeta()"] │
00:02:41 #1181 [Verbose] > │ mpf_zeta --> to_int │
00:02:41 #1182 [Verbose] > │ to_int --> mpf_zeta_int["mpf_zeta_int()"] │
00:02:41 #1183 [Verbose] > │ mpf_zeta_int --> borwein_coefficients │
00:02:41 #1184 [Verbose] > │ borwein_coefficients --> from_man_exp_2("from_man_exp()") │
00:02:41 #1185 [Verbose] > │ from_man_exp_2 --> python_bitcount_2("python_bitcount()") │
00:02:41 #1186 [Verbose] > │ python_bitcount_2 --> _normalize_2("_normalize()") │
00:02:41 #1187 [Verbose] > │ _normalize_2 --> make_mpc_2("make_mpc()") │
00:02:41 #1188 [Verbose] > │ make_mpc_2 --> stop_trace │
00:02:41 #1189 [Verbose] > │ mpf_zeta_int --> mpf_bernoulli │
00:02:41 #1190 [Verbose] > │ mpf_bernoulli --> bernoulli_size │
00:02:41 #1191 [Verbose] > │ bernoulli_size --> mpf_rdiv_int │
00:02:41 #1192 [Verbose] > │ mpf_rdiv_int --> python_bitcount_3("python_bitcount()") │
00:02:41 #1193 [Verbose] > │ python_bitcount_3 --> _normalize1 │
00:02:41 #1194 [Verbose] > │ _normalize1 --> from_man_exp_3("from_man_exp()") │
00:02:41 #1195 [Verbose] > │ from_man_exp_3 --> _normalize_3("_normalize()") │
00:02:41 #1196 [Verbose] > │ _normalize_3 --> mpf_sub │
00:02:41 #1197 [Verbose] > │ mpf_sub --> mpf_add │
00:02:41 #1198 [Verbose] > │ mpf_add --> mpf_neg │
00:02:41 #1199 [Verbose] > │ mpf_neg --> _normalize1_2("_normalize1()") │
00:02:41 #1200 [Verbose] > │ _normalize1_2 --> from_int │
00:02:41 #1201 [Verbose] > │ from_int --> mpf_div │
00:02:41 #1202 [Verbose] > │ mpf_div --> python_bitcount_4("python_bitcount()") │
00:02:41 #1203 [Verbose] > │ python_bitcount_4 --> _normalize1_3("_normalize1()") │
00:02:41 #1204 [Verbose] > │ _normalize1_3 --> make_mpc_3("make_mpc()") │
00:02:41 #1205 [Verbose] > │ make_mpc_3 --> final_stop["stop_trace()"]`); │
00:02:41 #1206 [Verbose] > │ renderTarget.innerHTML = svg; │
00:02:41 #1207 [Verbose] > │ bindFunctions?.(renderTarget); │
00:02:41 #1208 [Verbose] > │ } │
00:02:41 #1209 [Verbose] > │ catch (error) { │
00:02:41 #1210 [Verbose] > │ console.log(error); │
00:02:41 #1211 [Verbose] > │ } │
00:02:41 #1212 [Verbose] > │ </script> │
00:02:41 #1213 [Verbose] > │ </div> │
00:02:41 #1214 [Verbose] > │ │
00:02:41 #1215 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:41 #1216 [Verbose] >
00:02:41 #1217 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────
00:02:41 #1218 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:41 #1219 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white"> │
00:02:41 #1220 [Verbose] > │ <link rel="stylesheet" │
00:02:41 #1221 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │
00:02:41 #1222 [Verbose] > │ css"> │
00:02:41 #1223 [Verbose] > │ <div id="1b4bab40f05a4191925ad7dbf6f007fa"></div> │
00:02:41 #1224 [Verbose] > │ <script type="module"> │
00:02:41 #1225 [Verbose] > │ │
00:02:41 #1226 [Verbose] > │ import mermaid from │
00:02:41 #1227 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; │
00:02:41 #1228 [Verbose] > │ let renderTarget = │
00:02:41 #1229 [Verbose] > │ document.getElementById('1b4bab40f05a4191925ad7dbf6f007fa'); │
00:02:41 #1230 [Verbose] > │ try { │
00:02:41 #1231 [Verbose] > │ const {svg, bindFunctions} = await │
00:02:41 #1232 [Verbose] > │ mermaid.mermaidAPI.render( │
00:02:41 #1233 [Verbose] > │ 'mermaid_1b4bab40f05a4191925ad7dbf6f007fa', │
00:02:41 #1234 [Verbose] > │ `graph TD │
00:02:41 #1235 [Verbose] > │ zeta_rust("zeta() - Rust") --> num_traits("num-traits") │
00:02:41 #1236 [Verbose] > │ zeta_rust --> num_bigint("num-bigint") │
00:02:41 #1237 [Verbose] > │ zeta_rust --> rust_decimal("rust_decimal for precision") │
00:02:41 #1238 [Verbose] > │ zeta_rust --> error_handling("Rust Error Handling") │
00:02:41 #1239 [Verbose] > │ │
00:02:41 #1240 [Verbose] > │ num_traits --> num_traits_usage("Use for common traits") │
00:02:41 #1241 [Verbose] > │ num_bigint --> bigint_operations("Arbitrary-precision arithmetic │
00:02:41 #1242 [Verbose] > │ operations") │
00:02:41 #1243 [Verbose] > │ rust_decimal --> decimal_operations("High-precision decimal operations") │
00:02:41 #1244 [Verbose] > │ error_handling --> result_type("Use Result<T, E> for error handling") │
00:02:41 #1245 [Verbose] > │ │
00:02:41 #1246 [Verbose] > │ bigint_operations --> convert_rust("convert() - Rust") │
00:02:41 #1247 [Verbose] > │ bigint_operations --> normalize_rust("_normalize() - Rust") │
00:02:41 #1248 [Verbose] > │ │
00:02:41 #1249 [Verbose] > │ convert_rust --> from_float_rust("from_float() - Rust") │
00:02:41 #1250 [Verbose] > │ from_float_rust --> from_man_exp_rust("from_man_exp() - Rust") │
00:02:41 #1251 [Verbose] > │ from_man_exp_rust --> bitcount_rust("bitcount() - Rust") │
00:02:41 #1252 [Verbose] > │ bitcount_rust --> normalize_rust │
00:02:41 #1253 [Verbose] > │ normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust") │
00:02:41 #1254 [Verbose] > │ mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust") │
00:02:41 #1255 [Verbose] > │ mpf_zeta_rust --> to_int_rust("to_int() - Rust") │
00:02:41 #1256 [Verbose] > │ to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() - Rust") │
00:02:41 #1257 [Verbose] > │ │
00:02:41 #1258 [Verbose] > │ mpf_zeta_int_rust --> borwein_coefficients_rust("borwein_coefficients() │
00:02:41 #1259 [Verbose] > │ - Rust") │
00:02:41 #1260 [Verbose] > │ borwein_coefficients_rust --> from_man_exp_rust_2("from_man_exp() - │
00:02:41 #1261 [Verbose] > │ Rust") │
00:02:41 #1262 [Verbose] > │ from_man_exp_rust_2 --> bitcount_rust_2("bitcount() - Rust") │
00:02:41 #1263 [Verbose] > │ bitcount_rust_2 --> normalize_rust_2("_normalize() - Rust") │
00:02:41 #1264 [Verbose] > │ normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust") │
00:02:41 #1265 [Verbose] > │ │
00:02:41 #1266 [Verbose] > │ mpf_zeta_int_rust --> mpf_bernoulli_rust("mpf_bernoulli() - Rust") │
00:02:41 #1267 [Verbose] > │ mpf_bernoulli_rust --> bernoulli_size_rust("bernoulli_size() - Rust") │
00:02:41 #1268 [Verbose] > │ bernoulli_size_rust --> mpf_rdiv_int_rust("mpf_rdiv_int() - Rust") │
00:02:41 #1269 [Verbose] > │ mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() - Rust") │
00:02:41 #1270 [Verbose] > │ bitcount_rust_3 --> normalize1_rust("_normalize1() - Rust") │
00:02:41 #1271 [Verbose] > │ normalize1_rust --> from_man_exp_rust_3("from_man_exp() - Rust") │
00:02:41 #1272 [Verbose] > │ from_man_exp_rust_3 --> normalize_rust_3("_normalize() - Rust") │
00:02:41 #1273 [Verbose] > │ normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust") │
00:02:41 #1274 [Verbose] > │ mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust") │
00:02:41 #1275 [Verbose] > │ mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust") │
00:02:41 #1276 [Verbose] > │ mpf_neg_rust --> normalize1_rust_2("_normalize1() - Rust") │
00:02:41 #1277 [Verbose] > │ normalize1_rust_2 --> from_int_rust("from_int() - Rust") │
00:02:41 #1278 [Verbose] > │ from_int_rust --> mpf_div_rust("mpf_div() - Rust") │
00:02:41 #1279 [Verbose] > │ mpf_div_rust --> bitcount_rust_4("bitcount() - Rust") │
00:02:41 #1280 [Verbose] > │ bitcount_rust_4 --> normalize1_rust_3("_normalize1() - Rust") │
00:02:41 #1281 [Verbose] > │ │
00:02:41 #1282 [Verbose] > │ style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px │
00:02:41 #1283 [Verbose] > │ style num_traits fill:#bbf,stroke:#333,stroke-width:2px │
00:02:41 #1284 [Verbose] > │ style num_bigint fill:#bbf,stroke:#333,stroke-width:2px │
00:02:41 #1285 [Verbose] > │ style rust_decimal fill:#bbf,stroke:#333,stroke-width:2px │
00:02:41 #1286 [Verbose] > │ style error_handling fill:#bbf,stroke:#333,stroke-width:2px │
00:02:41 #1287 [Verbose] > │ style bigint_operations fill:#bfb,stroke:#333,stroke-width:2px │
00:02:41 #1288 [Verbose] > │ style decimal_operations fill:#bfb,stroke:#333,stroke-width:2px │
00:02:41 #1289 [Verbose] > │ style result_type fill:#bfb,stroke:#333,stroke-width:2px`); │
00:02:41 #1290 [Verbose] > │ renderTarget.innerHTML = svg; │
00:02:41 #1291 [Verbose] > │ bindFunctions?.(renderTarget); │
00:02:41 #1292 [Verbose] > │ } │
00:02:41 #1293 [Verbose] > │ catch (error) { │
00:02:41 #1294 [Verbose] > │ console.log(error); │
00:02:41 #1295 [Verbose] > │ } │
00:02:41 #1296 [Verbose] > │ </script> │
00:02:41 #1297 [Verbose] > │ </div> │
00:02:41 #1298 [Verbose] > │ │
00:02:41 #1299 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:41 #1300 [Verbose] >
00:02:41 #1301 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:02:41 #1302 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:02:41 #1303 [Verbose] > │ ## tests │
00:02:41 #1304 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:41 #1305 [Verbose] >
00:02:41 #1306 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:41 #1307 [Verbose] > inl tests () =
00:02:41 #1308 [Verbose] > !\($'"}//"') : ()
00:02:41 #1309 [Verbose] >
00:02:41 #1310 [Verbose] > !\($'"#[[test]] fn test_zeta_at_known_values_() { //"') : ()
00:02:41 #1311 [Verbose] > test_zeta_at_known_values_ false
00:02:41 #1312 [Verbose] > !\($'"} #[[test]] fn test_zeta_at_2_minus2() { //"') : ()
00:02:41 #1313 [Verbose] > test_zeta_at_2_minus2 false
00:02:41 #1314 [Verbose] > !\($'"} #[[test]] fn test_trivial_zero_at_negative_even___() { //"') : ()
00:02:41 #1315 [Verbose] > test_trivial_zero_at_negative_even___ false
00:02:41 #1316 [Verbose] > !\($'"} #[[test]] fn test_non_trivial_zero___() { //"') : ()
00:02:41 #1317 [Verbose] > test_non_trivial_zero___ false
00:02:41 #1318 [Verbose] > !\($'"} #[[test]] fn test_real_part_greater_than_one___() { //"') : ()
00:02:41 #1319 [Verbose] > test_real_part_greater_than_one___ false
00:02:41 #1320 [Verbose] > !\($'"} #[[test]] fn test_zeta_at_1___() { //"') : ()
00:02:41 #1321 [Verbose] > test_zeta_at_1___ false
00:02:41 #1322 [Verbose] > !\($'"} #[[test]] fn test_symmetry_across_real_axis___() { //"') : ()
00:02:41 #1323 [Verbose] > test_symmetry_across_real_axis___ false
00:02:41 #1324 [Verbose] > !\($'"} #[[test]] fn test_behavior_near_origin___() { //"') : ()
00:02:41 #1325 [Verbose] > test_behavior_near_origin___ false
00:02:41 #1326 [Verbose] > !\($'"} #[[test]] fn test_imaginary_axis() { //"') : ()
00:02:41 #1327 [Verbose] > test_imaginary_axis false
00:02:41 #1328 [Verbose] > !\($'"} #[[test]] fn test_critical_strip() { //"') : ()
00:02:41 #1329 [Verbose] > test_critical_strip false
00:02:41 #1330 [Verbose] > !\($'"} #[[test]] fn test_reflection_formula_for_specific_value() { //"') :
00:02:41 #1331 [Verbose] > ()
00:02:41 #1332 [Verbose] > test_reflection_formula_for_specific_value false
00:02:41 #1333 [Verbose] > !\($'"} #[[test]] fn test_euler_product_formula() { //"') : ()
00:02:41 #1334 [Verbose] > test_euler_product_formula false
00:02:41 #1335 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-5282-8262-84e6957b7aad\main.spi
00:02:41 #1336 [Verbose] >
00:02:41 #1337 [Verbose] > ╭─[ 342.72ms - stdout ]────────────────────────────────────────────────────────╮
00:02:41 #1338 [Verbose] > │ () │
00:02:41 #1339 [Verbose] > │ │
00:02:41 #1340 [Verbose] > │ │
00:02:41 #1341 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:41 #1342 [Verbose] >
00:02:41 #1343 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:02:41 #1344 [Verbose] > // // rust=
00:02:41 #1345 [Verbose] >
00:02:41 #1346 [Verbose] > inl main (_args : array_base string) =
00:02:41 #1347 [Verbose] > inl value = 1i32
00:02:41 #1348 [Verbose] > console.write_line ($"$\"value: {!value}\"" : string)
00:02:41 #1349 [Verbose] > 0i32
00:02:41 #1350 [Verbose] >
00:02:41 #1351 [Verbose] > inl main () =
00:02:41 #1352 [Verbose] > types ()
00:02:41 #1353 [Verbose] > $"let tests () = !tests ()" : ()
00:02:41 #1354 [Verbose] > $"let main args = !main args" : ()
00:02:42 #1355 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-5317-1722-1eb161b30cfc\main.spi
00:02:42 #1356 [Verbose] >
00:02:42 #1357 [Verbose] > ╭─[ 319.61ms - stdout ]────────────────────────────────────────────────────────╮
00:02:42 #1358 [Verbose] > │ │
00:02:42 #1359 [Verbose] > │ .fsx: │
00:02:42 #1360 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class │
00:02:42 #1361 [Verbose] > │ end │
00:02:42 #1362 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = │
00:02:42 #1363 [Verbose] > │ class end │
00:02:42 #1364 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end │
00:02:42 #1365 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end │
00:02:42 #1366 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end │
00:02:42 #1367 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end │
00:02:42 #1368 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = │
00:02:42 #1369 [Verbose] > │ class end │
00:02:42 #1370 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │
00:02:42 #1371 [Verbose] > │ class end │
00:02:42 #1372 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end │
00:02:42 #1373 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end │
00:02:42 #1374 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:02:42 #1375 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> = │
00:02:42 #1376 [Verbose] > │ class end │
00:02:42 #1377 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> = │
00:02:42 #1378 [Verbose] > │ class end │
00:02:42 #1379 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any = │
00:02:42 #1380 [Verbose] > │ class end │
00:02:42 #1381 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type │
00:02:42 #1382 [Verbose] > │ std_cell_RefCell<'T> = class end │
00:02:42 #1383 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type │
00:02:42 #1384 [Verbose] > │ std_pin_Pin<'T> = class end │
00:02:42 #1385 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T> │
00:02:42 #1386 [Verbose] > │ = class end │
00:02:42 #1387 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type │
00:02:42 #1388 [Verbose] > │ std_rc_Weak<'T> = class end │
00:02:42 #1389 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type │
00:02:42 #1390 [Verbose] > │ std_sync_Arc<'T> = class end │
00:02:42 #1391 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:02:42 #1392 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type │
00:02:42 #1393 [Verbose] > │ base64_DecodeError = class end │
00:02:42 #1394 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type │
00:02:42 #1395 [Verbose] > │ borsh_io_Error = class end │
00:02:42 #1396 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type │
00:02:42 #1397 [Verbose] > │ js_sys_JsString = class end │
00:02:42 #1398 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type │
00:02:42 #1399 [Verbose] > │ serde_json_Error = class end │
00:02:42 #1400 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type │
00:02:42 #1401 [Verbose] > │ serde_json_Value = class end │
00:02:42 #1402 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type │
00:02:42 #1403 [Verbose] > │ serde_wasm_bindgen_Error = class end │
00:02:42 #1404 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr │
00:02:42 #1405 [Verbose] > │ = class end │
00:02:42 #1406 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type │
00:02:42 #1407 [Verbose] > │ std_ffi_OsString = class end │
00:02:42 #1408 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type │
00:02:42 #1409 [Verbose] > │ std_str_Utf8Error = class end │
00:02:42 #1410 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:02:42 #1411 [Verbose] > │ std_string_String = class end │
00:02:42 #1412 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type │
00:02:42 #1413 [Verbose] > │ num_complex_Complex<'T> = class end │
00:02:42 #1414 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type │
00:02:42 #1415 [Verbose] > │ pyo3_types_PyModule = class end │
00:02:42 #1416 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │
00:02:42 #1417 [Verbose] > │ = class end │
00:02:42 #1418 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python = │
00:02:42 #1419 [Verbose] > │ class end │
00:02:42 #1420 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │
00:02:42 #1421 [Verbose] > │ end │
00:02:42 #1422 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │
00:02:42 #1423 [Verbose] > │ end │
00:02:42 #1424 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () "); │
00:02:42 #1425 [Verbose] > │ use pyo3::prelude::PyAnyMethods; │
00:02:42 #1426 [Verbose] > │ //" │
00:02:42 #1427 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:02:42 #1428 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : string} │
00:02:42 #1429 [Verbose] > │ and Mut2 = {mutable l0 : int32; mutable l1 : num_complex_Complex<float>} │
00:02:42 #1430 [Verbose] > │ and [<Struct>] US0 = │
00:02:42 #1431 [Verbose] > │ | US0_0 of f0_0 : num_complex_Complex<float> │
00:02:42 #1432 [Verbose] > │ | US0_1 │
00:02:42 #1433 [Verbose] > │ and UH0 = │
00:02:42 #1434 [Verbose] > │ | UH0_0 │
00:02:42 #1435 [Verbose] > │ | UH0_1 of float * UH0 │
00:02:42 #1436 [Verbose] > │ and Mut3 = {mutable l0 : int32; mutable l1 : float} │
00:02:42 #1437 [Verbose] > │ let rec method2 (v0 : int32, v1 : Mut0) : bool = │
00:02:42 #1438 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:42 #1439 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:42 #1440 [Verbose] > │ v3 │
00:02:42 #1441 [Verbose] > │ and method3 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │
00:02:42 #1442 [Verbose] > │ v0 │
00:02:42 #1443 [Verbose] > │ and method6 (v0 : int32, v1 : Mut1) : bool = │
00:02:42 #1444 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:42 #1445 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:42 #1446 [Verbose] > │ v3 │
00:02:42 #1447 [Verbose] > │ and method5 (v0 : (string [])) : string = │
00:02:42 #1448 [Verbose] > │ let v1 : int32 = v0.Length │
00:02:42 #1449 [Verbose] > │ let v2 : string = "" │
00:02:42 #1450 [Verbose] > │ let v3 : Mut1 = {l0 = 0; l1 = v2} : Mut1 │
00:02:42 #1451 [Verbose] > │ while method6(v1, v3) do │
00:02:42 #1452 [Verbose] > │ let v5 : int32 = v3.l0 │
00:02:42 #1453 [Verbose] > │ let v6 : string = v3.l1 │
00:02:42 #1454 [Verbose] > │ let v7 : string = v0.[int v5] │
00:02:42 #1455 [Verbose] > │ let v8 : string = "\n" │
00:02:42 #1456 [Verbose] > │ let v9 : string = v6 + v7 + v8 + "" │
00:02:42 #1457 [Verbose] > │ let v10 : int32 = v5 + 1 │
00:02:42 #1458 [Verbose] > │ v3.l0 <- v10 │
00:02:42 #1459 [Verbose] > │ v3.l1 <- v9 │
00:02:42 #1460 [Verbose] > │ () │
00:02:42 #1461 [Verbose] > │ let v11 : string = v3.l1 │
00:02:42 #1462 [Verbose] > │ v11 │
00:02:42 #1463 [Verbose] > │ and method7 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │
00:02:42 #1464 [Verbose] > │ v0 │
00:02:42 #1465 [Verbose] > │ and method8 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │
00:02:42 #1466 [Verbose] > │ v0 │
00:02:42 #1467 [Verbose] > │ and method9 (v0 : pyo3_Python) : pyo3_Python = │
00:02:42 #1468 [Verbose] > │ v0 │
00:02:42 #1469 [Verbose] > │ and closure1 () (v0 : pyo3_PyErr) : std_string_String = │
00:02:42 #1470 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:02:42 #1471 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:02:42 #1472 [Verbose] > │ v2 │
00:02:42 #1473 [Verbose] > │ and method10 () : (pyo3_PyErr -> std_string_String) = │
00:02:42 #1474 [Verbose] > │ closure1() │
00:02:42 #1475 [Verbose] > │ and method11 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr>) : │
00:02:42 #1476 [Verbose] > │ Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:02:42 #1477 [Verbose] > │ v0 │
00:02:42 #1478 [Verbose] > │ and method12 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>, │
00:02:42 #1479 [Verbose] > │ std_string_String>) : Result<pyo3_Bound<pyo3_types_PyModule>, │
00:02:42 #1480 [Verbose] > │ std_string_String> = │
00:02:42 #1481 [Verbose] > │ v0 │
00:02:42 #1482 [Verbose] > │ and method13 () : string = │
00:02:42 #1483 [Verbose] > │ let v0 : string = "fn" │
00:02:42 #1484 [Verbose] > │ v0 │
00:02:42 #1485 [Verbose] > │ and method14 (v0 : pyo3_Bound<pyo3_types_PyModule>) : │
00:02:42 #1486 [Verbose] > │ pyo3_Bound<pyo3_types_PyModule> = │
00:02:42 #1487 [Verbose] > │ v0 │
00:02:42 #1488 [Verbose] > │ and closure2 () (v0 : pyo3_PyErr) : std_string_String = │
00:02:42 #1489 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:02:42 #1490 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:02:42 #1491 [Verbose] > │ v2 │
00:02:42 #1492 [Verbose] > │ and method15 () : (pyo3_PyErr -> std_string_String) = │
00:02:42 #1493 [Verbose] > │ closure2() │
00:02:42 #1494 [Verbose] > │ and method16 (v0 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr>) : │
00:02:42 #1495 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:02:42 #1496 [Verbose] > │ v0 │
00:02:42 #1497 [Verbose] > │ and method17 (v0 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String>) : │
00:02:42 #1498 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:02:42 #1499 [Verbose] > │ v0 │
00:02:42 #1500 [Verbose] > │ and method18 (v0 : (bool * (float * float))) : (bool * (float * float)) = │
00:02:42 #1501 [Verbose] > │ v0 │
00:02:42 #1502 [Verbose] > │ and method19 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> = │
00:02:42 #1503 [Verbose] > │ v0 │
00:02:42 #1504 [Verbose] > │ and closure3 () (v0 : pyo3_PyErr) : std_string_String = │
00:02:42 #1505 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:02:42 #1506 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:02:42 #1507 [Verbose] > │ v2 │
00:02:42 #1508 [Verbose] > │ and method20 () : (pyo3_PyErr -> std_string_String) = │
00:02:42 #1509 [Verbose] > │ closure3() │
00:02:42 #1510 [Verbose] > │ and method21 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> = │
00:02:42 #1511 [Verbose] > │ v0 │
00:02:42 #1512 [Verbose] > │ and closure4 () (v0 : pyo3_PyErr) : std_string_String = │
00:02:42 #1513 [Verbose] > │ let v1 : string = @$"format!(""{{}}"", $0)" │
00:02:42 #1514 [Verbose] > │ let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1 │
00:02:42 #1515 [Verbose] > │ v2 │
00:02:42 #1516 [Verbose] > │ and method22 () : (pyo3_PyErr -> std_string_String) = │
00:02:42 #1517 [Verbose] > │ closure4() │
00:02:42 #1518 [Verbose] > │ and method23 (v0 : Result<struct (float * float), pyo3_PyErr>) : │
00:02:42 #1519 [Verbose] > │ Result<struct (float * float), pyo3_PyErr> = │
00:02:42 #1520 [Verbose] > │ v0 │
00:02:42 #1521 [Verbose] > │ and method4 (v0 : pyo3_Python, v1 : string, v2 : num_complex_Complex<float>) │
00:02:42 #1522 [Verbose] > │ : Result<num_complex_Complex<float>, std_string_String> = │
00:02:42 #1523 [Verbose] > │ let v3 : string = $"import sys" │
00:02:42 #1524 [Verbose] > │ let v4 : string = $"import traceback" │
00:02:42 #1525 [Verbose] > │ let v5 : string = $"import re" │
00:02:42 #1526 [Verbose] > │ let v6 : string = $"count = 0" │
00:02:42 #1527 [Verbose] > │ let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[ │
00:02:42 #1528 [Verbose] > │ 0-9a-fA-F]+')" │
00:02:42 #1529 [Verbose] > │ let v8 : string = $"def trace_calls(frame, event, arg):" │
00:02:42 #1530 [Verbose] > │ let v9 : string = $" global count" │
00:02:42 #1531 [Verbose] > │ let v10 : string = $" count += 1" │
00:02:42 #1532 [Verbose] > │ let v11 : string = $" if count < 200:" │
00:02:42 #1533 [Verbose] > │ let v12 : string = $" try:" │
00:02:42 #1534 [Verbose] > │ let v13 : string = $" args = {{ k: v for k, v in │
00:02:42 #1535 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [ │
00:02:42 #1536 [Verbose] > │ 'ctx'] and not callable(v) }}" │
00:02:42 #1537 [Verbose] > │ let v14 : string = $" args_str = ', '.join([ │
00:02:42 #1538 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │
00:02:42 #1539 [Verbose] > │ in args.items() ])" │
00:02:42 #1540 [Verbose] > │ let v15 : string = "zeta_" │
00:02:42 #1541 [Verbose] > │ let v16 : string = $" print(f\"{{event}}({v15}) / │
00:02:42 #1542 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / │
00:02:42 #1543 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename: │
00:02:42 #1544 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno: │
00:02:42 #1545 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} / │
00:02:42 #1546 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else │
00:02:42 #1547 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg: │
00:02:42 #1548 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)" │
00:02:42 #1549 [Verbose] > │ let v17 : string = $" except ValueError as e:" │
00:02:42 #1550 [Verbose] > │ let v18 : string = $" print(f'{v15} / e: {{e}}', flush=True)" │
00:02:42 #1551 [Verbose] > │ let v19 : string = $" return trace_calls" │
00:02:42 #1552 [Verbose] > │ let v20 : string = $"import mpmath" │
00:02:42 #1553 [Verbose] > │ let v21 : string = $"def fn(log, s):" │
00:02:42 #1554 [Verbose] > │ let v22 : string = $" global count" │
00:02:42 #1555 [Verbose] > │ let v23 : string = $" if log:" │
00:02:42 #1556 [Verbose] > │ let v24 : string = $" print(f'{v15} / s: {{s}} / count: │
00:02:42 #1557 [Verbose] > │ {{count}}', flush=True)" │
00:02:42 #1558 [Verbose] > │ let v25 : string = $" s = complex(*s)" │
00:02:42 #1559 [Verbose] > │ let v26 : string = $" try:" │
00:02:42 #1560 [Verbose] > │ let v27 : string = $" if log: sys.settrace(trace_calls)" │
00:02:42 #1561 [Verbose] > │ let v28 : string = $" if log:" │
00:02:42 #1562 [Verbose] > │ let v29 : string = $" sys.settrace(None)" │
00:02:42 #1563 [Verbose] > │ let v30 : string = $" print(f'{v15} / result: {{s}} / count: │
00:02:42 #1564 [Verbose] > │ {{count}}', flush=True)" │
00:02:42 #1565 [Verbose] > │ let v31 : string = $" except ValueError as e:" │
00:02:42 #1566 [Verbose] > │ let v32 : string = $" if s.real == 1:" │
00:02:42 #1567 [Verbose] > │ let v33 : string = $" s = complex(float('inf'), 0)" │
00:02:42 #1568 [Verbose] > │ let v34 : string = $" return (s.real, s.imag)" │
00:02:42 #1569 [Verbose] > │ let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12; │
00:02:42 #1570 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1; │
00:02:42 #1571 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|] │
00:02:42 #1572 [Verbose] > │ let v36 : string = method5(v35) │
00:02:42 #1573 [Verbose] > │ let v37 : num_complex_Complex<float> = method7(v2) │
00:02:42 #1574 [Verbose] > │ let v38 : string = "v37.re" │
00:02:42 #1575 [Verbose] > │ let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38 │
00:02:42 #1576 [Verbose] > │ let v40 : num_complex_Complex<float> = method8(v2) │
00:02:42 #1577 [Verbose] > │ let v41 : string = "v40.im" │
00:02:42 #1578 [Verbose] > │ let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41 │
00:02:42 #1579 [Verbose] > │ let v43 : (float * float) = v39, v42 │
00:02:42 #1580 [Verbose] > │ let v44 : (bool * (float * float)) = false, v43 │
00:02:42 #1581 [Verbose] > │ let v45 : pyo3_Python = method9(v0) │
00:02:42 #1582 [Verbose] > │ let v46 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:02:42 #1583 [Verbose] > │ let v47 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v36 v46 │
00:02:42 #1584 [Verbose] > │ let v48 : string = "pyo3::types::PyModule::from_code_bound(v45, v47, │
00:02:42 #1585 [Verbose] > │ \"\", \"\")" │
00:02:42 #1586 [Verbose] > │ let v49 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:02:42 #1587 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48 │
00:02:42 #1588 [Verbose] > │ let v50 : (pyo3_PyErr -> std_string_String) = method10() │
00:02:42 #1589 [Verbose] > │ let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:02:42 #1590 [Verbose] > │ method11(v49) │
00:02:42 #1591 [Verbose] > │ let v52 : string = "v51.map_err(|x| v50(x))" │
00:02:42 #1592 [Verbose] > │ let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:02:42 #1593 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v52 │
00:02:42 #1594 [Verbose] > │ let v54 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:02:42 #1595 [Verbose] > │ method12(v53) │
00:02:42 #1596 [Verbose] > │ let v55 : string = "v54.unwrap()" │
00:02:42 #1597 [Verbose] > │ let v56 : pyo3_Bound<pyo3_types_PyModule> = │
00:02:42 #1598 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v55 │
00:02:42 #1599 [Verbose] > │ let v57 : string = method13() │
00:02:42 #1600 [Verbose] > │ let v58 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:02:42 #1601 [Verbose] > │ let v59 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v57 v58 │
00:02:42 #1602 [Verbose] > │ let v60 : pyo3_Bound<pyo3_types_PyModule> = method14(v56) │
00:02:42 #1603 [Verbose] > │ let v61 : string = "v60.getattr(v59)" │
00:02:42 #1604 [Verbose] > │ let v62 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:02:42 #1605 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v61 │
00:02:42 #1606 [Verbose] > │ let v63 : (pyo3_PyErr -> std_string_String) = method15() │
00:02:42 #1607 [Verbose] > │ let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v62) │
00:02:42 #1608 [Verbose] > │ let v65 : string = "v64.map_err(|x| v63(x))" │
00:02:42 #1609 [Verbose] > │ let v66 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:02:42 #1610 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v65 │
00:02:42 #1611 [Verbose] > │ let v67 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:02:42 #1612 [Verbose] > │ method17(v66) │
00:02:42 #1613 [Verbose] > │ let v68 : string = "v67.unwrap()" │
00:02:42 #1614 [Verbose] > │ let v69 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #1615 [Verbose] > │ () v68 │
00:02:42 #1616 [Verbose] > │ let v70 : (bool * (float * float)) = method18(v44) │
00:02:42 #1617 [Verbose] > │ let v71 : pyo3_Bound<pyo3_PyAny> = method19(v69) │
00:02:42 #1618 [Verbose] > │ let v72 : string = "pyo3::prelude::PyAnyMethods::call(&v71, ((*v70).0, │
00:02:42 #1619 [Verbose] > │ *(*v70).1), None)" │
00:02:42 #1620 [Verbose] > │ let v73 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:02:42 #1621 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v72 │
00:02:42 #1622 [Verbose] > │ let v74 : (pyo3_PyErr -> std_string_String) = method20() │
00:02:42 #1623 [Verbose] > │ let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v73) │
00:02:42 #1624 [Verbose] > │ let v76 : string = "v75.map_err(|x| v74(x))" │
00:02:42 #1625 [Verbose] > │ let v77 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:02:42 #1626 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v76 │
00:02:42 #1627 [Verbose] > │ let v78 : string = "v77?" │
00:02:42 #1628 [Verbose] > │ let v79 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #1629 [Verbose] > │ () v78 │
00:02:42 #1630 [Verbose] > │ let v80 : pyo3_Bound<pyo3_PyAny> = method21(v79) │
00:02:42 #1631 [Verbose] > │ let v81 : string = "v80.extract()" │
00:02:42 #1632 [Verbose] > │ let v82 : Result<struct (float * float), pyo3_PyErr> = │
00:02:42 #1633 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v81 │
00:02:42 #1634 [Verbose] > │ let v83 : (pyo3_PyErr -> std_string_String) = method22() │
00:02:42 #1635 [Verbose] > │ let v84 : Result<struct (float * float), pyo3_PyErr> = method23(v82) │
00:02:42 #1636 [Verbose] > │ let v85 : string = "v84.map_err(|x| v83(x))" │
00:02:42 #1637 [Verbose] > │ let v86 : Result<struct (float * float), std_string_String> = │
00:02:42 #1638 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v85 │
00:02:42 #1639 [Verbose] > │ let v87 : string = "v86?" │
00:02:42 #1640 [Verbose] > │ let struct (v88 : float, v89 : float) = │
00:02:42 #1641 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87 │
00:02:42 #1642 [Verbose] > │ let v90 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1643 [Verbose] > │ let v91 : num_complex_Complex<float> = │
00:02:42 #1644 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v88, v89) v90 │
00:02:42 #1645 [Verbose] > │ let v92 : Result<num_complex_Complex<float>, std_string_String> = Ok v91 │
00:02:42 #1646 [Verbose] > │ v92 │
00:02:42 #1647 [Verbose] > │ and method25 (v0 : Mut0) : bool = │
00:02:42 #1648 [Verbose] > │ let v1 : int32 = v0.l0 │
00:02:42 #1649 [Verbose] > │ let v2 : bool = v1 < 10000 │
00:02:42 #1650 [Verbose] > │ v2 │
00:02:42 #1651 [Verbose] > │ and method26 (v0 : int32, v1 : Mut2) : bool = │
00:02:42 #1652 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:42 #1653 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:42 #1654 [Verbose] > │ v3 │
00:02:42 #1655 [Verbose] > │ and method27 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> │
00:02:42 #1656 [Verbose] > │ = │
00:02:42 #1657 [Verbose] > │ v0 │
00:02:42 #1658 [Verbose] > │ and method28 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> │
00:02:42 #1659 [Verbose] > │ = │
00:02:42 #1660 [Verbose] > │ v0 │
00:02:42 #1661 [Verbose] > │ and method29 (v0 : pyo3_Python, v1 : string, v2 : │
00:02:42 #1662 [Verbose] > │ num_complex_Complex<float>) : Result<num_complex_Complex<float>, │
00:02:42 #1663 [Verbose] > │ std_string_String> = │
00:02:42 #1664 [Verbose] > │ let v3 : string = $"import sys" │
00:02:42 #1665 [Verbose] > │ let v4 : string = $"import traceback" │
00:02:42 #1666 [Verbose] > │ let v5 : string = $"import re" │
00:02:42 #1667 [Verbose] > │ let v6 : string = $"count = 0" │
00:02:42 #1668 [Verbose] > │ let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[ │
00:02:42 #1669 [Verbose] > │ 0-9a-fA-F]+')" │
00:02:42 #1670 [Verbose] > │ let v8 : string = $"def trace_calls(frame, event, arg):" │
00:02:42 #1671 [Verbose] > │ let v9 : string = $" global count" │
00:02:42 #1672 [Verbose] > │ let v10 : string = $" count += 1" │
00:02:42 #1673 [Verbose] > │ let v11 : string = $" if count < 200:" │
00:02:42 #1674 [Verbose] > │ let v12 : string = $" try:" │
00:02:42 #1675 [Verbose] > │ let v13 : string = $" args = {{ k: v for k, v in │
00:02:42 #1676 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [ │
00:02:42 #1677 [Verbose] > │ 'ctx'] and not callable(v) }}" │
00:02:42 #1678 [Verbose] > │ let v14 : string = $" args_str = ', '.join([ │
00:02:42 #1679 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │
00:02:42 #1680 [Verbose] > │ in args.items() ])" │
00:02:42 #1681 [Verbose] > │ let v15 : string = "gamma_" │
00:02:42 #1682 [Verbose] > │ let v16 : string = $" print(f\"{{event}}({v15}) / │
00:02:42 #1683 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / │
00:02:42 #1684 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename: │
00:02:42 #1685 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno: │
00:02:42 #1686 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} / │
00:02:42 #1687 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else │
00:02:42 #1688 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg: │
00:02:42 #1689 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)" │
00:02:42 #1690 [Verbose] > │ let v17 : string = $" except ValueError as e:" │
00:02:42 #1691 [Verbose] > │ let v18 : string = $" print(f'{v15} / e: {{e}}', flush=True)" │
00:02:42 #1692 [Verbose] > │ let v19 : string = $" return trace_calls" │
00:02:42 #1693 [Verbose] > │ let v20 : string = $"import mpmath" │
00:02:42 #1694 [Verbose] > │ let v21 : string = $"def fn(log, s):" │
00:02:42 #1695 [Verbose] > │ let v22 : string = $" global count" │
00:02:42 #1696 [Verbose] > │ let v23 : string = $" if log:" │
00:02:42 #1697 [Verbose] > │ let v24 : string = $" print(f'{v15} / s: {{s}} / count: │
00:02:42 #1698 [Verbose] > │ {{count}}', flush=True)" │
00:02:42 #1699 [Verbose] > │ let v25 : string = $" s = complex(*s)" │
00:02:42 #1700 [Verbose] > │ let v26 : string = $" try:" │
00:02:42 #1701 [Verbose] > │ let v27 : string = $" if log: sys.settrace(trace_calls)" │
00:02:42 #1702 [Verbose] > │ let v28 : string = $" if log:" │
00:02:42 #1703 [Verbose] > │ let v29 : string = $" sys.settrace(None)" │
00:02:42 #1704 [Verbose] > │ let v30 : string = $" print(f'{v15} / result: {{s}} / count: │
00:02:42 #1705 [Verbose] > │ {{count}}', flush=True)" │
00:02:42 #1706 [Verbose] > │ let v31 : string = $" except ValueError as e:" │
00:02:42 #1707 [Verbose] > │ let v32 : string = $" if s.real == 1:" │
00:02:42 #1708 [Verbose] > │ let v33 : string = $" s = complex(float('inf'), 0)" │
00:02:42 #1709 [Verbose] > │ let v34 : string = $" return (s.real, s.imag)" │
00:02:42 #1710 [Verbose] > │ let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12; │
00:02:42 #1711 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1; │
00:02:42 #1712 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|] │
00:02:42 #1713 [Verbose] > │ let v36 : string = method5(v35) │
00:02:42 #1714 [Verbose] > │ let v37 : num_complex_Complex<float> = method7(v2) │
00:02:42 #1715 [Verbose] > │ let v38 : string = "v37.re" │
00:02:42 #1716 [Verbose] > │ let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38 │
00:02:42 #1717 [Verbose] > │ let v40 : num_complex_Complex<float> = method8(v2) │
00:02:42 #1718 [Verbose] > │ let v41 : string = "v40.im" │
00:02:42 #1719 [Verbose] > │ let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41 │
00:02:42 #1720 [Verbose] > │ let v43 : (float * float) = v39, v42 │
00:02:42 #1721 [Verbose] > │ let v44 : (bool * (float * float)) = false, v43 │
00:02:42 #1722 [Verbose] > │ let v45 : pyo3_Python = method9(v0) │
00:02:42 #1723 [Verbose] > │ let v46 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:02:42 #1724 [Verbose] > │ let v47 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v36 v46 │
00:02:42 #1725 [Verbose] > │ let v48 : string = "pyo3::types::PyModule::from_code_bound(v45, v47, │
00:02:42 #1726 [Verbose] > │ \"\", \"\")" │
00:02:42 #1727 [Verbose] > │ let v49 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:02:42 #1728 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48 │
00:02:42 #1729 [Verbose] > │ let v50 : (pyo3_PyErr -> std_string_String) = method10() │
00:02:42 #1730 [Verbose] > │ let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> = │
00:02:42 #1731 [Verbose] > │ method11(v49) │
00:02:42 #1732 [Verbose] > │ let v52 : string = "v51.map_err(|x| v50(x))" │
00:02:42 #1733 [Verbose] > │ let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:02:42 #1734 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v52 │
00:02:42 #1735 [Verbose] > │ let v54 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> = │
00:02:42 #1736 [Verbose] > │ method12(v53) │
00:02:42 #1737 [Verbose] > │ let v55 : string = "v54.unwrap()" │
00:02:42 #1738 [Verbose] > │ let v56 : pyo3_Bound<pyo3_types_PyModule> = │
00:02:42 #1739 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v55 │
00:02:42 #1740 [Verbose] > │ let v57 : string = method13() │
00:02:42 #1741 [Verbose] > │ let v58 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)" │
00:02:42 #1742 [Verbose] > │ let v59 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v57 v58 │
00:02:42 #1743 [Verbose] > │ let v60 : pyo3_Bound<pyo3_types_PyModule> = method14(v56) │
00:02:42 #1744 [Verbose] > │ let v61 : string = "v60.getattr(v59)" │
00:02:42 #1745 [Verbose] > │ let v62 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:02:42 #1746 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v61 │
00:02:42 #1747 [Verbose] > │ let v63 : (pyo3_PyErr -> std_string_String) = method15() │
00:02:42 #1748 [Verbose] > │ let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v62) │
00:02:42 #1749 [Verbose] > │ let v65 : string = "v64.map_err(|x| v63(x))" │
00:02:42 #1750 [Verbose] > │ let v66 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:02:42 #1751 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v65 │
00:02:42 #1752 [Verbose] > │ let v67 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:02:42 #1753 [Verbose] > │ method17(v66) │
00:02:42 #1754 [Verbose] > │ let v68 : string = "v67.unwrap()" │
00:02:42 #1755 [Verbose] > │ let v69 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #1756 [Verbose] > │ () v68 │
00:02:42 #1757 [Verbose] > │ let v70 : (bool * (float * float)) = method18(v44) │
00:02:42 #1758 [Verbose] > │ let v71 : pyo3_Bound<pyo3_PyAny> = method19(v69) │
00:02:42 #1759 [Verbose] > │ let v72 : string = "pyo3::prelude::PyAnyMethods::call(&v71, ((*v70).0, │
00:02:42 #1760 [Verbose] > │ *(*v70).1), None)" │
00:02:42 #1761 [Verbose] > │ let v73 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = │
00:02:42 #1762 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v72 │
00:02:42 #1763 [Verbose] > │ let v74 : (pyo3_PyErr -> std_string_String) = method20() │
00:02:42 #1764 [Verbose] > │ let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v73) │
00:02:42 #1765 [Verbose] > │ let v76 : string = "v75.map_err(|x| v74(x))" │
00:02:42 #1766 [Verbose] > │ let v77 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> = │
00:02:42 #1767 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v76 │
00:02:42 #1768 [Verbose] > │ let v78 : string = "v77?" │
00:02:42 #1769 [Verbose] > │ let v79 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #1770 [Verbose] > │ () v78 │
00:02:42 #1771 [Verbose] > │ let v80 : pyo3_Bound<pyo3_PyAny> = method21(v79) │
00:02:42 #1772 [Verbose] > │ let v81 : string = "v80.extract()" │
00:02:42 #1773 [Verbose] > │ let v82 : Result<struct (float * float), pyo3_PyErr> = │
00:02:42 #1774 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v81 │
00:02:42 #1775 [Verbose] > │ let v83 : (pyo3_PyErr -> std_string_String) = method22() │
00:02:42 #1776 [Verbose] > │ let v84 : Result<struct (float * float), pyo3_PyErr> = method23(v82) │
00:02:42 #1777 [Verbose] > │ let v85 : string = "v84.map_err(|x| v83(x))" │
00:02:42 #1778 [Verbose] > │ let v86 : Result<struct (float * float), std_string_String> = │
00:02:42 #1779 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v85 │
00:02:42 #1780 [Verbose] > │ let v87 : string = "v86?" │
00:02:42 #1781 [Verbose] > │ let struct (v88 : float, v89 : float) = │
00:02:42 #1782 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87 │
00:02:42 #1783 [Verbose] > │ let v90 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1784 [Verbose] > │ let v91 : num_complex_Complex<float> = │
00:02:42 #1785 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v88, v89) v90 │
00:02:42 #1786 [Verbose] > │ let v92 : Result<num_complex_Complex<float>, std_string_String> = Ok v91 │
00:02:42 #1787 [Verbose] > │ v92 │
00:02:42 #1788 [Verbose] > │ and closure5 () (v0 : num_complex_Complex<float>) : US0 = │
00:02:42 #1789 [Verbose] > │ US0_0(v0) │
00:02:42 #1790 [Verbose] > │ and method30 () : (num_complex_Complex<float> -> US0) = │
00:02:42 #1791 [Verbose] > │ closure5() │
00:02:42 #1792 [Verbose] > │ and method24 (v0 : pyo3_Python, v1 : num_complex_Complex<float>) : │
00:02:42 #1793 [Verbose] > │ num_complex_Complex<float> = │
00:02:42 #1794 [Verbose] > │ let v2 : string = "println!(\"zeta / count: {:?} / s: {:?}\", 0, $0)" │
00:02:42 #1795 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr v1 v2 │
00:02:42 #1796 [Verbose] > │ let v3 : num_complex_Complex<float> = method7(v1) │
00:02:42 #1797 [Verbose] > │ let v4 : string = "v3.re" │
00:02:42 #1798 [Verbose] > │ let v5 : float = Fable.Core.RustInterop.emitRustExpr () v4 │
00:02:42 #1799 [Verbose] > │ let v6 : bool = v5 > 1.0 │
00:02:42 #1800 [Verbose] > │ if v6 then │
00:02:42 #1801 [Verbose] > │ let v7 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1802 [Verbose] > │ let v8 : num_complex_Complex<float> = │
00:02:42 #1803 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v7 │
00:02:42 #1804 [Verbose] > │ let v9 : (int32 []) = Array.zeroCreate<int32> (10000) │
00:02:42 #1805 [Verbose] > │ let v10 : Mut0 = {l0 = 0} : Mut0 │
00:02:42 #1806 [Verbose] > │ while method25(v10) do │
00:02:42 #1807 [Verbose] > │ let v12 : int32 = v10.l0 │
00:02:42 #1808 [Verbose] > │ v9.[int v12] <- v12 │
00:02:42 #1809 [Verbose] > │ let v13 : int32 = v12 + 1 │
00:02:42 #1810 [Verbose] > │ v10.l0 <- v13 │
00:02:42 #1811 [Verbose] > │ () │
00:02:42 #1812 [Verbose] > │ let v14 : int32 = v9.Length │
00:02:42 #1813 [Verbose] > │ let v15 : Mut2 = {l0 = 0; l1 = v8} : Mut2 │
00:02:42 #1814 [Verbose] > │ while method26(v14, v15) do │
00:02:42 #1815 [Verbose] > │ let v17 : int32 = v15.l0 │
00:02:42 #1816 [Verbose] > │ let v18 : num_complex_Complex<float> = v15.l1 │
00:02:42 #1817 [Verbose] > │ let v19 : int32 = v9.[int v17] │
00:02:42 #1818 [Verbose] > │ let v20 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1819 [Verbose] > │ let v21 : num_complex_Complex<float> = │
00:02:42 #1820 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v20 │
00:02:42 #1821 [Verbose] > │ let v22 : float = float v19 │
00:02:42 #1822 [Verbose] > │ let v23 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1823 [Verbose] > │ let v24 : num_complex_Complex<float> = │
00:02:42 #1824 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v22, 0.0) v23 │
00:02:42 #1825 [Verbose] > │ let v25 : num_complex_Complex<float> = method27(v24) │
00:02:42 #1826 [Verbose] > │ let v26 : num_complex_Complex<float> = method28(v1) │
00:02:42 #1827 [Verbose] > │ let v27 : string = "num_complex::Complex::powc(v25, v26)" │
00:02:42 #1828 [Verbose] > │ let v28 : num_complex_Complex<float> = │
00:02:42 #1829 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v27 │
00:02:42 #1830 [Verbose] > │ let v29 : string = "v21 / v28" │
00:02:42 #1831 [Verbose] > │ let v30 : num_complex_Complex<float> = │
00:02:42 #1832 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v29 │
00:02:42 #1833 [Verbose] > │ let v31 : string = "v18 + v30" │
00:02:42 #1834 [Verbose] > │ let v32 : num_complex_Complex<float> = │
00:02:42 #1835 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v31 │
00:02:42 #1836 [Verbose] > │ let v33 : int32 = v17 + 1 │
00:02:42 #1837 [Verbose] > │ v15.l0 <- v33 │
00:02:42 #1838 [Verbose] > │ v15.l1 <- v32 │
00:02:42 #1839 [Verbose] > │ () │
00:02:42 #1840 [Verbose] > │ let v34 : num_complex_Complex<float> = v15.l1 │
00:02:42 #1841 [Verbose] > │ v34 │
00:02:42 #1842 [Verbose] > │ else │
00:02:42 #1843 [Verbose] > │ let v35 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1844 [Verbose] > │ let v36 : num_complex_Complex<float> = │
00:02:42 #1845 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v35 │
00:02:42 #1846 [Verbose] > │ let v37 : string = "$0 - $1" │
00:02:42 #1847 [Verbose] > │ let v38 : num_complex_Complex<float> = │
00:02:42 #1848 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v36, v1) v37 │
00:02:42 #1849 [Verbose] > │ let v39 : string = $" s = mpmath.gamma(s)" │
00:02:42 #1850 [Verbose] > │ let v40 : num_complex_Complex<float> = method3(v38) │
00:02:42 #1851 [Verbose] > │ let v41 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:42 #1852 [Verbose] > │ method29(v0, v39, v40) │
00:02:42 #1853 [Verbose] > │ let v42 : string = "v41.ok()" │
00:02:42 #1854 [Verbose] > │ let v43 : num_complex_Complex<float> option = │
00:02:42 #1855 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v42 │
00:02:42 #1856 [Verbose] > │ let v44 : (num_complex_Complex<float> -> US0) = method30() │
00:02:42 #1857 [Verbose] > │ let v45 : US0 = US0_1 │
00:02:42 #1858 [Verbose] > │ let v46 : US0 = v43 |> Option.map v44 |> Option.defaultValue v45 │
00:02:42 #1859 [Verbose] > │ let v47 : string = "f64::NAN" │
00:02:42 #1860 [Verbose] > │ let v48 : float = Fable.Core.RustInterop.emitRustExpr () v47 │
00:02:42 #1861 [Verbose] > │ let v49 : string = "f64::NAN" │
00:02:42 #1862 [Verbose] > │ let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49 │
00:02:42 #1863 [Verbose] > │ let v51 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1864 [Verbose] > │ let v52 : num_complex_Complex<float> = │
00:02:42 #1865 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v48, v50) v51 │
00:02:42 #1866 [Verbose] > │ let v55 : num_complex_Complex<float> = │
00:02:42 #1867 [Verbose] > │ match v46 with │
00:02:42 #1868 [Verbose] > │ | US0_1 -> (* None *) │
00:02:42 #1869 [Verbose] > │ v52 │
00:02:42 #1870 [Verbose] > │ | US0_0(v53) -> (* Some *) │
00:02:42 #1871 [Verbose] > │ v53 │
00:02:42 #1872 [Verbose] > │ let v56 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1873 [Verbose] > │ let v57 : num_complex_Complex<float> = │
00:02:42 #1874 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v56 │
00:02:42 #1875 [Verbose] > │ let v58 : string = "$0 * $1" │
00:02:42 #1876 [Verbose] > │ let v59 : num_complex_Complex<float> = │
00:02:42 #1877 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v57, v1) v58 │
00:02:42 #1878 [Verbose] > │ let v60 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1879 [Verbose] > │ let v61 : num_complex_Complex<float> = │
00:02:42 #1880 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v60 │
00:02:42 #1881 [Verbose] > │ let v62 : string = "v59 / v61" │
00:02:42 #1882 [Verbose] > │ let v63 : num_complex_Complex<float> = │
00:02:42 #1883 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v62 │
00:02:42 #1884 [Verbose] > │ let v64 : string = "v63.sin()" │
00:02:42 #1885 [Verbose] > │ let v65 : num_complex_Complex<float> = │
00:02:42 #1886 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v64 │
00:02:42 #1887 [Verbose] > │ let v66 : num_complex_Complex<float> = method7(v1) │
00:02:42 #1888 [Verbose] > │ let v67 : string = "v66.re" │
00:02:42 #1889 [Verbose] > │ let v68 : float = Fable.Core.RustInterop.emitRustExpr () v67 │
00:02:42 #1890 [Verbose] > │ let v69 : float = 1.0 - v68 │
00:02:42 #1891 [Verbose] > │ let v70 : num_complex_Complex<float> = method8(v1) │
00:02:42 #1892 [Verbose] > │ let v71 : string = "v70.im" │
00:02:42 #1893 [Verbose] > │ let v72 : float = Fable.Core.RustInterop.emitRustExpr () v71 │
00:02:42 #1894 [Verbose] > │ let v73 : float = -v72 │
00:02:42 #1895 [Verbose] > │ let v74 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1896 [Verbose] > │ let v75 : num_complex_Complex<float> = │
00:02:42 #1897 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v69, v73) v74 │
00:02:42 #1898 [Verbose] > │ let v76 : num_complex_Complex<float> = method7(v75) │
00:02:42 #1899 [Verbose] > │ let v77 : string = "v76.re" │
00:02:42 #1900 [Verbose] > │ let v78 : float = Fable.Core.RustInterop.emitRustExpr () v77 │
00:02:42 #1901 [Verbose] > │ let v79 : bool = v78 <= 1.0 │
00:02:42 #1902 [Verbose] > │ let v474 : num_complex_Complex<float> = │
00:02:42 #1903 [Verbose] > │ if v79 then │
00:02:42 #1904 [Verbose] > │ let v80 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1905 [Verbose] > │ let v81 : num_complex_Complex<float> = │
00:02:42 #1906 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v80 │
00:02:42 #1907 [Verbose] > │ v81 │
00:02:42 #1908 [Verbose] > │ else │
00:02:42 #1909 [Verbose] > │ let v82 : string = "println!(\"zeta / count: {:?} / s: │
00:02:42 #1910 [Verbose] > │ {:?}\", 1, $0)" │
00:02:42 #1911 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr v75 v82 │
00:02:42 #1912 [Verbose] > │ let v83 : num_complex_Complex<float> = method7(v75) │
00:02:42 #1913 [Verbose] > │ let v84 : string = "v83.re" │
00:02:42 #1914 [Verbose] > │ let v85 : float = Fable.Core.RustInterop.emitRustExpr () v84 │
00:02:42 #1915 [Verbose] > │ let v86 : bool = v85 > 1.0 │
00:02:42 #1916 [Verbose] > │ if v86 then │
00:02:42 #1917 [Verbose] > │ let v87 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1918 [Verbose] > │ let v88 : num_complex_Complex<float> = │
00:02:42 #1919 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v87 │
00:02:42 #1920 [Verbose] > │ let v89 : (int32 []) = Array.zeroCreate<int32> (10000) │
00:02:42 #1921 [Verbose] > │ let v90 : Mut0 = {l0 = 0} : Mut0 │
00:02:42 #1922 [Verbose] > │ while method25(v90) do │
00:02:42 #1923 [Verbose] > │ let v92 : int32 = v90.l0 │
00:02:42 #1924 [Verbose] > │ v89.[int v92] <- v92 │
00:02:42 #1925 [Verbose] > │ let v93 : int32 = v92 + 1 │
00:02:42 #1926 [Verbose] > │ v90.l0 <- v93 │
00:02:42 #1927 [Verbose] > │ () │
00:02:42 #1928 [Verbose] > │ let v94 : int32 = v89.Length │
00:02:42 #1929 [Verbose] > │ let v95 : Mut2 = {l0 = 0; l1 = v88} : Mut2 │
00:02:42 #1930 [Verbose] > │ while method26(v94, v95) do │
00:02:42 #1931 [Verbose] > │ let v97 : int32 = v95.l0 │
00:02:42 #1932 [Verbose] > │ let v98 : num_complex_Complex<float> = v95.l1 │
00:02:42 #1933 [Verbose] > │ let v99 : int32 = v89.[int v97] │
00:02:42 #1934 [Verbose] > │ let v100 : string = "num_complex::Complex::new($0, │
00:02:42 #1935 [Verbose] > │ $1)" │
00:02:42 #1936 [Verbose] > │ let v101 : num_complex_Complex<float> = │
00:02:42 #1937 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v100 │
00:02:42 #1938 [Verbose] > │ let v102 : float = float v99 │
00:02:42 #1939 [Verbose] > │ let v103 : string = "num_complex::Complex::new($0, │
00:02:42 #1940 [Verbose] > │ $1)" │
00:02:42 #1941 [Verbose] > │ let v104 : num_complex_Complex<float> = │
00:02:42 #1942 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v102, 0.0) v103 │
00:02:42 #1943 [Verbose] > │ let v105 : num_complex_Complex<float> = │
00:02:42 #1944 [Verbose] > │ method27(v104) │
00:02:42 #1945 [Verbose] > │ let v106 : num_complex_Complex<float> = │
00:02:42 #1946 [Verbose] > │ method28(v75) │
00:02:42 #1947 [Verbose] > │ let v107 : string = │
00:02:42 #1948 [Verbose] > │ "num_complex::Complex::powc(v105, v106)" │
00:02:42 #1949 [Verbose] > │ let v108 : num_complex_Complex<float> = │
00:02:42 #1950 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v107 │
00:02:42 #1951 [Verbose] > │ let v109 : string = "v101 / v108" │
00:02:42 #1952 [Verbose] > │ let v110 : num_complex_Complex<float> = │
00:02:42 #1953 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v109 │
00:02:42 #1954 [Verbose] > │ let v111 : string = "v98 + v110" │
00:02:42 #1955 [Verbose] > │ let v112 : num_complex_Complex<float> = │
00:02:42 #1956 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v111 │
00:02:42 #1957 [Verbose] > │ let v113 : int32 = v97 + 1 │
00:02:42 #1958 [Verbose] > │ v95.l0 <- v113 │
00:02:42 #1959 [Verbose] > │ v95.l1 <- v112 │
00:02:42 #1960 [Verbose] > │ () │
00:02:42 #1961 [Verbose] > │ let v114 : num_complex_Complex<float> = v95.l1 │
00:02:42 #1962 [Verbose] > │ v114 │
00:02:42 #1963 [Verbose] > │ else │
00:02:42 #1964 [Verbose] > │ let v115 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1965 [Verbose] > │ let v116 : num_complex_Complex<float> = │
00:02:42 #1966 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v115 │
00:02:42 #1967 [Verbose] > │ let v117 : string = "$0 - $1" │
00:02:42 #1968 [Verbose] > │ let v118 : num_complex_Complex<float> = │
00:02:42 #1969 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v116, v75) v117 │
00:02:42 #1970 [Verbose] > │ let v119 : string = $" s = mpmath.gamma(s)" │
00:02:42 #1971 [Verbose] > │ let v120 : num_complex_Complex<float> = method3(v118) │
00:02:42 #1972 [Verbose] > │ let v121 : Result<num_complex_Complex<float>, │
00:02:42 #1973 [Verbose] > │ std_string_String> = method29(v0, v119, v120) │
00:02:42 #1974 [Verbose] > │ let v122 : string = "v121.ok()" │
00:02:42 #1975 [Verbose] > │ let v123 : num_complex_Complex<float> option = │
00:02:42 #1976 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v122 │
00:02:42 #1977 [Verbose] > │ let v124 : (num_complex_Complex<float> -> US0) = │
00:02:42 #1978 [Verbose] > │ method30() │
00:02:42 #1979 [Verbose] > │ let v125 : US0 = US0_1 │
00:02:42 #1980 [Verbose] > │ let v126 : US0 = v123 |> Option.map v124 |> │
00:02:42 #1981 [Verbose] > │ Option.defaultValue v125 │
00:02:42 #1982 [Verbose] > │ let v127 : string = "f64::NAN" │
00:02:42 #1983 [Verbose] > │ let v128 : float = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #1984 [Verbose] > │ () v127 │
00:02:42 #1985 [Verbose] > │ let v129 : string = "f64::NAN" │
00:02:42 #1986 [Verbose] > │ let v130 : float = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #1987 [Verbose] > │ () v129 │
00:02:42 #1988 [Verbose] > │ let v131 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1989 [Verbose] > │ let v132 : num_complex_Complex<float> = │
00:02:42 #1990 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v128, v130) v131 │
00:02:42 #1991 [Verbose] > │ let v135 : num_complex_Complex<float> = │
00:02:42 #1992 [Verbose] > │ match v126 with │
00:02:42 #1993 [Verbose] > │ | US0_1 -> (* None *) │
00:02:42 #1994 [Verbose] > │ v132 │
00:02:42 #1995 [Verbose] > │ | US0_0(v133) -> (* Some *) │
00:02:42 #1996 [Verbose] > │ v133 │
00:02:42 #1997 [Verbose] > │ let v136 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #1998 [Verbose] > │ let v137 : num_complex_Complex<float> = │
00:02:42 #1999 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v136 │
00:02:42 #2000 [Verbose] > │ let v138 : string = "$0 * $1" │
00:02:42 #2001 [Verbose] > │ let v139 : num_complex_Complex<float> = │
00:02:42 #2002 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v137, v75) v138 │
00:02:42 #2003 [Verbose] > │ let v140 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #2004 [Verbose] > │ let v141 : num_complex_Complex<float> = │
00:02:42 #2005 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v140 │
00:02:42 #2006 [Verbose] > │ let v142 : string = "v139 / v141" │
00:02:42 #2007 [Verbose] > │ let v143 : num_complex_Complex<float> = │
00:02:42 #2008 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v142 │
00:02:42 #2009 [Verbose] > │ let v144 : string = "v143.sin()" │
00:02:42 #2010 [Verbose] > │ let v145 : num_complex_Complex<float> = │
00:02:42 #2011 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v144 │
00:02:42 #2012 [Verbose] > │ let v146 : num_complex_Complex<float> = method7(v75) │
00:02:42 #2013 [Verbose] > │ let v147 : string = "v146.re" │
00:02:42 #2014 [Verbose] > │ let v148 : float = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #2015 [Verbose] > │ () v147 │
00:02:42 #2016 [Verbose] > │ let v149 : float = 1.0 - v148 │
00:02:42 #2017 [Verbose] > │ let v150 : num_complex_Complex<float> = method8(v75) │
00:02:42 #2018 [Verbose] > │ let v151 : string = "v150.im" │
00:02:42 #2019 [Verbose] > │ let v152 : float = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #2020 [Verbose] > │ () v151 │
00:02:42 #2021 [Verbose] > │ let v153 : float = -v152 │
00:02:42 #2022 [Verbose] > │ let v154 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #2023 [Verbose] > │ let v155 : num_complex_Complex<float> = │
00:02:42 #2024 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v149, v153) v154 │
00:02:42 #2025 [Verbose] > │ let v156 : num_complex_Complex<float> = method7(v155) │
00:02:42 #2026 [Verbose] > │ let v157 : string = "v156.re" │
00:02:42 #2027 [Verbose] > │ let v158 : float = Fable.Core.RustInterop.emitRustExpr │
00:02:42 #2028 [Verbose] > │ () v157 │
00:02:42 #2029 [Verbose] > │ let v159 : bool = v158 <= 1.0 │
00:02:42 #2030 [Verbose] > │ let v456 : num_complex_Complex<float> = │
00:02:42 #2031 [Verbose] > │ if v159 then │
00:02:42 #2032 [Verbose] > │ let v160 : string = │
00:02:42 #2033 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2034 [Verbose] > │ let v161 : num_complex_Complex<float> = │
00:02:42 #2035 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v160 │
00:02:42 #2036 [Verbose] > │ v161 │
00:02:42 #2037 [Verbose] > │ else │
00:02:42 #2038 [Verbose] > │ let v162 : string = "println!(\"zeta / count: │
00:02:42 #2039 [Verbose] > │ {:?} / s: {:?}\", 2, $0)" │
00:02:42 #2040 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr v155 v162 │
00:02:42 #2041 [Verbose] > │ let v163 : num_complex_Complex<float> = │
00:02:42 #2042 [Verbose] > │ method7(v155) │
00:02:42 #2043 [Verbose] > │ let v164 : string = "v163.re" │
00:02:42 #2044 [Verbose] > │ let v165 : float = │
00:02:42 #2045 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v164 │
00:02:42 #2046 [Verbose] > │ let v166 : bool = v165 > 1.0 │
00:02:42 #2047 [Verbose] > │ if v166 then │
00:02:42 #2048 [Verbose] > │ let v167 : string = │
00:02:42 #2049 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2050 [Verbose] > │ let v168 : num_complex_Complex<float> = │
00:02:42 #2051 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v167 │
00:02:42 #2052 [Verbose] > │ let v169 : (int32 []) = │
00:02:42 #2053 [Verbose] > │ Array.zeroCreate<int32> (10000) │
00:02:42 #2054 [Verbose] > │ let v170 : Mut0 = {l0 = 0} : Mut0 │
00:02:42 #2055 [Verbose] > │ while method25(v170) do │
00:02:42 #2056 [Verbose] > │ let v172 : int32 = v170.l0 │
00:02:42 #2057 [Verbose] > │ v169.[int v172] <- v172 │
00:02:42 #2058 [Verbose] > │ let v173 : int32 = v172 + 1 │
00:02:42 #2059 [Verbose] > │ v170.l0 <- v173 │
00:02:42 #2060 [Verbose] > │ () │
00:02:42 #2061 [Verbose] > │ let v174 : int32 = v169.Length │
00:02:42 #2062 [Verbose] > │ let v175 : Mut2 = {l0 = 0; l1 = v168} : Mut2 │
00:02:42 #2063 [Verbose] > │ while method26(v174, v175) do │
00:02:42 #2064 [Verbose] > │ let v177 : int32 = v175.l0 │
00:02:42 #2065 [Verbose] > │ let v178 : num_complex_Complex<float> = │
00:02:42 #2066 [Verbose] > │ v175.l1 │
00:02:42 #2067 [Verbose] > │ let v179 : int32 = v169.[int v177] │
00:02:42 #2068 [Verbose] > │ let v180 : string = │
00:02:42 #2069 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2070 [Verbose] > │ let v181 : num_complex_Complex<float> = │
00:02:42 #2071 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v180 │
00:02:42 #2072 [Verbose] > │ let v182 : float = float v179 │
00:02:42 #2073 [Verbose] > │ let v183 : string = │
00:02:42 #2074 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2075 [Verbose] > │ let v184 : num_complex_Complex<float> = │
00:02:42 #2076 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v182, 0.0) v183 │
00:02:42 #2077 [Verbose] > │ let v185 : num_complex_Complex<float> = │
00:02:42 #2078 [Verbose] > │ method27(v184) │
00:02:42 #2079 [Verbose] > │ let v186 : num_complex_Complex<float> = │
00:02:42 #2080 [Verbose] > │ method28(v155) │
00:02:42 #2081 [Verbose] > │ let v187 : string = │
00:02:42 #2082 [Verbose] > │ "num_complex::Complex::powc(v185, v186)" │
00:02:42 #2083 [Verbose] > │ let v188 : num_complex_Complex<float> = │
00:02:42 #2084 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v187 │
00:02:42 #2085 [Verbose] > │ let v189 : string = "v181 / v188" │
00:02:42 #2086 [Verbose] > │ let v190 : num_complex_Complex<float> = │
00:02:42 #2087 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v189 │
00:02:42 #2088 [Verbose] > │ let v191 : string = "v178 + v190" │
00:02:42 #2089 [Verbose] > │ let v192 : num_complex_Complex<float> = │
00:02:42 #2090 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v191 │
00:02:42 #2091 [Verbose] > │ let v193 : int32 = v177 + 1 │
00:02:42 #2092 [Verbose] > │ v175.l0 <- v193 │
00:02:42 #2093 [Verbose] > │ v175.l1 <- v192 │
00:02:42 #2094 [Verbose] > │ () │
00:02:42 #2095 [Verbose] > │ let v194 : num_complex_Complex<float> = │
00:02:42 #2096 [Verbose] > │ v175.l1 │
00:02:42 #2097 [Verbose] > │ v194 │
00:02:42 #2098 [Verbose] > │ else │
00:02:42 #2099 [Verbose] > │ let v195 : string = │
00:02:42 #2100 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2101 [Verbose] > │ let v196 : num_complex_Complex<float> = │
00:02:42 #2102 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v195 │
00:02:42 #2103 [Verbose] > │ let v197 : string = "$0 - $1" │
00:02:42 #2104 [Verbose] > │ let v198 : num_complex_Complex<float> = │
00:02:42 #2105 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v196, v155) v197 │
00:02:42 #2106 [Verbose] > │ let v199 : string = $" s = │
00:02:42 #2107 [Verbose] > │ mpmath.gamma(s)" │
00:02:42 #2108 [Verbose] > │ let v200 : num_complex_Complex<float> = │
00:02:42 #2109 [Verbose] > │ method3(v198) │
00:02:42 #2110 [Verbose] > │ let v201 : │
00:02:42 #2111 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method29(v0, v199, │
00:02:42 #2112 [Verbose] > │ v200) │
00:02:42 #2113 [Verbose] > │ let v202 : string = "v201.ok()" │
00:02:42 #2114 [Verbose] > │ let v203 : num_complex_Complex<float> option │
00:02:42 #2115 [Verbose] > │ = Fable.Core.RustInterop.emitRustExpr () v202 │
00:02:42 #2116 [Verbose] > │ let v204 : (num_complex_Complex<float> -> │
00:02:42 #2117 [Verbose] > │ US0) = method30() │
00:02:42 #2118 [Verbose] > │ let v205 : US0 = US0_1 │
00:02:42 #2119 [Verbose] > │ let v206 : US0 = v203 |> Option.map v204 |> │
00:02:42 #2120 [Verbose] > │ Option.defaultValue v205 │
00:02:42 #2121 [Verbose] > │ let v207 : string = "f64::NAN" │
00:02:42 #2122 [Verbose] > │ let v208 : float = │
00:02:42 #2123 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v207 │
00:02:42 #2124 [Verbose] > │ let v209 : string = "f64::NAN" │
00:02:42 #2125 [Verbose] > │ let v210 : float = │
00:02:42 #2126 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v209 │
00:02:42 #2127 [Verbose] > │ let v211 : string = │
00:02:42 #2128 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2129 [Verbose] > │ let v212 : num_complex_Complex<float> = │
00:02:42 #2130 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v208, v210) v211 │
00:02:42 #2131 [Verbose] > │ let v215 : num_complex_Complex<float> = │
00:02:42 #2132 [Verbose] > │ match v206 with │
00:02:42 #2133 [Verbose] > │ | US0_1 -> (* None *) │
00:02:42 #2134 [Verbose] > │ v212 │
00:02:42 #2135 [Verbose] > │ | US0_0(v213) -> (* Some *) │
00:02:42 #2136 [Verbose] > │ v213 │
00:02:42 #2137 [Verbose] > │ let v216 : string = │
00:02:42 #2138 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2139 [Verbose] > │ let v217 : num_complex_Complex<float> = │
00:02:42 #2140 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v216 │
00:02:42 #2141 [Verbose] > │ let v218 : string = "$0 * $1" │
00:02:42 #2142 [Verbose] > │ let v219 : num_complex_Complex<float> = │
00:02:42 #2143 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v217, v155) v218 │
00:02:42 #2144 [Verbose] > │ let v220 : string = │
00:02:42 #2145 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2146 [Verbose] > │ let v221 : num_complex_Complex<float> = │
00:02:42 #2147 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v220 │
00:02:42 #2148 [Verbose] > │ let v222 : string = "v219 / v221" │
00:02:42 #2149 [Verbose] > │ let v223 : num_complex_Complex<float> = │
00:02:42 #2150 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v222 │
00:02:42 #2151 [Verbose] > │ let v224 : string = "v223.sin()" │
00:02:42 #2152 [Verbose] > │ let v225 : num_complex_Complex<float> = │
00:02:42 #2153 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v224 │
00:02:42 #2154 [Verbose] > │ let v226 : num_complex_Complex<float> = │
00:02:42 #2155 [Verbose] > │ method7(v155) │
00:02:42 #2156 [Verbose] > │ let v227 : string = "v226.re" │
00:02:42 #2157 [Verbose] > │ let v228 : float = │
00:02:42 #2158 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v227 │
00:02:42 #2159 [Verbose] > │ let v229 : float = 1.0 - v228 │
00:02:42 #2160 [Verbose] > │ let v230 : num_complex_Complex<float> = │
00:02:42 #2161 [Verbose] > │ method8(v155) │
00:02:42 #2162 [Verbose] > │ let v231 : string = "v230.im" │
00:02:42 #2163 [Verbose] > │ let v232 : float = │
00:02:42 #2164 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v231 │
00:02:42 #2165 [Verbose] > │ let v233 : float = -v232 │
00:02:42 #2166 [Verbose] > │ let v234 : string = │
00:02:42 #2167 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2168 [Verbose] > │ let v235 : num_complex_Complex<float> = │
00:02:42 #2169 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v229, v233) v234 │
00:02:42 #2170 [Verbose] > │ let v236 : num_complex_Complex<float> = │
00:02:42 #2171 [Verbose] > │ method7(v235) │
00:02:42 #2172 [Verbose] > │ let v237 : string = "v236.re" │
00:02:42 #2173 [Verbose] > │ let v238 : float = │
00:02:42 #2174 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v237 │
00:02:42 #2175 [Verbose] > │ let v239 : bool = v238 <= 1.0 │
00:02:42 #2176 [Verbose] > │ let v438 : num_complex_Complex<float> = │
00:02:42 #2177 [Verbose] > │ if v239 then │
00:02:42 #2178 [Verbose] > │ let v240 : string = │
00:02:42 #2179 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2180 [Verbose] > │ let v241 : │
00:02:42 #2181 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2182 [Verbose] > │ (0.0, 0.0) v240 │
00:02:42 #2183 [Verbose] > │ v241 │
00:02:42 #2184 [Verbose] > │ else │
00:02:42 #2185 [Verbose] > │ let v242 : string = "println!(\"zeta │
00:02:42 #2186 [Verbose] > │ / count: {:?} / s: {:?}\", 3, $0)" │
00:02:42 #2187 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr │
00:02:42 #2188 [Verbose] > │ v235 v242 │
00:02:42 #2189 [Verbose] > │ let v243 : │
00:02:42 #2190 [Verbose] > │ num_complex_Complex<float> = method7(v235) │
00:02:42 #2191 [Verbose] > │ let v244 : string = "v243.re" │
00:02:42 #2192 [Verbose] > │ let v245 : float = │
00:02:42 #2193 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v244 │
00:02:42 #2194 [Verbose] > │ let v246 : bool = v245 > 1.0 │
00:02:42 #2195 [Verbose] > │ if v246 then │
00:02:42 #2196 [Verbose] > │ let v247 : string = │
00:02:42 #2197 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2198 [Verbose] > │ let v248 : │
00:02:42 #2199 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2200 [Verbose] > │ (0.0, 0.0) v247 │
00:02:42 #2201 [Verbose] > │ let v249 : (int32 []) = │
00:02:42 #2202 [Verbose] > │ Array.zeroCreate<int32> (10000) │
00:02:42 #2203 [Verbose] > │ let v250 : Mut0 = {l0 = 0} : │
00:02:42 #2204 [Verbose] > │ Mut0 │
00:02:42 #2205 [Verbose] > │ while method25(v250) do │
00:02:42 #2206 [Verbose] > │ let v252 : int32 = v250.l0 │
00:02:42 #2207 [Verbose] > │ v249.[int v252] <- v252 │
00:02:42 #2208 [Verbose] > │ let v253 : int32 = v252 + 1 │
00:02:42 #2209 [Verbose] > │ v250.l0 <- v253 │
00:02:42 #2210 [Verbose] > │ () │
00:02:42 #2211 [Verbose] > │ let v254 : int32 = v249.Length │
00:02:42 #2212 [Verbose] > │ let v255 : Mut2 = {l0 = 0; l1 = │
00:02:42 #2213 [Verbose] > │ v248} : Mut2 │
00:02:42 #2214 [Verbose] > │ while method26(v254, v255) do │
00:02:42 #2215 [Verbose] > │ let v257 : int32 = v255.l0 │
00:02:42 #2216 [Verbose] > │ let v258 : │
00:02:42 #2217 [Verbose] > │ num_complex_Complex<float> = v255.l1 │
00:02:42 #2218 [Verbose] > │ let v259 : int32 = v249.[int │
00:02:42 #2219 [Verbose] > │ v257] │
00:02:42 #2220 [Verbose] > │ let v260 : string = │
00:02:42 #2221 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2222 [Verbose] > │ let v261 : │
00:02:42 #2223 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2224 [Verbose] > │ (1.0, 0.0) v260 │
00:02:42 #2225 [Verbose] > │ let v262 : float = float │
00:02:42 #2226 [Verbose] > │ v259 │
00:02:42 #2227 [Verbose] > │ let v263 : string = │
00:02:42 #2228 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2229 [Verbose] > │ let v264 : │
00:02:42 #2230 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2231 [Verbose] > │ (v262, 0.0) v263 │
00:02:42 #2232 [Verbose] > │ let v265 : │
00:02:42 #2233 [Verbose] > │ num_complex_Complex<float> = method27(v264) │
00:02:42 #2234 [Verbose] > │ let v266 : │
00:02:42 #2235 [Verbose] > │ num_complex_Complex<float> = method28(v235) │
00:02:42 #2236 [Verbose] > │ let v267 : string = │
00:02:42 #2237 [Verbose] > │ "num_complex::Complex::powc(v265, v266)" │
00:02:42 #2238 [Verbose] > │ let v268 : │
00:02:42 #2239 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v267 │
00:02:42 #2240 [Verbose] > │ let v269 : string = "v261 / │
00:02:42 #2241 [Verbose] > │ v268" │
00:02:42 #2242 [Verbose] > │ let v270 : │
00:02:42 #2243 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v269 │
00:02:42 #2244 [Verbose] > │ let v271 : string = "v258 + │
00:02:42 #2245 [Verbose] > │ v270" │
00:02:42 #2246 [Verbose] > │ let v272 : │
00:02:42 #2247 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v271 │
00:02:42 #2248 [Verbose] > │ let v273 : int32 = v257 + 1 │
00:02:42 #2249 [Verbose] > │ v255.l0 <- v273 │
00:02:42 #2250 [Verbose] > │ v255.l1 <- v272 │
00:02:42 #2251 [Verbose] > │ () │
00:02:42 #2252 [Verbose] > │ let v274 : │
00:02:42 #2253 [Verbose] > │ num_complex_Complex<float> = v255.l1 │
00:02:42 #2254 [Verbose] > │ v274 │
00:02:42 #2255 [Verbose] > │ else │
00:02:42 #2256 [Verbose] > │ let v275 : string = │
00:02:42 #2257 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2258 [Verbose] > │ let v276 : │
00:02:42 #2259 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2260 [Verbose] > │ (1.0, 0.0) v275 │
00:02:42 #2261 [Verbose] > │ let v277 : string = "$0 - $1" │
00:02:42 #2262 [Verbose] > │ let v278 : │
00:02:42 #2263 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2264 [Verbose] > │ (v276, v235) v277 │
00:02:42 #2265 [Verbose] > │ let v279 : string = $" s │
00:02:42 #2266 [Verbose] > │ = mpmath.gamma(s)" │
00:02:42 #2267 [Verbose] > │ let v280 : │
00:02:42 #2268 [Verbose] > │ num_complex_Complex<float> = method3(v278) │
00:02:42 #2269 [Verbose] > │ let v281 : │
00:02:42 #2270 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method29(v0, v279, │
00:02:42 #2271 [Verbose] > │ v280) │
00:02:42 #2272 [Verbose] > │ let v282 : string = "v281.ok()" │
00:02:42 #2273 [Verbose] > │ let v283 : │
00:02:42 #2274 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr () │
00:02:42 #2275 [Verbose] > │ v282 │
00:02:42 #2276 [Verbose] > │ let v284 : │
00:02:42 #2277 [Verbose] > │ (num_complex_Complex<float> -> US0) = method30() │
00:02:42 #2278 [Verbose] > │ let v285 : US0 = US0_1 │
00:02:42 #2279 [Verbose] > │ let v286 : US0 = v283 |> │
00:02:42 #2280 [Verbose] > │ Option.map v284 |> Option.defaultValue v285 │
00:02:42 #2281 [Verbose] > │ let v287 : string = "f64::NAN" │
00:02:42 #2282 [Verbose] > │ let v288 : float = │
00:02:42 #2283 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v287 │
00:02:42 #2284 [Verbose] > │ let v289 : string = "f64::NAN" │
00:02:42 #2285 [Verbose] > │ let v290 : float = │
00:02:42 #2286 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v289 │
00:02:42 #2287 [Verbose] > │ let v291 : string = │
00:02:42 #2288 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2289 [Verbose] > │ let v292 : │
00:02:42 #2290 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2291 [Verbose] > │ (v288, v290) v291 │
00:02:42 #2292 [Verbose] > │ let v295 : │
00:02:42 #2293 [Verbose] > │ num_complex_Complex<float> = │
00:02:42 #2294 [Verbose] > │ match v286 with │
00:02:42 #2295 [Verbose] > │ | US0_1 -> (* None *) │
00:02:42 #2296 [Verbose] > │ v292 │
00:02:42 #2297 [Verbose] > │ | US0_0(v293) -> (* Some *) │
00:02:42 #2298 [Verbose] > │ v293 │
00:02:42 #2299 [Verbose] > │ let v296 : string = │
00:02:42 #2300 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2301 [Verbose] > │ let v297 : │
00:02:42 #2302 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2303 [Verbose] > │ (3.141592653589793, 0.0) v296 │
00:02:42 #2304 [Verbose] > │ let v298 : string = "$0 * $1" │
00:02:42 #2305 [Verbose] > │ let v299 : │
00:02:42 #2306 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2307 [Verbose] > │ (v297, v235) v298 │
00:02:42 #2308 [Verbose] > │ let v300 : string = │
00:02:42 #2309 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2310 [Verbose] > │ let v301 : │
00:02:42 #2311 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2312 [Verbose] > │ (2.0, 0.0) v300 │
00:02:42 #2313 [Verbose] > │ let v302 : string = "v299 / │
00:02:42 #2314 [Verbose] > │ v301" │
00:02:42 #2315 [Verbose] > │ let v303 : │
00:02:42 #2316 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v302 │
00:02:42 #2317 [Verbose] > │ let v304 : string = "v303.sin()" │
00:02:42 #2318 [Verbose] > │ let v305 : │
00:02:42 #2319 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v304 │
00:02:42 #2320 [Verbose] > │ let v306 : │
00:02:42 #2321 [Verbose] > │ num_complex_Complex<float> = method7(v235) │
00:02:42 #2322 [Verbose] > │ let v307 : string = "v306.re" │
00:02:42 #2323 [Verbose] > │ let v308 : float = │
00:02:42 #2324 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v307 │
00:02:42 #2325 [Verbose] > │ let v309 : float = 1.0 - v308 │
00:02:42 #2326 [Verbose] > │ let v310 : │
00:02:42 #2327 [Verbose] > │ num_complex_Complex<float> = method8(v235) │
00:02:42 #2328 [Verbose] > │ let v311 : string = "v310.im" │
00:02:42 #2329 [Verbose] > │ let v312 : float = │
00:02:42 #2330 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v311 │
00:02:42 #2331 [Verbose] > │ let v313 : float = -v312 │
00:02:42 #2332 [Verbose] > │ let v314 : string = │
00:02:42 #2333 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2334 [Verbose] > │ let v315 : │
00:02:42 #2335 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2336 [Verbose] > │ (v309, v313) v314 │
00:02:42 #2337 [Verbose] > │ let v316 : │
00:02:42 #2338 [Verbose] > │ num_complex_Complex<float> = method7(v315) │
00:02:42 #2339 [Verbose] > │ let v317 : string = "v316.re" │
00:02:42 #2340 [Verbose] > │ let v318 : float = │
00:02:42 #2341 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v317 │
00:02:42 #2342 [Verbose] > │ let v319 : bool = v318 <= 1.0 │
00:02:42 #2343 [Verbose] > │ let v420 : │
00:02:42 #2344 [Verbose] > │ num_complex_Complex<float> = │
00:02:42 #2345 [Verbose] > │ if v319 then │
00:02:42 #2346 [Verbose] > │ let v320 : string = │
00:02:42 #2347 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2348 [Verbose] > │ let v321 : │
00:02:42 #2349 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2350 [Verbose] > │ (0.0, 0.0) v320 │
00:02:42 #2351 [Verbose] > │ v321 │
00:02:42 #2352 [Verbose] > │ else │
00:02:42 #2353 [Verbose] > │ let v322 : string = │
00:02:42 #2354 [Verbose] > │ "println!(\"zeta / count: {:?} / s: {:?}\", 4, $0)" │
00:02:42 #2355 [Verbose] > │ │
00:02:42 #2356 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr v315 v322 │
00:02:42 #2357 [Verbose] > │ let v323 : │
00:02:42 #2358 [Verbose] > │ num_complex_Complex<float> = method7(v315) │
00:02:42 #2359 [Verbose] > │ let v324 : string = │
00:02:42 #2360 [Verbose] > │ "v323.re" │
00:02:42 #2361 [Verbose] > │ let v325 : float = │
00:02:42 #2362 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v324 │
00:02:42 #2363 [Verbose] > │ let v326 : bool = v325 > │
00:02:42 #2364 [Verbose] > │ 1.0 │
00:02:42 #2365 [Verbose] > │ if v326 then │
00:02:42 #2366 [Verbose] > │ let v327 : string = │
00:02:42 #2367 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2368 [Verbose] > │ let v328 : │
00:02:42 #2369 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2370 [Verbose] > │ (0.0, 0.0) v327 │
00:02:42 #2371 [Verbose] > │ let v329 : (int32 [ │
00:02:42 #2372 [Verbose] > │ ]) = Array.zeroCreate<int32> (10000) │
00:02:42 #2373 [Verbose] > │ let v330 : Mut0 = │
00:02:42 #2374 [Verbose] > │ {l0 = 0} : Mut0 │
00:02:42 #2375 [Verbose] > │ while method25(v330) │
00:02:42 #2376 [Verbose] > │ do │
00:02:42 #2377 [Verbose] > │ let v332 : int32 │
00:02:42 #2378 [Verbose] > │ = v330.l0 │
00:02:42 #2379 [Verbose] > │ v329.[int v332] │
00:02:42 #2380 [Verbose] > │ <- v332 │
00:02:42 #2381 [Verbose] > │ let v333 : int32 │
00:02:42 #2382 [Verbose] > │ = v332 + 1 │
00:02:42 #2383 [Verbose] > │ v330.l0 <- v333 │
00:02:42 #2384 [Verbose] > │ () │
00:02:42 #2385 [Verbose] > │ let v334 : int32 = │
00:02:42 #2386 [Verbose] > │ v329.Length │
00:02:42 #2387 [Verbose] > │ let v335 : Mut2 = │
00:02:42 #2388 [Verbose] > │ {l0 = 0; l1 = v328} : Mut2 │
00:02:42 #2389 [Verbose] > │ while method26(v334, │
00:02:42 #2390 [Verbose] > │ v335) do │
00:02:42 #2391 [Verbose] > │ let v337 : int32 │
00:02:42 #2392 [Verbose] > │ = v335.l0 │
00:02:42 #2393 [Verbose] > │ let v338 : │
00:02:42 #2394 [Verbose] > │ num_complex_Complex<float> = v335.l1 │
00:02:42 #2395 [Verbose] > │ let v339 : int32 │
00:02:42 #2396 [Verbose] > │ = v329.[int v337] │
00:02:42 #2397 [Verbose] > │ let v340 : │
00:02:42 #2398 [Verbose] > │ string = "num_complex::Complex::new($0, $1)" │
00:02:42 #2399 [Verbose] > │ let v341 : │
00:02:42 #2400 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2401 [Verbose] > │ (1.0, 0.0) v340 │
00:02:42 #2402 [Verbose] > │ let v342 : float │
00:02:42 #2403 [Verbose] > │ = float v339 │
00:02:42 #2404 [Verbose] > │ let v343 : │
00:02:42 #2405 [Verbose] > │ string = "num_complex::Complex::new($0, $1)" │
00:02:42 #2406 [Verbose] > │ let v344 : │
00:02:42 #2407 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2408 [Verbose] > │ (v342, 0.0) v343 │
00:02:42 #2409 [Verbose] > │ let v345 : │
00:02:42 #2410 [Verbose] > │ num_complex_Complex<float> = method27(v344) │
00:02:42 #2411 [Verbose] > │ let v346 : │
00:02:42 #2412 [Verbose] > │ num_complex_Complex<float> = method28(v315) │
00:02:42 #2413 [Verbose] > │ let v347 : │
00:02:42 #2414 [Verbose] > │ string = "num_complex::Complex::powc(v345, v346)" │
00:02:42 #2415 [Verbose] > │ let v348 : │
00:02:42 #2416 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v347 │
00:02:42 #2417 [Verbose] > │ let v349 : │
00:02:42 #2418 [Verbose] > │ string = "v341 / v348" │
00:02:42 #2419 [Verbose] > │ let v350 : │
00:02:42 #2420 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v349 │
00:02:42 #2421 [Verbose] > │ let v351 : │
00:02:42 #2422 [Verbose] > │ string = "v338 + v350" │
00:02:42 #2423 [Verbose] > │ let v352 : │
00:02:42 #2424 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v351 │
00:02:42 #2425 [Verbose] > │ let v353 : int32 │
00:02:42 #2426 [Verbose] > │ = v337 + 1 │
00:02:42 #2427 [Verbose] > │ v335.l0 <- v353 │
00:02:42 #2428 [Verbose] > │ v335.l1 <- v352 │
00:02:42 #2429 [Verbose] > │ () │
00:02:42 #2430 [Verbose] > │ let v354 : │
00:02:42 #2431 [Verbose] > │ num_complex_Complex<float> = v335.l1 │
00:02:42 #2432 [Verbose] > │ v354 │
00:02:42 #2433 [Verbose] > │ else │
00:02:42 #2434 [Verbose] > │ let v355 : string = │
00:02:42 #2435 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2436 [Verbose] > │ let v356 : │
00:02:42 #2437 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2438 [Verbose] > │ (1.0, 0.0) v355 │
00:02:42 #2439 [Verbose] > │ let v357 : string = │
00:02:42 #2440 [Verbose] > │ "$0 - $1" │
00:02:42 #2441 [Verbose] > │ let v358 : │
00:02:42 #2442 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2443 [Verbose] > │ (v356, v315) v357 │
00:02:42 #2444 [Verbose] > │ let v359 : string = │
00:02:42 #2445 [Verbose] > │ $" s = mpmath.gamma(s)" │
00:02:42 #2446 [Verbose] > │ let v360 : │
00:02:42 #2447 [Verbose] > │ num_complex_Complex<float> = method3(v358) │
00:02:42 #2448 [Verbose] > │ let v361 : │
00:02:42 #2449 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method29(v0, v359, │
00:02:42 #2450 [Verbose] > │ v360) │
00:02:42 #2451 [Verbose] > │ let v362 : string = │
00:02:42 #2452 [Verbose] > │ "v361.ok()" │
00:02:42 #2453 [Verbose] > │ let v363 : │
00:02:42 #2454 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr () │
00:02:42 #2455 [Verbose] > │ v362 │
00:02:42 #2456 [Verbose] > │ let v364 : │
00:02:42 #2457 [Verbose] > │ (num_complex_Complex<float> -> US0) = method30() │
00:02:42 #2458 [Verbose] > │ let v365 : US0 = │
00:02:42 #2459 [Verbose] > │ US0_1 │
00:02:42 #2460 [Verbose] > │ let v366 : US0 = │
00:02:42 #2461 [Verbose] > │ v363 |> Option.map v364 |> Option.defaultValue v365 │
00:02:42 #2462 [Verbose] > │ let v367 : string = │
00:02:42 #2463 [Verbose] > │ "f64::NAN" │
00:02:42 #2464 [Verbose] > │ let v368 : float = │
00:02:42 #2465 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v367 │
00:02:42 #2466 [Verbose] > │ let v369 : string = │
00:02:42 #2467 [Verbose] > │ "f64::NAN" │
00:02:42 #2468 [Verbose] > │ let v370 : float = │
00:02:42 #2469 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v369 │
00:02:42 #2470 [Verbose] > │ let v371 : string = │
00:02:42 #2471 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2472 [Verbose] > │ let v372 : │
00:02:42 #2473 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2474 [Verbose] > │ (v368, v370) v371 │
00:02:42 #2475 [Verbose] > │ let v375 : │
00:02:42 #2476 [Verbose] > │ num_complex_Complex<float> = │
00:02:42 #2477 [Verbose] > │ match v366 with │
00:02:42 #2478 [Verbose] > │ | US0_1 -> (* │
00:02:42 #2479 [Verbose] > │ None *) │
00:02:42 #2480 [Verbose] > │ v372 │
00:02:42 #2481 [Verbose] > │ | US0_0(v373) -> │
00:02:42 #2482 [Verbose] > │ (* Some *) │
00:02:42 #2483 [Verbose] > │ v373 │
00:02:42 #2484 [Verbose] > │ let v376 : string = │
00:02:42 #2485 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2486 [Verbose] > │ let v377 : │
00:02:42 #2487 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2488 [Verbose] > │ (3.141592653589793, 0.0) v376 │
00:02:42 #2489 [Verbose] > │ let v378 : string = │
00:02:42 #2490 [Verbose] > │ "$0 * $1" │
00:02:42 #2491 [Verbose] > │ let v379 : │
00:02:42 #2492 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2493 [Verbose] > │ (v377, v315) v378 │
00:02:42 #2494 [Verbose] > │ let v380 : string = │
00:02:42 #2495 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2496 [Verbose] > │ let v381 : │
00:02:42 #2497 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2498 [Verbose] > │ (2.0, 0.0) v380 │
00:02:42 #2499 [Verbose] > │ let v382 : string = │
00:02:42 #2500 [Verbose] > │ "v379 / v381" │
00:02:42 #2501 [Verbose] > │ let v383 : │
00:02:42 #2502 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v382 │
00:02:42 #2503 [Verbose] > │ let v384 : string = │
00:02:42 #2504 [Verbose] > │ "v383.sin()" │
00:02:42 #2505 [Verbose] > │ let v385 : │
00:02:42 #2506 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v384 │
00:02:42 #2507 [Verbose] > │ let v386 : │
00:02:42 #2508 [Verbose] > │ num_complex_Complex<float> = method7(v315) │
00:02:42 #2509 [Verbose] > │ let v387 : string = │
00:02:42 #2510 [Verbose] > │ "v386.re" │
00:02:42 #2511 [Verbose] > │ let v388 : float = │
00:02:42 #2512 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v387 │
00:02:42 #2513 [Verbose] > │ let v389 : float = │
00:02:42 #2514 [Verbose] > │ 1.0 - v388 │
00:02:42 #2515 [Verbose] > │ let v390 : │
00:02:42 #2516 [Verbose] > │ num_complex_Complex<float> = method8(v315) │
00:02:42 #2517 [Verbose] > │ let v391 : string = │
00:02:42 #2518 [Verbose] > │ "v390.im" │
00:02:42 #2519 [Verbose] > │ let v392 : float = │
00:02:42 #2520 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v391 │
00:02:42 #2521 [Verbose] > │ let v393 : float = │
00:02:42 #2522 [Verbose] > │ -v392 │
00:02:42 #2523 [Verbose] > │ let v394 : string = │
00:02:42 #2524 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2525 [Verbose] > │ let v395 : │
00:02:42 #2526 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2527 [Verbose] > │ (v389, v393) v394 │
00:02:42 #2528 [Verbose] > │ let v396 : │
00:02:42 #2529 [Verbose] > │ num_complex_Complex<float> = method7(v395) │
00:02:42 #2530 [Verbose] > │ let v397 : string = │
00:02:42 #2531 [Verbose] > │ "v396.re" │
00:02:42 #2532 [Verbose] > │ let v398 : float = │
00:02:42 #2533 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v397 │
00:02:42 #2534 [Verbose] > │ let v399 : bool = │
00:02:42 #2535 [Verbose] > │ v398 <= 1.0 │
00:02:42 #2536 [Verbose] > │ let v402 : │
00:02:42 #2537 [Verbose] > │ num_complex_Complex<float> = │
00:02:42 #2538 [Verbose] > │ if v399 then │
00:02:42 #2539 [Verbose] > │ let v400 : │
00:02:42 #2540 [Verbose] > │ string = "num_complex::Complex::new($0, $1)" │
00:02:42 #2541 [Verbose] > │ let v401 : │
00:02:42 #2542 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2543 [Verbose] > │ (0.0, 0.0) v400 │
00:02:42 #2544 [Verbose] > │ v401 │
00:02:42 #2545 [Verbose] > │ else │
00:02:42 #2546 [Verbose] > │ v395 │
00:02:42 #2547 [Verbose] > │ let v403 : string = │
00:02:42 #2548 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2549 [Verbose] > │ let v404 : │
00:02:42 #2550 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2551 [Verbose] > │ (2.0, 0.0) v403 │
00:02:42 #2552 [Verbose] > │ let v405 : string = │
00:02:42 #2553 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2554 [Verbose] > │ let v406 : │
00:02:42 #2555 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2556 [Verbose] > │ (3.141592653589793, 0.0) v405 │
00:02:42 #2557 [Verbose] > │ let v407 : │
00:02:42 #2558 [Verbose] > │ num_complex_Complex<float> = method27(v406) │
00:02:42 #2559 [Verbose] > │ let v408 : │
00:02:42 #2560 [Verbose] > │ num_complex_Complex<float> = method28(v315) │
00:02:42 #2561 [Verbose] > │ let v409 : string = │
00:02:42 #2562 [Verbose] > │ "num_complex::Complex::powc(v407, v408)" │
00:02:42 #2563 [Verbose] > │ let v410 : │
00:02:42 #2564 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v409 │
00:02:42 #2565 [Verbose] > │ let v411 : string = │
00:02:42 #2566 [Verbose] > │ "$0 * $1" │
00:02:42 #2567 [Verbose] > │ let v412 : │
00:02:42 #2568 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2569 [Verbose] > │ (v404, v410) v411 │
00:02:42 #2570 [Verbose] > │ let v413 : string = │
00:02:42 #2571 [Verbose] > │ "$0 * $1" │
00:02:42 #2572 [Verbose] > │ let v414 : │
00:02:42 #2573 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2574 [Verbose] > │ (v412, v385) v413 │
00:02:42 #2575 [Verbose] > │ let v415 : string = │
00:02:42 #2576 [Verbose] > │ "$0 * $1" │
00:02:42 #2577 [Verbose] > │ let v416 : │
00:02:42 #2578 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2579 [Verbose] > │ (v414, v375) v415 │
00:02:42 #2580 [Verbose] > │ let v417 : string = │
00:02:42 #2581 [Verbose] > │ "$0 * $1" │
00:02:42 #2582 [Verbose] > │ let v418 : │
00:02:42 #2583 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2584 [Verbose] > │ (v416, v402) v417 │
00:02:42 #2585 [Verbose] > │ v418 │
00:02:42 #2586 [Verbose] > │ let v421 : string = │
00:02:42 #2587 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2588 [Verbose] > │ let v422 : │
00:02:42 #2589 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2590 [Verbose] > │ (2.0, 0.0) v421 │
00:02:42 #2591 [Verbose] > │ let v423 : string = │
00:02:42 #2592 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2593 [Verbose] > │ let v424 : │
00:02:42 #2594 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2595 [Verbose] > │ (3.141592653589793, 0.0) v423 │
00:02:42 #2596 [Verbose] > │ let v425 : │
00:02:42 #2597 [Verbose] > │ num_complex_Complex<float> = method27(v424) │
00:02:42 #2598 [Verbose] > │ let v426 : │
00:02:42 #2599 [Verbose] > │ num_complex_Complex<float> = method28(v235) │
00:02:42 #2600 [Verbose] > │ let v427 : string = │
00:02:42 #2601 [Verbose] > │ "num_complex::Complex::powc(v425, v426)" │
00:02:42 #2602 [Verbose] > │ let v428 : │
00:02:42 #2603 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v427 │
00:02:42 #2604 [Verbose] > │ let v429 : string = "$0 * $1" │
00:02:42 #2605 [Verbose] > │ let v430 : │
00:02:42 #2606 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2607 [Verbose] > │ (v422, v428) v429 │
00:02:42 #2608 [Verbose] > │ let v431 : string = "$0 * $1" │
00:02:42 #2609 [Verbose] > │ let v432 : │
00:02:42 #2610 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2611 [Verbose] > │ (v430, v305) v431 │
00:02:42 #2612 [Verbose] > │ let v433 : string = "$0 * $1" │
00:02:42 #2613 [Verbose] > │ let v434 : │
00:02:42 #2614 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2615 [Verbose] > │ (v432, v295) v433 │
00:02:42 #2616 [Verbose] > │ let v435 : string = "$0 * $1" │
00:02:42 #2617 [Verbose] > │ let v436 : │
00:02:42 #2618 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct │
00:02:42 #2619 [Verbose] > │ (v434, v420) v435 │
00:02:42 #2620 [Verbose] > │ v436 │
00:02:42 #2621 [Verbose] > │ let v439 : string = │
00:02:42 #2622 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2623 [Verbose] > │ let v440 : num_complex_Complex<float> = │
00:02:42 #2624 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v439 │
00:02:42 #2625 [Verbose] > │ let v441 : string = │
00:02:42 #2626 [Verbose] > │ "num_complex::Complex::new($0, $1)" │
00:02:42 #2627 [Verbose] > │ let v442 : num_complex_Complex<float> = │
00:02:42 #2628 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v441 │
00:02:42 #2629 [Verbose] > │ let v443 : num_complex_Complex<float> = │
00:02:42 #2630 [Verbose] > │ method27(v442) │
00:02:42 #2631 [Verbose] > │ let v444 : num_complex_Complex<float> = │
00:02:42 #2632 [Verbose] > │ method28(v155) │
00:02:42 #2633 [Verbose] > │ let v445 : string = │
00:02:42 #2634 [Verbose] > │ "num_complex::Complex::powc(v443, v444)" │
00:02:42 #2635 [Verbose] > │ let v446 : num_complex_Complex<float> = │
00:02:42 #2636 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v445 │
00:02:42 #2637 [Verbose] > │ let v447 : string = "$0 * $1" │
00:02:42 #2638 [Verbose] > │ let v448 : num_complex_Complex<float> = │
00:02:42 #2639 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v440, v446) v447 │
00:02:42 #2640 [Verbose] > │ let v449 : string = "$0 * $1" │
00:02:42 #2641 [Verbose] > │ let v450 : num_complex_Complex<float> = │
00:02:42 #2642 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v448, v225) v449 │
00:02:42 #2643 [Verbose] > │ let v451 : string = "$0 * $1" │
00:02:42 #2644 [Verbose] > │ let v452 : num_complex_Complex<float> = │
00:02:42 #2645 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v450, v215) v451 │
00:02:42 #2646 [Verbose] > │ let v453 : string = "$0 * $1" │
00:02:42 #2647 [Verbose] > │ let v454 : num_complex_Complex<float> = │
00:02:42 #2648 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v452, v438) v453 │
00:02:42 #2649 [Verbose] > │ v454 │
00:02:42 #2650 [Verbose] > │ let v457 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #2651 [Verbose] > │ let v458 : num_complex_Complex<float> = │
00:02:42 #2652 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v457 │
00:02:42 #2653 [Verbose] > │ let v459 : string = "num_complex::Complex::new($0, $1)" │
00:02:42 #2654 [Verbose] > │ let v460 : num_complex_Complex<float> = │
00:02:42 #2655 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v459 │
00:02:42 #2656 [Verbose] > │ let v461 : num_complex_Complex<float> = method27(v460) │
00:02:42 #2657 [Verbose] > │ let v462 : num_complex_Complex<float> = method28(v75) │
00:02:42 #2658 [Verbose] > │ let v463 : string = "num_complex::Complex::powc(v461, │
00:02:42 #2659 [Verbose] > │ v462)" │
00:02:42 #2660 [Verbose] > │ let v464 : num_complex_Complex<float> = │
00:02:42 #2661 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v463 │
00:02:42 #2662 [Verbose] > │ let v465 : string = "$0 * $1" │
00:02:42 #2663 [Verbose] > │ let v466 : num_complex_Complex<float> = │
00:02:42 #2664 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v458, v464) v465 │
00:02:42 #2665 [Verbose] > │ let v467 : string = "$0 * $1" │
00:02:43 #2666 [Verbose] > │ let v468 : num_complex_Complex<float> = │
00:02:43 #2667 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v466, v145) v467 │
00:02:43 #2668 [Verbose] > │ let v469 : string = "$0 * $1" │
00:02:43 #2669 [Verbose] > │ let v470 : num_complex_Complex<float> = │
00:02:43 #2670 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v468, v135) v469 │
00:02:43 #2671 [Verbose] > │ let v471 : string = "$0 * $1" │
00:02:43 #2672 [Verbose] > │ let v472 : num_complex_Complex<float> = │
00:02:43 #2673 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v470, v456) v471 │
00:02:43 #2674 [Verbose] > │ v472 │
00:02:43 #2675 [Verbose] > │ let v475 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2676 [Verbose] > │ let v476 : num_complex_Complex<float> = │
00:02:43 #2677 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v475 │
00:02:43 #2678 [Verbose] > │ let v477 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2679 [Verbose] > │ let v478 : num_complex_Complex<float> = │
00:02:43 #2680 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v477 │
00:02:43 #2681 [Verbose] > │ let v479 : num_complex_Complex<float> = method27(v478) │
00:02:43 #2682 [Verbose] > │ let v480 : num_complex_Complex<float> = method28(v1) │
00:02:43 #2683 [Verbose] > │ let v481 : string = "num_complex::Complex::powc(v479, v480)" │
00:02:43 #2684 [Verbose] > │ let v482 : num_complex_Complex<float> = │
00:02:43 #2685 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v481 │
00:02:43 #2686 [Verbose] > │ let v483 : string = "$0 * $1" │
00:02:43 #2687 [Verbose] > │ let v484 : num_complex_Complex<float> = │
00:02:43 #2688 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v476, v482) v483 │
00:02:43 #2689 [Verbose] > │ let v485 : string = "$0 * $1" │
00:02:43 #2690 [Verbose] > │ let v486 : num_complex_Complex<float> = │
00:02:43 #2691 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v484, v65) v485 │
00:02:43 #2692 [Verbose] > │ let v487 : string = "$0 * $1" │
00:02:43 #2693 [Verbose] > │ let v488 : num_complex_Complex<float> = │
00:02:43 #2694 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v486, v55) v487 │
00:02:43 #2695 [Verbose] > │ let v489 : string = "$0 * $1" │
00:02:43 #2696 [Verbose] > │ let v490 : num_complex_Complex<float> = │
00:02:43 #2697 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v488, v474) v489 │
00:02:43 #2698 [Verbose] > │ v490 │
00:02:43 #2699 [Verbose] > │ and method31 (v0 : bool) : bool = │
00:02:43 #2700 [Verbose] > │ v0 │
00:02:43 #2701 [Verbose] > │ and method1 (v0 : pyo3_Python) : unit = │
00:02:43 #2702 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2703 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #2704 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v1 │
00:02:43 #2705 [Verbose] > │ let v3 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2706 [Verbose] > │ let v4 : num_complex_Complex<float> = │
00:02:43 #2707 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (-1.0, 0.0) v3 │
00:02:43 #2708 [Verbose] > │ let v5 : (struct (num_complex_Complex<float> * float) []) = [|struct │
00:02:43 #2709 [Verbose] > │ (v2, 1.6449340668482264); struct (v4, -0.08333333333333333)|] │
00:02:43 #2710 [Verbose] > │ let v6 : int32 = v5.Length │
00:02:43 #2711 [Verbose] > │ let v7 : Mut0 = {l0 = 0} : Mut0 │
00:02:43 #2712 [Verbose] > │ while method2(v6, v7) do │
00:02:43 #2713 [Verbose] > │ let v9 : int32 = v7.l0 │
00:02:43 #2714 [Verbose] > │ let struct (v10 : num_complex_Complex<float>, v11 : float) = v5.[int │
00:02:43 #2715 [Verbose] > │ v9] │
00:02:43 #2716 [Verbose] > │ let v12 : string = $" s = mpmath.zeta(s)" │
00:02:43 #2717 [Verbose] > │ let v13 : num_complex_Complex<float> = method3(v10) │
00:02:43 #2718 [Verbose] > │ let v14 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #2719 [Verbose] > │ method4(v0, v12, v13) │
00:02:43 #2720 [Verbose] > │ let v15 : num_complex_Complex<float> = method24(v0, v10) │
00:02:43 #2721 [Verbose] > │ let v16 : string = "v14.ok()" │
00:02:43 #2722 [Verbose] > │ let v17 : num_complex_Complex<float> option = │
00:02:43 #2723 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v16 │
00:02:43 #2724 [Verbose] > │ let v18 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #2725 [Verbose] > │ let v19 : US0 = US0_1 │
00:02:43 #2726 [Verbose] > │ let v20 : US0 = v17 |> Option.map v18 |> Option.defaultValue v19 │
00:02:43 #2727 [Verbose] > │ let v21 : string = "f64::NAN" │
00:02:43 #2728 [Verbose] > │ let v22 : float = Fable.Core.RustInterop.emitRustExpr () v21 │
00:02:43 #2729 [Verbose] > │ let v23 : string = "f64::NAN" │
00:02:43 #2730 [Verbose] > │ let v24 : float = Fable.Core.RustInterop.emitRustExpr () v23 │
00:02:43 #2731 [Verbose] > │ let v25 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2732 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:02:43 #2733 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v22, v24) v25 │
00:02:43 #2734 [Verbose] > │ let v29 : num_complex_Complex<float> = │
00:02:43 #2735 [Verbose] > │ match v20 with │
00:02:43 #2736 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #2737 [Verbose] > │ v26 │
00:02:43 #2738 [Verbose] > │ | US0_0(v27) -> (* Some *) │
00:02:43 #2739 [Verbose] > │ v27 │
00:02:43 #2740 [Verbose] > │ let v30 : num_complex_Complex<float> = method8(v29) │
00:02:43 #2741 [Verbose] > │ let v31 : string = "v30.im" │
00:02:43 #2742 [Verbose] > │ let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31 │
00:02:43 #2743 [Verbose] > │ let v33 : string = $"%A{v32}" │
00:02:43 #2744 [Verbose] > │ System.Console.WriteLine v33 │
00:02:43 #2745 [Verbose] > │ let v34 : bool = v32 = 0.0 │
00:02:43 #2746 [Verbose] > │ let v36 : bool = │
00:02:43 #2747 [Verbose] > │ if v34 then │
00:02:43 #2748 [Verbose] > │ true │
00:02:43 #2749 [Verbose] > │ else │
00:02:43 #2750 [Verbose] > │ method31(v34) │
00:02:43 #2751 [Verbose] > │ let v37 : string = $"__expect / actual: %A{v32} / expected: %A{0.0}" │
00:02:43 #2752 [Verbose] > │ let v38 : bool = v36 = false │
00:02:43 #2753 [Verbose] > │ if v38 then │
00:02:43 #2754 [Verbose] > │ failwith<unit> v37 │
00:02:43 #2755 [Verbose] > │ let v39 : num_complex_Complex<float> = method7(v29) │
00:02:43 #2756 [Verbose] > │ let v40 : string = "v39.re" │
00:02:43 #2757 [Verbose] > │ let v41 : float = Fable.Core.RustInterop.emitRustExpr () v40 │
00:02:43 #2758 [Verbose] > │ let v42 : float = v41 - v11 │
00:02:43 #2759 [Verbose] > │ let v43 : float = -v42 │
00:02:43 #2760 [Verbose] > │ let v44 : bool = v42 >= v43 │
00:02:43 #2761 [Verbose] > │ let v45 : float = │
00:02:43 #2762 [Verbose] > │ if v44 then │
00:02:43 #2763 [Verbose] > │ v42 │
00:02:43 #2764 [Verbose] > │ else │
00:02:43 #2765 [Verbose] > │ v43 │
00:02:43 #2766 [Verbose] > │ let v46 : string = $"%A{v45}" │
00:02:43 #2767 [Verbose] > │ System.Console.WriteLine v46 │
00:02:43 #2768 [Verbose] > │ let v47 : bool = v45 < 0.0001 │
00:02:43 #2769 [Verbose] > │ let v49 : bool = │
00:02:43 #2770 [Verbose] > │ if v47 then │
00:02:43 #2771 [Verbose] > │ true │
00:02:43 #2772 [Verbose] > │ else │
00:02:43 #2773 [Verbose] > │ method31(v47) │
00:02:43 #2774 [Verbose] > │ let v50 : string = $"__expect / actual: %A{v45} / expected: │
00:02:43 #2775 [Verbose] > │ %A{0.0001}" │
00:02:43 #2776 [Verbose] > │ let v51 : bool = v49 = false │
00:02:43 #2777 [Verbose] > │ if v51 then │
00:02:43 #2778 [Verbose] > │ failwith<unit> v50 │
00:02:43 #2779 [Verbose] > │ let v52 : int32 = v9 + 1 │
00:02:43 #2780 [Verbose] > │ v7.l0 <- v52 │
00:02:43 #2781 [Verbose] > │ () │
00:02:43 #2782 [Verbose] > │ () │
00:02:43 #2783 [Verbose] > │ and method32 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> = │
00:02:43 #2784 [Verbose] > │ v0 │
00:02:43 #2785 [Verbose] > │ and method33 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> = │
00:02:43 #2786 [Verbose] > │ v0 │
00:02:43 #2787 [Verbose] > │ and method0 () : unit = │
00:02:43 #2788 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #2789 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #2790 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #2791 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #2792 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #2793 [Verbose] > │ let v2 : string = "py" │
00:02:43 #2794 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #2795 [Verbose] > │ method1(v3) │
00:02:43 #2796 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #2797 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #2798 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #2799 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #2800 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #2801 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #2802 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #2803 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #2804 [Verbose] > │ () v8 │
00:02:43 #2805 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #2806 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #2807 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #2808 [Verbose] > │ () │
00:02:43 #2809 [Verbose] > │ and method35 (v0 : pyo3_Python) : unit = │
00:02:43 #2810 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2811 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #2812 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, -2.0) v1 │
00:02:43 #2813 [Verbose] > │ let v3 : string = $" s = mpmath.zeta(s)" │
00:02:43 #2814 [Verbose] > │ let v4 : num_complex_Complex<float> = method3(v2) │
00:02:43 #2815 [Verbose] > │ let v5 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #2816 [Verbose] > │ method4(v0, v3, v4) │
00:02:43 #2817 [Verbose] > │ let v6 : num_complex_Complex<float> = method24(v0, v2) │
00:02:43 #2818 [Verbose] > │ let v7 : string = "v5.ok()" │
00:02:43 #2819 [Verbose] > │ let v8 : num_complex_Complex<float> option = │
00:02:43 #2820 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #2821 [Verbose] > │ let v9 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #2822 [Verbose] > │ let v10 : US0 = US0_1 │
00:02:43 #2823 [Verbose] > │ let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10 │
00:02:43 #2824 [Verbose] > │ let v12 : string = "f64::NAN" │
00:02:43 #2825 [Verbose] > │ let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12 │
00:02:43 #2826 [Verbose] > │ let v14 : string = "f64::NAN" │
00:02:43 #2827 [Verbose] > │ let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14 │
00:02:43 #2828 [Verbose] > │ let v16 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2829 [Verbose] > │ let v17 : num_complex_Complex<float> = │
00:02:43 #2830 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16 │
00:02:43 #2831 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:02:43 #2832 [Verbose] > │ match v11 with │
00:02:43 #2833 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #2834 [Verbose] > │ v17 │
00:02:43 #2835 [Verbose] > │ | US0_0(v18) -> (* Some *) │
00:02:43 #2836 [Verbose] > │ v18 │
00:02:43 #2837 [Verbose] > │ let v21 : num_complex_Complex<float> = method7(v20) │
00:02:43 #2838 [Verbose] > │ let v22 : string = "v21.re" │
00:02:43 #2839 [Verbose] > │ let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22 │
00:02:43 #2840 [Verbose] > │ let v24 : float = v23 - 0.8673 │
00:02:43 #2841 [Verbose] > │ let v25 : float = -v24 │
00:02:43 #2842 [Verbose] > │ let v26 : bool = v24 >= v25 │
00:02:43 #2843 [Verbose] > │ let v27 : float = │
00:02:43 #2844 [Verbose] > │ if v26 then │
00:02:43 #2845 [Verbose] > │ v24 │
00:02:43 #2846 [Verbose] > │ else │
00:02:43 #2847 [Verbose] > │ v25 │
00:02:43 #2848 [Verbose] > │ let v28 : string = $"%A{v27}" │
00:02:43 #2849 [Verbose] > │ System.Console.WriteLine v28 │
00:02:43 #2850 [Verbose] > │ let v29 : bool = v27 < 0.001 │
00:02:43 #2851 [Verbose] > │ let v31 : bool = │
00:02:43 #2852 [Verbose] > │ if v29 then │
00:02:43 #2853 [Verbose] > │ true │
00:02:43 #2854 [Verbose] > │ else │
00:02:43 #2855 [Verbose] > │ method31(v29) │
00:02:43 #2856 [Verbose] > │ let v32 : string = $"__expect / actual: %A{v27} / expected: %A{0.001}" │
00:02:43 #2857 [Verbose] > │ let v33 : bool = v31 = false │
00:02:43 #2858 [Verbose] > │ if v33 then │
00:02:43 #2859 [Verbose] > │ failwith<unit> v32 │
00:02:43 #2860 [Verbose] > │ let v34 : num_complex_Complex<float> = method8(v20) │
00:02:43 #2861 [Verbose] > │ let v35 : string = "v34.im" │
00:02:43 #2862 [Verbose] > │ let v36 : float = Fable.Core.RustInterop.emitRustExpr () v35 │
00:02:43 #2863 [Verbose] > │ let v37 : float = v36 - 0.275 │
00:02:43 #2864 [Verbose] > │ let v38 : float = -v37 │
00:02:43 #2865 [Verbose] > │ let v39 : bool = v37 >= v38 │
00:02:43 #2866 [Verbose] > │ let v40 : float = │
00:02:43 #2867 [Verbose] > │ if v39 then │
00:02:43 #2868 [Verbose] > │ v37 │
00:02:43 #2869 [Verbose] > │ else │
00:02:43 #2870 [Verbose] > │ v38 │
00:02:43 #2871 [Verbose] > │ let v41 : string = $"%A{v40}" │
00:02:43 #2872 [Verbose] > │ System.Console.WriteLine v41 │
00:02:43 #2873 [Verbose] > │ let v42 : bool = v40 < 0.001 │
00:02:43 #2874 [Verbose] > │ let v44 : bool = │
00:02:43 #2875 [Verbose] > │ if v42 then │
00:02:43 #2876 [Verbose] > │ true │
00:02:43 #2877 [Verbose] > │ else │
00:02:43 #2878 [Verbose] > │ method31(v42) │
00:02:43 #2879 [Verbose] > │ let v45 : string = $"__expect / actual: %A{v40} / expected: %A{0.001}" │
00:02:43 #2880 [Verbose] > │ let v46 : bool = v44 = false │
00:02:43 #2881 [Verbose] > │ if v46 then │
00:02:43 #2882 [Verbose] > │ failwith<unit> v45 │
00:02:43 #2883 [Verbose] > │ and method34 () : unit = │
00:02:43 #2884 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #2885 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #2886 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #2887 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #2888 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #2889 [Verbose] > │ let v2 : string = "py" │
00:02:43 #2890 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #2891 [Verbose] > │ method35(v3) │
00:02:43 #2892 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #2893 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #2894 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #2895 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #2896 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #2897 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #2898 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #2899 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #2900 [Verbose] > │ () v8 │
00:02:43 #2901 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #2902 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #2903 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #2904 [Verbose] > │ () │
00:02:43 #2905 [Verbose] > │ and method38 () : UH0 = │
00:02:43 #2906 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:02:43 #2907 [Verbose] > │ let v1 : UH0 = UH0_1(-40.0, v0) │
00:02:43 #2908 [Verbose] > │ let v2 : UH0 = UH0_1(-38.0, v1) │
00:02:43 #2909 [Verbose] > │ let v3 : UH0 = UH0_1(-36.0, v2) │
00:02:43 #2910 [Verbose] > │ let v4 : UH0 = UH0_1(-34.0, v3) │
00:02:43 #2911 [Verbose] > │ let v5 : UH0 = UH0_1(-32.0, v4) │
00:02:43 #2912 [Verbose] > │ let v6 : UH0 = UH0_1(-30.0, v5) │
00:02:43 #2913 [Verbose] > │ let v7 : UH0 = UH0_1(-28.0, v6) │
00:02:43 #2914 [Verbose] > │ let v8 : UH0 = UH0_1(-26.0, v7) │
00:02:43 #2915 [Verbose] > │ let v9 : UH0 = UH0_1(-24.0, v8) │
00:02:43 #2916 [Verbose] > │ let v10 : UH0 = UH0_1(-22.0, v9) │
00:02:43 #2917 [Verbose] > │ let v11 : UH0 = UH0_1(-20.0, v10) │
00:02:43 #2918 [Verbose] > │ let v12 : UH0 = UH0_1(-18.0, v11) │
00:02:43 #2919 [Verbose] > │ let v13 : UH0 = UH0_1(-16.0, v12) │
00:02:43 #2920 [Verbose] > │ let v14 : UH0 = UH0_1(-14.0, v13) │
00:02:43 #2921 [Verbose] > │ let v15 : UH0 = UH0_1(-12.0, v14) │
00:02:43 #2922 [Verbose] > │ let v16 : UH0 = UH0_1(-10.0, v15) │
00:02:43 #2923 [Verbose] > │ let v17 : UH0 = UH0_1(-8.0, v16) │
00:02:43 #2924 [Verbose] > │ let v18 : UH0 = UH0_1(-6.0, v17) │
00:02:43 #2925 [Verbose] > │ let v19 : UH0 = UH0_1(-4.0, v18) │
00:02:43 #2926 [Verbose] > │ UH0_1(-2.0, v19) │
00:02:43 #2927 [Verbose] > │ and method39 (v0 : pyo3_Python, v1 : UH0) : unit = │
00:02:43 #2928 [Verbose] > │ match v1 with │
00:02:43 #2929 [Verbose] > │ | UH0_1(v2, v3) -> (* Cons *) │
00:02:43 #2930 [Verbose] > │ let v4 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2931 [Verbose] > │ let v5 : num_complex_Complex<float> = │
00:02:43 #2932 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v2, 0.0) v4 │
00:02:43 #2933 [Verbose] > │ let v6 : string = $" s = mpmath.zeta(s)" │
00:02:43 #2934 [Verbose] > │ let v7 : num_complex_Complex<float> = method3(v5) │
00:02:43 #2935 [Verbose] > │ let v8 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #2936 [Verbose] > │ method4(v0, v6, v7) │
00:02:43 #2937 [Verbose] > │ let v9 : num_complex_Complex<float> = method24(v0, v5) │
00:02:43 #2938 [Verbose] > │ let v10 : string = "v8.ok()" │
00:02:43 #2939 [Verbose] > │ let v11 : num_complex_Complex<float> option = │
00:02:43 #2940 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:02:43 #2941 [Verbose] > │ let v12 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #2942 [Verbose] > │ let v13 : US0 = US0_1 │
00:02:43 #2943 [Verbose] > │ let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13 │
00:02:43 #2944 [Verbose] > │ let v15 : string = "f64::NAN" │
00:02:43 #2945 [Verbose] > │ let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15 │
00:02:43 #2946 [Verbose] > │ let v17 : string = "f64::NAN" │
00:02:43 #2947 [Verbose] > │ let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17 │
00:02:43 #2948 [Verbose] > │ let v19 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #2949 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:02:43 #2950 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v16, v18) v19 │
00:02:43 #2951 [Verbose] > │ let v23 : num_complex_Complex<float> = │
00:02:43 #2952 [Verbose] > │ match v14 with │
00:02:43 #2953 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #2954 [Verbose] > │ v20 │
00:02:43 #2955 [Verbose] > │ | US0_0(v21) -> (* Some *) │
00:02:43 #2956 [Verbose] > │ v21 │
00:02:43 #2957 [Verbose] > │ let v24 : num_complex_Complex<float> = method7(v23) │
00:02:43 #2958 [Verbose] > │ let v25 : string = "v24.re" │
00:02:43 #2959 [Verbose] > │ let v26 : float = Fable.Core.RustInterop.emitRustExpr () v25 │
00:02:43 #2960 [Verbose] > │ let v27 : string = $"%A{v26}" │
00:02:43 #2961 [Verbose] > │ System.Console.WriteLine v27 │
00:02:43 #2962 [Verbose] > │ let v28 : bool = v26 = 0.0 │
00:02:43 #2963 [Verbose] > │ let v30 : bool = │
00:02:43 #2964 [Verbose] > │ if v28 then │
00:02:43 #2965 [Verbose] > │ true │
00:02:43 #2966 [Verbose] > │ else │
00:02:43 #2967 [Verbose] > │ method31(v28) │
00:02:43 #2968 [Verbose] > │ let v31 : string = $"__expect / actual: %A{v26} / expected: %A{0.0}" │
00:02:43 #2969 [Verbose] > │ let v32 : bool = v30 = false │
00:02:43 #2970 [Verbose] > │ if v32 then │
00:02:43 #2971 [Verbose] > │ failwith<unit> v31 │
00:02:43 #2972 [Verbose] > │ let v33 : num_complex_Complex<float> = method8(v23) │
00:02:43 #2973 [Verbose] > │ let v34 : string = "v33.im" │
00:02:43 #2974 [Verbose] > │ let v35 : float = Fable.Core.RustInterop.emitRustExpr () v34 │
00:02:43 #2975 [Verbose] > │ let v36 : string = $"%A{v35}" │
00:02:43 #2976 [Verbose] > │ System.Console.WriteLine v36 │
00:02:43 #2977 [Verbose] > │ let v37 : bool = v35 = 0.0 │
00:02:43 #2978 [Verbose] > │ let v39 : bool = │
00:02:43 #2979 [Verbose] > │ if v37 then │
00:02:43 #2980 [Verbose] > │ true │
00:02:43 #2981 [Verbose] > │ else │
00:02:43 #2982 [Verbose] > │ method31(v37) │
00:02:43 #2983 [Verbose] > │ let v40 : string = $"__expect / actual: %A{v35} / expected: %A{0.0}" │
00:02:43 #2984 [Verbose] > │ let v41 : bool = v39 = false │
00:02:43 #2985 [Verbose] > │ if v41 then │
00:02:43 #2986 [Verbose] > │ failwith<unit> v40 │
00:02:43 #2987 [Verbose] > │ method39(v0, v3) │
00:02:43 #2988 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:02:43 #2989 [Verbose] > │ () │
00:02:43 #2990 [Verbose] > │ and method37 (v0 : pyo3_Python) : unit = │
00:02:43 #2991 [Verbose] > │ let v1 : UH0 = method38() │
00:02:43 #2992 [Verbose] > │ method39(v0, v1) │
00:02:43 #2993 [Verbose] > │ and method36 () : unit = │
00:02:43 #2994 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #2995 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #2996 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #2997 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #2998 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #2999 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3000 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3001 [Verbose] > │ method37(v3) │
00:02:43 #3002 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3003 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3004 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3005 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3006 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3007 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3008 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3009 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3010 [Verbose] > │ () v8 │
00:02:43 #3011 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3012 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3013 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3014 [Verbose] > │ () │
00:02:43 #3015 [Verbose] > │ and method41 (v0 : pyo3_Python) : unit = │
00:02:43 #3016 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3017 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #3018 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 14.134725) v1 │
00:02:43 #3019 [Verbose] > │ let v3 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3020 [Verbose] > │ let v4 : num_complex_Complex<float> = │
00:02:43 #3021 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 21.02204) v3 │
00:02:43 #3022 [Verbose] > │ let v5 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3023 [Verbose] > │ let v6 : num_complex_Complex<float> = │
00:02:43 #3024 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 25.010857) v5 │
00:02:43 #3025 [Verbose] > │ let v7 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3026 [Verbose] > │ let v8 : num_complex_Complex<float> = │
00:02:43 #3027 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 30.424876) v7 │
00:02:43 #3028 [Verbose] > │ let v9 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3029 [Verbose] > │ let v10 : num_complex_Complex<float> = │
00:02:43 #3030 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 32.935062) v9 │
00:02:43 #3031 [Verbose] > │ let v11 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3032 [Verbose] > │ let v12 : num_complex_Complex<float> = │
00:02:43 #3033 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 37.586178) v11 │
00:02:43 #3034 [Verbose] > │ let v13 : (num_complex_Complex<float> []) = [|v2; v4; v6; v8; v10; v12|] │
00:02:43 #3035 [Verbose] > │ let v14 : int32 = v13.Length │
00:02:43 #3036 [Verbose] > │ let v15 : Mut0 = {l0 = 0} : Mut0 │
00:02:43 #3037 [Verbose] > │ while method2(v14, v15) do │
00:02:43 #3038 [Verbose] > │ let v17 : int32 = v15.l0 │
00:02:43 #3039 [Verbose] > │ let v18 : num_complex_Complex<float> = v13.[int v17] │
00:02:43 #3040 [Verbose] > │ let v19 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3041 [Verbose] > │ let v20 : num_complex_Complex<float> = method3(v18) │
00:02:43 #3042 [Verbose] > │ let v21 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3043 [Verbose] > │ method4(v0, v19, v20) │
00:02:43 #3044 [Verbose] > │ let v22 : num_complex_Complex<float> = method24(v0, v18) │
00:02:43 #3045 [Verbose] > │ let v23 : string = "v21.ok()" │
00:02:43 #3046 [Verbose] > │ let v24 : num_complex_Complex<float> option = │
00:02:43 #3047 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v23 │
00:02:43 #3048 [Verbose] > │ let v25 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3049 [Verbose] > │ let v26 : US0 = US0_1 │
00:02:43 #3050 [Verbose] > │ let v27 : US0 = v24 |> Option.map v25 |> Option.defaultValue v26 │
00:02:43 #3051 [Verbose] > │ let v28 : string = "f64::NAN" │
00:02:43 #3052 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:02:43 #3053 [Verbose] > │ let v30 : string = "f64::NAN" │
00:02:43 #3054 [Verbose] > │ let v31 : float = Fable.Core.RustInterop.emitRustExpr () v30 │
00:02:43 #3055 [Verbose] > │ let v32 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3056 [Verbose] > │ let v33 : num_complex_Complex<float> = │
00:02:43 #3057 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v29, v31) v32 │
00:02:43 #3058 [Verbose] > │ let v36 : num_complex_Complex<float> = │
00:02:43 #3059 [Verbose] > │ match v27 with │
00:02:43 #3060 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3061 [Verbose] > │ v33 │
00:02:43 #3062 [Verbose] > │ | US0_0(v34) -> (* Some *) │
00:02:43 #3063 [Verbose] > │ v34 │
00:02:43 #3064 [Verbose] > │ let v37 : num_complex_Complex<float> = method7(v36) │
00:02:43 #3065 [Verbose] > │ let v38 : string = "v37.re" │
00:02:43 #3066 [Verbose] > │ let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38 │
00:02:43 #3067 [Verbose] > │ let v40 : float = -v39 │
00:02:43 #3068 [Verbose] > │ let v41 : bool = v39 >= v40 │
00:02:43 #3069 [Verbose] > │ let v42 : float = │
00:02:43 #3070 [Verbose] > │ if v41 then │
00:02:43 #3071 [Verbose] > │ v39 │
00:02:43 #3072 [Verbose] > │ else │
00:02:43 #3073 [Verbose] > │ v40 │
00:02:43 #3074 [Verbose] > │ let v43 : string = $"%A{v42}" │
00:02:43 #3075 [Verbose] > │ System.Console.WriteLine v43 │
00:02:43 #3076 [Verbose] > │ let v44 : bool = v42 < 0.0001 │
00:02:43 #3077 [Verbose] > │ let v46 : bool = │
00:02:43 #3078 [Verbose] > │ if v44 then │
00:02:43 #3079 [Verbose] > │ true │
00:02:43 #3080 [Verbose] > │ else │
00:02:43 #3081 [Verbose] > │ method31(v44) │
00:02:43 #3082 [Verbose] > │ let v47 : string = $"__expect / actual: %A{v42} / expected: │
00:02:43 #3083 [Verbose] > │ %A{0.0001}" │
00:02:43 #3084 [Verbose] > │ let v48 : bool = v46 = false │
00:02:43 #3085 [Verbose] > │ if v48 then │
00:02:43 #3086 [Verbose] > │ failwith<unit> v47 │
00:02:43 #3087 [Verbose] > │ let v49 : num_complex_Complex<float> = method8(v36) │
00:02:43 #3088 [Verbose] > │ let v50 : string = "v49.im" │
00:02:43 #3089 [Verbose] > │ let v51 : float = Fable.Core.RustInterop.emitRustExpr () v50 │
00:02:43 #3090 [Verbose] > │ let v52 : float = -v51 │
00:02:43 #3091 [Verbose] > │ let v53 : bool = v51 >= v52 │
00:02:43 #3092 [Verbose] > │ let v54 : float = │
00:02:43 #3093 [Verbose] > │ if v53 then │
00:02:43 #3094 [Verbose] > │ v51 │
00:02:43 #3095 [Verbose] > │ else │
00:02:43 #3096 [Verbose] > │ v52 │
00:02:43 #3097 [Verbose] > │ let v55 : string = $"%A{v54}" │
00:02:43 #3098 [Verbose] > │ System.Console.WriteLine v55 │
00:02:43 #3099 [Verbose] > │ let v56 : bool = v54 < 0.0001 │
00:02:43 #3100 [Verbose] > │ let v58 : bool = │
00:02:43 #3101 [Verbose] > │ if v56 then │
00:02:43 #3102 [Verbose] > │ true │
00:02:43 #3103 [Verbose] > │ else │
00:02:43 #3104 [Verbose] > │ method31(v56) │
00:02:43 #3105 [Verbose] > │ let v59 : string = $"__expect / actual: %A{v54} / expected: │
00:02:43 #3106 [Verbose] > │ %A{0.0001}" │
00:02:43 #3107 [Verbose] > │ let v60 : bool = v58 = false │
00:02:43 #3108 [Verbose] > │ if v60 then │
00:02:43 #3109 [Verbose] > │ failwith<unit> v59 │
00:02:43 #3110 [Verbose] > │ let v61 : int32 = v17 + 1 │
00:02:43 #3111 [Verbose] > │ v15.l0 <- v61 │
00:02:43 #3112 [Verbose] > │ () │
00:02:43 #3113 [Verbose] > │ () │
00:02:43 #3114 [Verbose] > │ and method40 () : unit = │
00:02:43 #3115 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3116 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3117 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3118 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3119 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3120 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3121 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3122 [Verbose] > │ method41(v3) │
00:02:43 #3123 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3124 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3125 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3126 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3127 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3128 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3129 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3130 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3131 [Verbose] > │ () v8 │
00:02:43 #3132 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3133 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3134 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3135 [Verbose] > │ () │
00:02:43 #3136 [Verbose] > │ and method43 (v0 : pyo3_Python) : unit = │
00:02:43 #3137 [Verbose] > │ let v1 : (float []) = [|2.0; 3.0; 4.0; 5.0; 10.0; 20.0; 50.0|] │
00:02:43 #3138 [Verbose] > │ let v2 : int32 = v1.Length │
00:02:43 #3139 [Verbose] > │ let v3 : Mut0 = {l0 = 0} : Mut0 │
00:02:43 #3140 [Verbose] > │ while method2(v2, v3) do │
00:02:43 #3141 [Verbose] > │ let v5 : int32 = v3.l0 │
00:02:43 #3142 [Verbose] > │ let v6 : float = v1.[int v5] │
00:02:43 #3143 [Verbose] > │ let v7 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3144 [Verbose] > │ let v8 : num_complex_Complex<float> = │
00:02:43 #3145 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v6, 0.0) v7 │
00:02:43 #3146 [Verbose] > │ let v9 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3147 [Verbose] > │ let v10 : num_complex_Complex<float> = method3(v8) │
00:02:43 #3148 [Verbose] > │ let v11 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3149 [Verbose] > │ method4(v0, v9, v10) │
00:02:43 #3150 [Verbose] > │ let v12 : num_complex_Complex<float> = method24(v0, v8) │
00:02:43 #3151 [Verbose] > │ let v13 : string = "v11.ok()" │
00:02:43 #3152 [Verbose] > │ let v14 : num_complex_Complex<float> option = │
00:02:43 #3153 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13 │
00:02:43 #3154 [Verbose] > │ let v15 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3155 [Verbose] > │ let v16 : US0 = US0_1 │
00:02:43 #3156 [Verbose] > │ let v17 : US0 = v14 |> Option.map v15 |> Option.defaultValue v16 │
00:02:43 #3157 [Verbose] > │ let v18 : string = "f64::NAN" │
00:02:43 #3158 [Verbose] > │ let v19 : float = Fable.Core.RustInterop.emitRustExpr () v18 │
00:02:43 #3159 [Verbose] > │ let v20 : string = "f64::NAN" │
00:02:43 #3160 [Verbose] > │ let v21 : float = Fable.Core.RustInterop.emitRustExpr () v20 │
00:02:43 #3161 [Verbose] > │ let v22 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3162 [Verbose] > │ let v23 : num_complex_Complex<float> = │
00:02:43 #3163 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v19, v21) v22 │
00:02:43 #3164 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:02:43 #3165 [Verbose] > │ match v17 with │
00:02:43 #3166 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3167 [Verbose] > │ v23 │
00:02:43 #3168 [Verbose] > │ | US0_0(v24) -> (* Some *) │
00:02:43 #3169 [Verbose] > │ v24 │
00:02:43 #3170 [Verbose] > │ let v27 : num_complex_Complex<float> = method7(v26) │
00:02:43 #3171 [Verbose] > │ let v28 : string = "v27.re" │
00:02:43 #3172 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:02:43 #3173 [Verbose] > │ let v30 : string = $"%A{v29}" │
00:02:43 #3174 [Verbose] > │ System.Console.WriteLine v30 │
00:02:43 #3175 [Verbose] > │ let v31 : bool = v29 > 0.0 │
00:02:43 #3176 [Verbose] > │ let v33 : bool = │
00:02:43 #3177 [Verbose] > │ if v31 then │
00:02:43 #3178 [Verbose] > │ true │
00:02:43 #3179 [Verbose] > │ else │
00:02:43 #3180 [Verbose] > │ method31(v31) │
00:02:43 #3181 [Verbose] > │ let v34 : string = $"__expect / actual: %A{v29} / expected: %A{0.0}" │
00:02:43 #3182 [Verbose] > │ let v35 : bool = v33 = false │
00:02:43 #3183 [Verbose] > │ if v35 then │
00:02:43 #3184 [Verbose] > │ failwith<unit> v34 │
00:02:43 #3185 [Verbose] > │ let v36 : num_complex_Complex<float> = method8(v26) │
00:02:43 #3186 [Verbose] > │ let v37 : string = "v36.im" │
00:02:43 #3187 [Verbose] > │ let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37 │
00:02:43 #3188 [Verbose] > │ let v39 : string = $"%A{v38}" │
00:02:43 #3189 [Verbose] > │ System.Console.WriteLine v39 │
00:02:43 #3190 [Verbose] > │ let v40 : bool = v38 = 0.0 │
00:02:43 #3191 [Verbose] > │ let v42 : bool = │
00:02:43 #3192 [Verbose] > │ if v40 then │
00:02:43 #3193 [Verbose] > │ true │
00:02:43 #3194 [Verbose] > │ else │
00:02:43 #3195 [Verbose] > │ method31(v40) │
00:02:43 #3196 [Verbose] > │ let v43 : string = $"__expect / actual: %A{v38} / expected: %A{0.0}" │
00:02:43 #3197 [Verbose] > │ let v44 : bool = v42 = false │
00:02:43 #3198 [Verbose] > │ if v44 then │
00:02:43 #3199 [Verbose] > │ failwith<unit> v43 │
00:02:43 #3200 [Verbose] > │ let v45 : int32 = v5 + 1 │
00:02:43 #3201 [Verbose] > │ v3.l0 <- v45 │
00:02:43 #3202 [Verbose] > │ () │
00:02:43 #3203 [Verbose] > │ () │
00:02:43 #3204 [Verbose] > │ and method42 () : unit = │
00:02:43 #3205 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3206 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3207 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3208 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3209 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3210 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3211 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3212 [Verbose] > │ method43(v3) │
00:02:43 #3213 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3214 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3215 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3216 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3217 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3218 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3219 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3220 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3221 [Verbose] > │ () v8 │
00:02:43 #3222 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3223 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3224 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3225 [Verbose] > │ () │
00:02:43 #3226 [Verbose] > │ and method45 (v0 : pyo3_Python) : unit = │
00:02:43 #3227 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3228 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #3229 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v1 │
00:02:43 #3230 [Verbose] > │ let v3 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3231 [Verbose] > │ let v4 : num_complex_Complex<float> = method3(v2) │
00:02:43 #3232 [Verbose] > │ let v5 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3233 [Verbose] > │ method4(v0, v3, v4) │
00:02:43 #3234 [Verbose] > │ let v6 : num_complex_Complex<float> = method24(v0, v2) │
00:02:43 #3235 [Verbose] > │ let v7 : string = "v5.ok()" │
00:02:43 #3236 [Verbose] > │ let v8 : num_complex_Complex<float> option = │
00:02:43 #3237 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3238 [Verbose] > │ let v9 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3239 [Verbose] > │ let v10 : US0 = US0_1 │
00:02:43 #3240 [Verbose] > │ let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10 │
00:02:43 #3241 [Verbose] > │ let v12 : string = "f64::NAN" │
00:02:43 #3242 [Verbose] > │ let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12 │
00:02:43 #3243 [Verbose] > │ let v14 : string = "f64::NAN" │
00:02:43 #3244 [Verbose] > │ let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14 │
00:02:43 #3245 [Verbose] > │ let v16 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3246 [Verbose] > │ let v17 : num_complex_Complex<float> = │
00:02:43 #3247 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16 │
00:02:43 #3248 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:02:43 #3249 [Verbose] > │ match v11 with │
00:02:43 #3250 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3251 [Verbose] > │ v17 │
00:02:43 #3252 [Verbose] > │ | US0_0(v18) -> (* Some *) │
00:02:43 #3253 [Verbose] > │ v18 │
00:02:43 #3254 [Verbose] > │ let v21 : num_complex_Complex<float> = method7(v20) │
00:02:43 #3255 [Verbose] > │ let v22 : string = "v21.re" │
00:02:43 #3256 [Verbose] > │ let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22 │
00:02:43 #3257 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:02:43 #3258 [Verbose] > │ System.Console.WriteLine v24 │
00:02:43 #3259 [Verbose] > │ let v25 : bool = v23 = infinity │
00:02:43 #3260 [Verbose] > │ let v27 : bool = │
00:02:43 #3261 [Verbose] > │ if v25 then │
00:02:43 #3262 [Verbose] > │ true │
00:02:43 #3263 [Verbose] > │ else │
00:02:43 #3264 [Verbose] > │ method31(v25) │
00:02:43 #3265 [Verbose] > │ let v28 : string = $"__expect / actual: %A{v23} / expected: │
00:02:43 #3266 [Verbose] > │ %A{infinity}" │
00:02:43 #3267 [Verbose] > │ let v29 : bool = v27 = false │
00:02:43 #3268 [Verbose] > │ if v29 then │
00:02:43 #3269 [Verbose] > │ failwith<unit> v28 │
00:02:43 #3270 [Verbose] > │ let v30 : num_complex_Complex<float> = method8(v20) │
00:02:43 #3271 [Verbose] > │ let v31 : string = "v30.im" │
00:02:43 #3272 [Verbose] > │ let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31 │
00:02:43 #3273 [Verbose] > │ let v33 : string = $"%A{v32}" │
00:02:43 #3274 [Verbose] > │ System.Console.WriteLine v33 │
00:02:43 #3275 [Verbose] > │ let v34 : bool = v32 = 0.0 │
00:02:43 #3276 [Verbose] > │ let v36 : bool = │
00:02:43 #3277 [Verbose] > │ if v34 then │
00:02:43 #3278 [Verbose] > │ true │
00:02:43 #3279 [Verbose] > │ else │
00:02:43 #3280 [Verbose] > │ method31(v34) │
00:02:43 #3281 [Verbose] > │ let v37 : string = $"__expect / actual: %A{v32} / expected: %A{0.0}" │
00:02:43 #3282 [Verbose] > │ let v38 : bool = v36 = false │
00:02:43 #3283 [Verbose] > │ if v38 then │
00:02:43 #3284 [Verbose] > │ failwith<unit> v37 │
00:02:43 #3285 [Verbose] > │ and method44 () : unit = │
00:02:43 #3286 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3287 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3288 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3289 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3290 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3291 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3292 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3293 [Verbose] > │ method45(v3) │
00:02:43 #3294 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3295 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3296 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3297 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3298 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3299 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3300 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3301 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3302 [Verbose] > │ () v8 │
00:02:43 #3303 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3304 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3305 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3306 [Verbose] > │ () │
00:02:43 #3307 [Verbose] > │ and method47 (v0 : pyo3_Python) : unit = │
00:02:43 #3308 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3309 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #3310 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 10.0) v1 │
00:02:43 #3311 [Verbose] > │ let v3 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3312 [Verbose] > │ let v4 : num_complex_Complex<float> = method3(v2) │
00:02:43 #3313 [Verbose] > │ let v5 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3314 [Verbose] > │ method4(v0, v3, v4) │
00:02:43 #3315 [Verbose] > │ let v6 : num_complex_Complex<float> = method24(v0, v2) │
00:02:43 #3316 [Verbose] > │ let v7 : string = "v5.ok()" │
00:02:43 #3317 [Verbose] > │ let v8 : num_complex_Complex<float> option = │
00:02:43 #3318 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3319 [Verbose] > │ let v9 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3320 [Verbose] > │ let v10 : US0 = US0_1 │
00:02:43 #3321 [Verbose] > │ let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10 │
00:02:43 #3322 [Verbose] > │ let v12 : string = "f64::NAN" │
00:02:43 #3323 [Verbose] > │ let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12 │
00:02:43 #3324 [Verbose] > │ let v14 : string = "f64::NAN" │
00:02:43 #3325 [Verbose] > │ let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14 │
00:02:43 #3326 [Verbose] > │ let v16 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3327 [Verbose] > │ let v17 : num_complex_Complex<float> = │
00:02:43 #3328 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16 │
00:02:43 #3329 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:02:43 #3330 [Verbose] > │ match v11 with │
00:02:43 #3331 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3332 [Verbose] > │ v17 │
00:02:43 #3333 [Verbose] > │ | US0_0(v18) -> (* Some *) │
00:02:43 #3334 [Verbose] > │ v18 │
00:02:43 #3335 [Verbose] > │ let v21 : num_complex_Complex<float> = method7(v2) │
00:02:43 #3336 [Verbose] > │ let v22 : string = "v21.re" │
00:02:43 #3337 [Verbose] > │ let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22 │
00:02:43 #3338 [Verbose] > │ let v24 : num_complex_Complex<float> = method8(v2) │
00:02:43 #3339 [Verbose] > │ let v25 : string = "v24.im" │
00:02:43 #3340 [Verbose] > │ let v26 : float = Fable.Core.RustInterop.emitRustExpr () v25 │
00:02:43 #3341 [Verbose] > │ let v27 : float = -v26 │
00:02:43 #3342 [Verbose] > │ let v28 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3343 [Verbose] > │ let v29 : num_complex_Complex<float> = │
00:02:43 #3344 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v23, v27) v28 │
00:02:43 #3345 [Verbose] > │ let v30 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3346 [Verbose] > │ let v31 : num_complex_Complex<float> = method3(v29) │
00:02:43 #3347 [Verbose] > │ let v32 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3348 [Verbose] > │ method4(v0, v30, v31) │
00:02:43 #3349 [Verbose] > │ let v33 : num_complex_Complex<float> = method24(v0, v29) │
00:02:43 #3350 [Verbose] > │ let v34 : string = "v32.ok()" │
00:02:43 #3351 [Verbose] > │ let v35 : num_complex_Complex<float> option = │
00:02:43 #3352 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v34 │
00:02:43 #3353 [Verbose] > │ let v36 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3354 [Verbose] > │ let v37 : US0 = US0_1 │
00:02:43 #3355 [Verbose] > │ let v38 : US0 = v35 |> Option.map v36 |> Option.defaultValue v37 │
00:02:43 #3356 [Verbose] > │ let v39 : string = "f64::NAN" │
00:02:43 #3357 [Verbose] > │ let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39 │
00:02:43 #3358 [Verbose] > │ let v41 : string = "f64::NAN" │
00:02:43 #3359 [Verbose] > │ let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41 │
00:02:43 #3360 [Verbose] > │ let v43 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3361 [Verbose] > │ let v44 : num_complex_Complex<float> = │
00:02:43 #3362 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v40, v42) v43 │
00:02:43 #3363 [Verbose] > │ let v47 : num_complex_Complex<float> = │
00:02:43 #3364 [Verbose] > │ match v38 with │
00:02:43 #3365 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3366 [Verbose] > │ v44 │
00:02:43 #3367 [Verbose] > │ | US0_0(v45) -> (* Some *) │
00:02:43 #3368 [Verbose] > │ v45 │
00:02:43 #3369 [Verbose] > │ let v48 : string = "v47.conj()" │
00:02:43 #3370 [Verbose] > │ let v49 : num_complex_Complex<float> = │
00:02:43 #3371 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48 │
00:02:43 #3372 [Verbose] > │ let v50 : num_complex_Complex<float> = method7(v20) │
00:02:43 #3373 [Verbose] > │ let v51 : string = "v50.re" │
00:02:43 #3374 [Verbose] > │ let v52 : float = Fable.Core.RustInterop.emitRustExpr () v51 │
00:02:43 #3375 [Verbose] > │ let v53 : num_complex_Complex<float> = method7(v49) │
00:02:43 #3376 [Verbose] > │ let v54 : string = "v53.re" │
00:02:43 #3377 [Verbose] > │ let v55 : float = Fable.Core.RustInterop.emitRustExpr () v54 │
00:02:43 #3378 [Verbose] > │ let v56 : string = $"%A{v52}" │
00:02:43 #3379 [Verbose] > │ System.Console.WriteLine v56 │
00:02:43 #3380 [Verbose] > │ let v57 : bool = v52 = v55 │
00:02:43 #3381 [Verbose] > │ let v59 : bool = │
00:02:43 #3382 [Verbose] > │ if v57 then │
00:02:43 #3383 [Verbose] > │ true │
00:02:43 #3384 [Verbose] > │ else │
00:02:43 #3385 [Verbose] > │ method31(v57) │
00:02:43 #3386 [Verbose] > │ let v60 : string = $"__expect / actual: %A{v52} / expected: %A{v55}" │
00:02:43 #3387 [Verbose] > │ let v61 : bool = v59 = false │
00:02:43 #3388 [Verbose] > │ if v61 then │
00:02:43 #3389 [Verbose] > │ failwith<unit> v60 │
00:02:43 #3390 [Verbose] > │ let v62 : num_complex_Complex<float> = method8(v20) │
00:02:43 #3391 [Verbose] > │ let v63 : string = "v62.im" │
00:02:43 #3392 [Verbose] > │ let v64 : float = Fable.Core.RustInterop.emitRustExpr () v63 │
00:02:43 #3393 [Verbose] > │ let v65 : num_complex_Complex<float> = method8(v49) │
00:02:43 #3394 [Verbose] > │ let v66 : string = "v65.im" │
00:02:43 #3395 [Verbose] > │ let v67 : float = Fable.Core.RustInterop.emitRustExpr () v66 │
00:02:43 #3396 [Verbose] > │ let v68 : string = $"%A{v64}" │
00:02:43 #3397 [Verbose] > │ System.Console.WriteLine v68 │
00:02:43 #3398 [Verbose] > │ let v69 : bool = v64 = v67 │
00:02:43 #3399 [Verbose] > │ let v71 : bool = │
00:02:43 #3400 [Verbose] > │ if v69 then │
00:02:43 #3401 [Verbose] > │ true │
00:02:43 #3402 [Verbose] > │ else │
00:02:43 #3403 [Verbose] > │ method31(v69) │
00:02:43 #3404 [Verbose] > │ let v72 : string = $"__expect / actual: %A{v64} / expected: %A{v67}" │
00:02:43 #3405 [Verbose] > │ let v73 : bool = v71 = false │
00:02:43 #3406 [Verbose] > │ if v73 then │
00:02:43 #3407 [Verbose] > │ failwith<unit> v72 │
00:02:43 #3408 [Verbose] > │ and method46 () : unit = │
00:02:43 #3409 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3410 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3411 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3412 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3413 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3414 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3415 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3416 [Verbose] > │ method47(v3) │
00:02:43 #3417 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3418 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3419 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3420 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3421 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3422 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3423 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3424 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3425 [Verbose] > │ () v8 │
00:02:43 #3426 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3427 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3428 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3429 [Verbose] > │ () │
00:02:43 #3430 [Verbose] > │ and method49 (v0 : pyo3_Python) : unit = │
00:02:43 #3431 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3432 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #3433 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.01, 0.01) v1 │
00:02:43 #3434 [Verbose] > │ let v3 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3435 [Verbose] > │ let v4 : num_complex_Complex<float> = method3(v2) │
00:02:43 #3436 [Verbose] > │ let v5 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3437 [Verbose] > │ method4(v0, v3, v4) │
00:02:43 #3438 [Verbose] > │ let v6 : num_complex_Complex<float> = method24(v0, v2) │
00:02:43 #3439 [Verbose] > │ let v7 : string = "v5.ok()" │
00:02:43 #3440 [Verbose] > │ let v8 : num_complex_Complex<float> option = │
00:02:43 #3441 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3442 [Verbose] > │ let v9 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3443 [Verbose] > │ let v10 : US0 = US0_1 │
00:02:43 #3444 [Verbose] > │ let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10 │
00:02:43 #3445 [Verbose] > │ let v12 : string = "f64::NAN" │
00:02:43 #3446 [Verbose] > │ let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12 │
00:02:43 #3447 [Verbose] > │ let v14 : string = "f64::NAN" │
00:02:43 #3448 [Verbose] > │ let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14 │
00:02:43 #3449 [Verbose] > │ let v16 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3450 [Verbose] > │ let v17 : num_complex_Complex<float> = │
00:02:43 #3451 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16 │
00:02:43 #3452 [Verbose] > │ let v20 : num_complex_Complex<float> = │
00:02:43 #3453 [Verbose] > │ match v11 with │
00:02:43 #3454 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3455 [Verbose] > │ v17 │
00:02:43 #3456 [Verbose] > │ | US0_0(v18) -> (* Some *) │
00:02:43 #3457 [Verbose] > │ v18 │
00:02:43 #3458 [Verbose] > │ let v21 : num_complex_Complex<float> = method7(v20) │
00:02:43 #3459 [Verbose] > │ let v22 : string = "v21.re" │
00:02:43 #3460 [Verbose] > │ let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22 │
00:02:43 #3461 [Verbose] > │ let v24 : string = $"%A{v23}" │
00:02:43 #3462 [Verbose] > │ System.Console.WriteLine v24 │
00:02:43 #3463 [Verbose] > │ let v25 : bool = v23 < infinity │
00:02:43 #3464 [Verbose] > │ let v27 : bool = │
00:02:43 #3465 [Verbose] > │ if v25 then │
00:02:43 #3466 [Verbose] > │ true │
00:02:43 #3467 [Verbose] > │ else │
00:02:43 #3468 [Verbose] > │ method31(v25) │
00:02:43 #3469 [Verbose] > │ let v28 : string = $"__expect / actual: %A{v23} / expected: │
00:02:43 #3470 [Verbose] > │ %A{infinity}" │
00:02:43 #3471 [Verbose] > │ let v29 : bool = v27 = false │
00:02:43 #3472 [Verbose] > │ if v29 then │
00:02:43 #3473 [Verbose] > │ failwith<unit> v28 │
00:02:43 #3474 [Verbose] > │ let v30 : num_complex_Complex<float> = method8(v20) │
00:02:43 #3475 [Verbose] > │ let v31 : string = "v30.im" │
00:02:43 #3476 [Verbose] > │ let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31 │
00:02:43 #3477 [Verbose] > │ let v33 : string = $"%A{v32}" │
00:02:43 #3478 [Verbose] > │ System.Console.WriteLine v33 │
00:02:43 #3479 [Verbose] > │ let v34 : bool = v32 < infinity │
00:02:43 #3480 [Verbose] > │ let v36 : bool = │
00:02:43 #3481 [Verbose] > │ if v34 then │
00:02:43 #3482 [Verbose] > │ true │
00:02:43 #3483 [Verbose] > │ else │
00:02:43 #3484 [Verbose] > │ method31(v34) │
00:02:43 #3485 [Verbose] > │ let v37 : string = $"__expect / actual: %A{v32} / expected: │
00:02:43 #3486 [Verbose] > │ %A{infinity}" │
00:02:43 #3487 [Verbose] > │ let v38 : bool = v36 = false │
00:02:43 #3488 [Verbose] > │ if v38 then │
00:02:43 #3489 [Verbose] > │ failwith<unit> v37 │
00:02:43 #3490 [Verbose] > │ and method48 () : unit = │
00:02:43 #3491 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3492 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3493 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3494 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3495 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3496 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3497 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3498 [Verbose] > │ method49(v3) │
00:02:43 #3499 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3500 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3501 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3502 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3503 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3504 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3505 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3506 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3507 [Verbose] > │ () v8 │
00:02:43 #3508 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3509 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3510 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3511 [Verbose] > │ () │
00:02:43 #3512 [Verbose] > │ and method52 () : (float []) = │
00:02:43 #3513 [Verbose] > │ let v0 : (float []) = [|10.0; 20.0; 30.0; 40.0; 50.0; 60.0; 70.0; 80.0; │
00:02:43 #3514 [Verbose] > │ 90.0; 100.0|] │
00:02:43 #3515 [Verbose] > │ v0 │
00:02:43 #3516 [Verbose] > │ and method53 (v0 : bool) : bool = │
00:02:43 #3517 [Verbose] > │ let v1 : bool = v0 = false │
00:02:43 #3518 [Verbose] > │ v1 │
00:02:43 #3519 [Verbose] > │ and method51 (v0 : pyo3_Python) : unit = │
00:02:43 #3520 [Verbose] > │ let v1 : (float []) = method52() │
00:02:43 #3521 [Verbose] > │ let v2 : int32 = v1.Length │
00:02:43 #3522 [Verbose] > │ let v3 : Mut0 = {l0 = 0} : Mut0 │
00:02:43 #3523 [Verbose] > │ while method2(v2, v3) do │
00:02:43 #3524 [Verbose] > │ let v5 : int32 = v3.l0 │
00:02:43 #3525 [Verbose] > │ let v6 : float = v1.[int v5] │
00:02:43 #3526 [Verbose] > │ let v7 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3527 [Verbose] > │ let v8 : num_complex_Complex<float> = │
00:02:43 #3528 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, v6) v7 │
00:02:43 #3529 [Verbose] > │ let v9 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3530 [Verbose] > │ let v10 : num_complex_Complex<float> = method3(v8) │
00:02:43 #3531 [Verbose] > │ let v11 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3532 [Verbose] > │ method4(v0, v9, v10) │
00:02:43 #3533 [Verbose] > │ let v12 : num_complex_Complex<float> = method24(v0, v8) │
00:02:43 #3534 [Verbose] > │ let v13 : string = "v11.ok()" │
00:02:43 #3535 [Verbose] > │ let v14 : num_complex_Complex<float> option = │
00:02:43 #3536 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13 │
00:02:43 #3537 [Verbose] > │ let v15 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3538 [Verbose] > │ let v16 : US0 = US0_1 │
00:02:43 #3539 [Verbose] > │ let v17 : US0 = v14 |> Option.map v15 |> Option.defaultValue v16 │
00:02:43 #3540 [Verbose] > │ let v18 : string = "f64::NAN" │
00:02:43 #3541 [Verbose] > │ let v19 : float = Fable.Core.RustInterop.emitRustExpr () v18 │
00:02:43 #3542 [Verbose] > │ let v20 : string = "f64::NAN" │
00:02:43 #3543 [Verbose] > │ let v21 : float = Fable.Core.RustInterop.emitRustExpr () v20 │
00:02:43 #3544 [Verbose] > │ let v22 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3545 [Verbose] > │ let v23 : num_complex_Complex<float> = │
00:02:43 #3546 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v19, v21) v22 │
00:02:43 #3547 [Verbose] > │ let v26 : num_complex_Complex<float> = │
00:02:43 #3548 [Verbose] > │ match v17 with │
00:02:43 #3549 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3550 [Verbose] > │ v23 │
00:02:43 #3551 [Verbose] > │ | US0_0(v24) -> (* Some *) │
00:02:43 #3552 [Verbose] > │ v24 │
00:02:43 #3553 [Verbose] > │ let v27 : num_complex_Complex<float> = method7(v26) │
00:02:43 #3554 [Verbose] > │ let v28 : string = "v27.re" │
00:02:43 #3555 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:02:43 #3556 [Verbose] > │ let v30 : string = $"%A{v29}" │
00:02:43 #3557 [Verbose] > │ System.Console.WriteLine v30 │
00:02:43 #3558 [Verbose] > │ let v31 : bool = v29 = 0.0 │
00:02:43 #3559 [Verbose] > │ let v32 : bool = method53(v31) │
00:02:43 #3560 [Verbose] > │ let v34 : bool = │
00:02:43 #3561 [Verbose] > │ if v32 then │
00:02:43 #3562 [Verbose] > │ true │
00:02:43 #3563 [Verbose] > │ else │
00:02:43 #3564 [Verbose] > │ method31(v32) │
00:02:43 #3565 [Verbose] > │ let v35 : string = $"__expect / actual: %A{v29} / expected: %A{0.0}" │
00:02:43 #3566 [Verbose] > │ let v36 : bool = v34 = false │
00:02:43 #3567 [Verbose] > │ if v36 then │
00:02:43 #3568 [Verbose] > │ failwith<unit> v35 │
00:02:43 #3569 [Verbose] > │ let v37 : num_complex_Complex<float> = method8(v26) │
00:02:43 #3570 [Verbose] > │ let v38 : string = "v37.im" │
00:02:43 #3571 [Verbose] > │ let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38 │
00:02:43 #3572 [Verbose] > │ let v40 : string = $"%A{v39}" │
00:02:43 #3573 [Verbose] > │ System.Console.WriteLine v40 │
00:02:43 #3574 [Verbose] > │ let v41 : bool = v39 = 0.0 │
00:02:43 #3575 [Verbose] > │ let v42 : bool = method53(v41) │
00:02:43 #3576 [Verbose] > │ let v44 : bool = │
00:02:43 #3577 [Verbose] > │ if v42 then │
00:02:43 #3578 [Verbose] > │ true │
00:02:43 #3579 [Verbose] > │ else │
00:02:43 #3580 [Verbose] > │ method31(v42) │
00:02:43 #3581 [Verbose] > │ let v45 : string = $"__expect / actual: %A{v39} / expected: %A{0.0}" │
00:02:43 #3582 [Verbose] > │ let v46 : bool = v44 = false │
00:02:43 #3583 [Verbose] > │ if v46 then │
00:02:43 #3584 [Verbose] > │ failwith<unit> v45 │
00:02:43 #3585 [Verbose] > │ let v47 : int32 = v5 + 1 │
00:02:43 #3586 [Verbose] > │ v3.l0 <- v47 │
00:02:43 #3587 [Verbose] > │ () │
00:02:43 #3588 [Verbose] > │ () │
00:02:43 #3589 [Verbose] > │ and method50 () : unit = │
00:02:43 #3590 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3591 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3592 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3593 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3594 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3595 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3596 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3597 [Verbose] > │ method51(v3) │
00:02:43 #3598 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3599 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3600 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3601 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3602 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3603 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3604 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3605 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3606 [Verbose] > │ () v8 │
00:02:43 #3607 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3608 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3609 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3610 [Verbose] > │ () │
00:02:43 #3611 [Verbose] > │ and method55 (v0 : pyo3_Python) : unit = │
00:02:43 #3612 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3613 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #3614 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 14.134725) v1 │
00:02:43 #3615 [Verbose] > │ let v3 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3616 [Verbose] > │ let v4 : num_complex_Complex<float> = │
00:02:43 #3617 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.75, 20.5) v3 │
00:02:43 #3618 [Verbose] > │ let v5 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3619 [Verbose] > │ let v6 : num_complex_Complex<float> = │
00:02:43 #3620 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.25, 30.1) v5 │
00:02:43 #3621 [Verbose] > │ let v7 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3622 [Verbose] > │ let v8 : num_complex_Complex<float> = │
00:02:43 #3623 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.25, 40.0) v7 │
00:02:43 #3624 [Verbose] > │ let v9 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3625 [Verbose] > │ let v10 : num_complex_Complex<float> = │
00:02:43 #3626 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 50.0) v9 │
00:02:43 #3627 [Verbose] > │ let v11 : (num_complex_Complex<float> []) = [|v2; v4; v6; v8; v10|] │
00:02:43 #3628 [Verbose] > │ let v12 : int32 = v11.Length │
00:02:43 #3629 [Verbose] > │ let v13 : Mut0 = {l0 = 0} : Mut0 │
00:02:43 #3630 [Verbose] > │ while method2(v12, v13) do │
00:02:43 #3631 [Verbose] > │ let v15 : int32 = v13.l0 │
00:02:43 #3632 [Verbose] > │ let v16 : num_complex_Complex<float> = v11.[int v15] │
00:02:43 #3633 [Verbose] > │ let v17 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3634 [Verbose] > │ let v18 : num_complex_Complex<float> = method3(v16) │
00:02:43 #3635 [Verbose] > │ let v19 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3636 [Verbose] > │ method4(v0, v17, v18) │
00:02:43 #3637 [Verbose] > │ let v20 : num_complex_Complex<float> = method24(v0, v16) │
00:02:43 #3638 [Verbose] > │ let v21 : string = "v19.ok()" │
00:02:43 #3639 [Verbose] > │ let v22 : num_complex_Complex<float> option = │
00:02:43 #3640 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v21 │
00:02:43 #3641 [Verbose] > │ let v23 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3642 [Verbose] > │ let v24 : US0 = US0_1 │
00:02:43 #3643 [Verbose] > │ let v25 : US0 = v22 |> Option.map v23 |> Option.defaultValue v24 │
00:02:43 #3644 [Verbose] > │ let v26 : string = "f64::NAN" │
00:02:43 #3645 [Verbose] > │ let v27 : float = Fable.Core.RustInterop.emitRustExpr () v26 │
00:02:43 #3646 [Verbose] > │ let v28 : string = "f64::NAN" │
00:02:43 #3647 [Verbose] > │ let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28 │
00:02:43 #3648 [Verbose] > │ let v30 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3649 [Verbose] > │ let v31 : num_complex_Complex<float> = │
00:02:43 #3650 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v27, v29) v30 │
00:02:43 #3651 [Verbose] > │ let v34 : num_complex_Complex<float> = │
00:02:43 #3652 [Verbose] > │ match v25 with │
00:02:43 #3653 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3654 [Verbose] > │ v31 │
00:02:43 #3655 [Verbose] > │ | US0_0(v32) -> (* Some *) │
00:02:43 #3656 [Verbose] > │ v32 │
00:02:43 #3657 [Verbose] > │ let v35 : num_complex_Complex<float> = method7(v34) │
00:02:43 #3658 [Verbose] > │ let v36 : string = "v35.re" │
00:02:43 #3659 [Verbose] > │ let v37 : float = Fable.Core.RustInterop.emitRustExpr () v36 │
00:02:43 #3660 [Verbose] > │ let v38 : string = $"%A{v37}" │
00:02:43 #3661 [Verbose] > │ System.Console.WriteLine v38 │
00:02:43 #3662 [Verbose] > │ let v39 : bool = v37 = 0.0 │
00:02:43 #3663 [Verbose] > │ let v40 : bool = method53(v39) │
00:02:43 #3664 [Verbose] > │ let v42 : bool = │
00:02:43 #3665 [Verbose] > │ if v40 then │
00:02:43 #3666 [Verbose] > │ true │
00:02:43 #3667 [Verbose] > │ else │
00:02:43 #3668 [Verbose] > │ method31(v40) │
00:02:43 #3669 [Verbose] > │ let v43 : string = $"__expect / actual: %A{v37} / expected: %A{0.0}" │
00:02:43 #3670 [Verbose] > │ let v44 : bool = v42 = false │
00:02:43 #3671 [Verbose] > │ if v44 then │
00:02:43 #3672 [Verbose] > │ failwith<unit> v43 │
00:02:43 #3673 [Verbose] > │ let v45 : num_complex_Complex<float> = method8(v34) │
00:02:43 #3674 [Verbose] > │ let v46 : string = "v45.im" │
00:02:43 #3675 [Verbose] > │ let v47 : float = Fable.Core.RustInterop.emitRustExpr () v46 │
00:02:43 #3676 [Verbose] > │ let v48 : string = $"%A{v47}" │
00:02:43 #3677 [Verbose] > │ System.Console.WriteLine v48 │
00:02:43 #3678 [Verbose] > │ let v49 : bool = v47 = 0.0 │
00:02:43 #3679 [Verbose] > │ let v50 : bool = method53(v49) │
00:02:43 #3680 [Verbose] > │ let v52 : bool = │
00:02:43 #3681 [Verbose] > │ if v50 then │
00:02:43 #3682 [Verbose] > │ true │
00:02:43 #3683 [Verbose] > │ else │
00:02:43 #3684 [Verbose] > │ method31(v50) │
00:02:43 #3685 [Verbose] > │ let v53 : string = $"__expect / actual: %A{v47} / expected: %A{0.0}" │
00:02:43 #3686 [Verbose] > │ let v54 : bool = v52 = false │
00:02:43 #3687 [Verbose] > │ if v54 then │
00:02:43 #3688 [Verbose] > │ failwith<unit> v53 │
00:02:43 #3689 [Verbose] > │ let v55 : int32 = v15 + 1 │
00:02:43 #3690 [Verbose] > │ v13.l0 <- v55 │
00:02:43 #3691 [Verbose] > │ () │
00:02:43 #3692 [Verbose] > │ () │
00:02:43 #3693 [Verbose] > │ and method54 () : unit = │
00:02:43 #3694 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3695 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3696 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3697 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3698 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3699 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3700 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3701 [Verbose] > │ method55(v3) │
00:02:43 #3702 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3703 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3704 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3705 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3706 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3707 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3708 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3709 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3710 [Verbose] > │ () v8 │
00:02:43 #3711 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3712 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3713 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3714 [Verbose] > │ () │
00:02:43 #3715 [Verbose] > │ and method57 (v0 : pyo3_Python) : unit = │
00:02:43 #3716 [Verbose] > │ let v1 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3717 [Verbose] > │ let v2 : num_complex_Complex<float> = │
00:02:43 #3718 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.0, 4.0) v1 │
00:02:43 #3719 [Verbose] > │ let v3 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3720 [Verbose] > │ let v4 : num_complex_Complex<float> = │
00:02:43 #3721 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.5, -3.5) v3 │
00:02:43 #3722 [Verbose] > │ let v5 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3723 [Verbose] > │ let v6 : num_complex_Complex<float> = │
00:02:43 #3724 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.5, 2.5) v5 │
00:02:43 #3725 [Verbose] > │ let v7 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3726 [Verbose] > │ let v8 : num_complex_Complex<float> = │
00:02:43 #3727 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 14.134725) v7 │
00:02:43 #3728 [Verbose] > │ let v9 : (num_complex_Complex<float> []) = [|v2; v4; v6; v8|] │
00:02:43 #3729 [Verbose] > │ let v10 : int32 = v9.Length │
00:02:43 #3730 [Verbose] > │ let v11 : Mut0 = {l0 = 0} : Mut0 │
00:02:43 #3731 [Verbose] > │ while method2(v10, v11) do │
00:02:43 #3732 [Verbose] > │ let v13 : int32 = v11.l0 │
00:02:43 #3733 [Verbose] > │ let v14 : num_complex_Complex<float> = v9.[int v13] │
00:02:43 #3734 [Verbose] > │ let v15 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3735 [Verbose] > │ let v16 : num_complex_Complex<float> = method3(v14) │
00:02:43 #3736 [Verbose] > │ let v17 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3737 [Verbose] > │ method4(v0, v15, v16) │
00:02:43 #3738 [Verbose] > │ let v18 : num_complex_Complex<float> = method24(v0, v14) │
00:02:43 #3739 [Verbose] > │ let v19 : string = "v17.ok()" │
00:02:43 #3740 [Verbose] > │ let v20 : num_complex_Complex<float> option = │
00:02:43 #3741 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19 │
00:02:43 #3742 [Verbose] > │ let v21 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3743 [Verbose] > │ let v22 : US0 = US0_1 │
00:02:43 #3744 [Verbose] > │ let v23 : US0 = v20 |> Option.map v21 |> Option.defaultValue v22 │
00:02:43 #3745 [Verbose] > │ let v24 : string = "f64::NAN" │
00:02:43 #3746 [Verbose] > │ let v25 : float = Fable.Core.RustInterop.emitRustExpr () v24 │
00:02:43 #3747 [Verbose] > │ let v26 : string = "f64::NAN" │
00:02:43 #3748 [Verbose] > │ let v27 : float = Fable.Core.RustInterop.emitRustExpr () v26 │
00:02:43 #3749 [Verbose] > │ let v28 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3750 [Verbose] > │ let v29 : num_complex_Complex<float> = │
00:02:43 #3751 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v25, v27) v28 │
00:02:43 #3752 [Verbose] > │ let v32 : num_complex_Complex<float> = │
00:02:43 #3753 [Verbose] > │ match v23 with │
00:02:43 #3754 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3755 [Verbose] > │ v29 │
00:02:43 #3756 [Verbose] > │ | US0_0(v30) -> (* Some *) │
00:02:43 #3757 [Verbose] > │ v30 │
00:02:43 #3758 [Verbose] > │ let v33 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3759 [Verbose] > │ let v34 : num_complex_Complex<float> = │
00:02:43 #3760 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v33 │
00:02:43 #3761 [Verbose] > │ let v35 : num_complex_Complex<float> = method27(v34) │
00:02:43 #3762 [Verbose] > │ let v36 : num_complex_Complex<float> = method28(v14) │
00:02:43 #3763 [Verbose] > │ let v37 : string = "num_complex::Complex::powc(v35, v36)" │
00:02:43 #3764 [Verbose] > │ let v38 : num_complex_Complex<float> = │
00:02:43 #3765 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37 │
00:02:43 #3766 [Verbose] > │ let v39 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3767 [Verbose] > │ let v40 : num_complex_Complex<float> = │
00:02:43 #3768 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v39 │
00:02:43 #3769 [Verbose] > │ let v41 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3770 [Verbose] > │ let v42 : num_complex_Complex<float> = │
00:02:43 #3771 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v41 │
00:02:43 #3772 [Verbose] > │ let v43 : string = "$0 - $1" │
00:02:43 #3773 [Verbose] > │ let v44 : num_complex_Complex<float> = │
00:02:43 #3774 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v14, v42) v43 │
00:02:43 #3775 [Verbose] > │ let v45 : num_complex_Complex<float> = method27(v40) │
00:02:43 #3776 [Verbose] > │ let v46 : num_complex_Complex<float> = method28(v44) │
00:02:43 #3777 [Verbose] > │ let v47 : string = "num_complex::Complex::powc(v45, v46)" │
00:02:43 #3778 [Verbose] > │ let v48 : num_complex_Complex<float> = │
00:02:43 #3779 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v47 │
00:02:43 #3780 [Verbose] > │ let v49 : string = "$0 * $1" │
00:02:43 #3781 [Verbose] > │ let v50 : num_complex_Complex<float> = │
00:02:43 #3782 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v38, v48) v49 │
00:02:43 #3783 [Verbose] > │ let v51 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3784 [Verbose] > │ let v52 : num_complex_Complex<float> = │
00:02:43 #3785 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v51 │
00:02:43 #3786 [Verbose] > │ let v53 : string = "$0 * $1" │
00:02:43 #3787 [Verbose] > │ let v54 : num_complex_Complex<float> = │
00:02:43 #3788 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v52, v14) v53 │
00:02:43 #3789 [Verbose] > │ let v55 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3790 [Verbose] > │ let v56 : num_complex_Complex<float> = │
00:02:43 #3791 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v55 │
00:02:43 #3792 [Verbose] > │ let v57 : string = "v54 / v56" │
00:02:43 #3793 [Verbose] > │ let v58 : num_complex_Complex<float> = │
00:02:43 #3794 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v57 │
00:02:43 #3795 [Verbose] > │ let v59 : string = "v58.sin()" │
00:02:43 #3796 [Verbose] > │ let v60 : num_complex_Complex<float> = │
00:02:43 #3797 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v59 │
00:02:43 #3798 [Verbose] > │ let v61 : string = "$0 * $1" │
00:02:43 #3799 [Verbose] > │ let v62 : num_complex_Complex<float> = │
00:02:43 #3800 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v50, v60) v61 │
00:02:43 #3801 [Verbose] > │ let v63 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3802 [Verbose] > │ let v64 : num_complex_Complex<float> = │
00:02:43 #3803 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v63 │
00:02:43 #3804 [Verbose] > │ let v65 : string = "$0 - $1" │
00:02:43 #3805 [Verbose] > │ let v66 : num_complex_Complex<float> = │
00:02:43 #3806 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v64, v14) v65 │
00:02:43 #3807 [Verbose] > │ let v67 : string = $" s = mpmath.gamma(s)" │
00:02:43 #3808 [Verbose] > │ let v68 : num_complex_Complex<float> = method3(v66) │
00:02:43 #3809 [Verbose] > │ let v69 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3810 [Verbose] > │ method29(v0, v67, v68) │
00:02:43 #3811 [Verbose] > │ let v70 : string = "v69.ok()" │
00:02:43 #3812 [Verbose] > │ let v71 : num_complex_Complex<float> option = │
00:02:43 #3813 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v70 │
00:02:43 #3814 [Verbose] > │ let v72 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3815 [Verbose] > │ let v73 : US0 = US0_1 │
00:02:43 #3816 [Verbose] > │ let v74 : US0 = v71 |> Option.map v72 |> Option.defaultValue v73 │
00:02:43 #3817 [Verbose] > │ let v75 : string = "f64::NAN" │
00:02:43 #3818 [Verbose] > │ let v76 : float = Fable.Core.RustInterop.emitRustExpr () v75 │
00:02:43 #3819 [Verbose] > │ let v77 : string = "f64::NAN" │
00:02:43 #3820 [Verbose] > │ let v78 : float = Fable.Core.RustInterop.emitRustExpr () v77 │
00:02:43 #3821 [Verbose] > │ let v79 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3822 [Verbose] > │ let v80 : num_complex_Complex<float> = │
00:02:43 #3823 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v76, v78) v79 │
00:02:43 #3824 [Verbose] > │ let v83 : num_complex_Complex<float> = │
00:02:43 #3825 [Verbose] > │ match v74 with │
00:02:43 #3826 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3827 [Verbose] > │ v80 │
00:02:43 #3828 [Verbose] > │ | US0_0(v81) -> (* Some *) │
00:02:43 #3829 [Verbose] > │ v81 │
00:02:43 #3830 [Verbose] > │ let v84 : string = "$0 * $1" │
00:02:43 #3831 [Verbose] > │ let v85 : num_complex_Complex<float> = │
00:02:43 #3832 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v62, v83) v84 │
00:02:43 #3833 [Verbose] > │ let v86 : num_complex_Complex<float> = method7(v14) │
00:02:43 #3834 [Verbose] > │ let v87 : string = "v86.re" │
00:02:43 #3835 [Verbose] > │ let v88 : float = Fable.Core.RustInterop.emitRustExpr () v87 │
00:02:43 #3836 [Verbose] > │ let v89 : float = 1.0 - v88 │
00:02:43 #3837 [Verbose] > │ let v90 : num_complex_Complex<float> = method8(v14) │
00:02:43 #3838 [Verbose] > │ let v91 : string = "v90.im" │
00:02:43 #3839 [Verbose] > │ let v92 : float = Fable.Core.RustInterop.emitRustExpr () v91 │
00:02:43 #3840 [Verbose] > │ let v93 : float = -v92 │
00:02:43 #3841 [Verbose] > │ let v94 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3842 [Verbose] > │ let v95 : num_complex_Complex<float> = │
00:02:43 #3843 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v89, v93) v94 │
00:02:43 #3844 [Verbose] > │ let v96 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3845 [Verbose] > │ let v97 : num_complex_Complex<float> = method3(v95) │
00:02:43 #3846 [Verbose] > │ let v98 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3847 [Verbose] > │ method4(v0, v96, v97) │
00:02:43 #3848 [Verbose] > │ let v99 : num_complex_Complex<float> = method24(v0, v95) │
00:02:43 #3849 [Verbose] > │ let v100 : string = "v98.ok()" │
00:02:43 #3850 [Verbose] > │ let v101 : num_complex_Complex<float> option = │
00:02:43 #3851 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v100 │
00:02:43 #3852 [Verbose] > │ let v102 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3853 [Verbose] > │ let v103 : US0 = US0_1 │
00:02:43 #3854 [Verbose] > │ let v104 : US0 = v101 |> Option.map v102 |> Option.defaultValue v103 │
00:02:43 #3855 [Verbose] > │ let v105 : string = "f64::NAN" │
00:02:43 #3856 [Verbose] > │ let v106 : float = Fable.Core.RustInterop.emitRustExpr () v105 │
00:02:43 #3857 [Verbose] > │ let v107 : string = "f64::NAN" │
00:02:43 #3858 [Verbose] > │ let v108 : float = Fable.Core.RustInterop.emitRustExpr () v107 │
00:02:43 #3859 [Verbose] > │ let v109 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3860 [Verbose] > │ let v110 : num_complex_Complex<float> = │
00:02:43 #3861 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v106, v108) v109 │
00:02:43 #3862 [Verbose] > │ let v113 : num_complex_Complex<float> = │
00:02:43 #3863 [Verbose] > │ match v104 with │
00:02:43 #3864 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #3865 [Verbose] > │ v110 │
00:02:43 #3866 [Verbose] > │ | US0_0(v111) -> (* Some *) │
00:02:43 #3867 [Verbose] > │ v111 │
00:02:43 #3868 [Verbose] > │ let v114 : string = "$0 * $1" │
00:02:43 #3869 [Verbose] > │ let v115 : num_complex_Complex<float> = │
00:02:43 #3870 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v85, v113) v114 │
00:02:43 #3871 [Verbose] > │ let v116 : num_complex_Complex<float> = method7(v32) │
00:02:43 #3872 [Verbose] > │ let v117 : string = "v116.re" │
00:02:43 #3873 [Verbose] > │ let v118 : float = Fable.Core.RustInterop.emitRustExpr () v117 │
00:02:43 #3874 [Verbose] > │ let v119 : num_complex_Complex<float> = method7(v115) │
00:02:43 #3875 [Verbose] > │ let v120 : string = "v119.re" │
00:02:43 #3876 [Verbose] > │ let v121 : float = Fable.Core.RustInterop.emitRustExpr () v120 │
00:02:43 #3877 [Verbose] > │ let v122 : float = v118 - v121 │
00:02:43 #3878 [Verbose] > │ let v123 : float = -v122 │
00:02:43 #3879 [Verbose] > │ let v124 : bool = v122 >= v123 │
00:02:43 #3880 [Verbose] > │ let v125 : float = │
00:02:43 #3881 [Verbose] > │ if v124 then │
00:02:43 #3882 [Verbose] > │ v122 │
00:02:43 #3883 [Verbose] > │ else │
00:02:43 #3884 [Verbose] > │ v123 │
00:02:43 #3885 [Verbose] > │ let v126 : string = $"%A{v125}" │
00:02:43 #3886 [Verbose] > │ System.Console.WriteLine v126 │
00:02:43 #3887 [Verbose] > │ let v127 : bool = v125 < 0.0001 │
00:02:43 #3888 [Verbose] > │ let v129 : bool = │
00:02:43 #3889 [Verbose] > │ if v127 then │
00:02:43 #3890 [Verbose] > │ true │
00:02:43 #3891 [Verbose] > │ else │
00:02:43 #3892 [Verbose] > │ method31(v127) │
00:02:43 #3893 [Verbose] > │ let v130 : string = $"__expect / actual: %A{v125} / expected: │
00:02:43 #3894 [Verbose] > │ %A{0.0001}" │
00:02:43 #3895 [Verbose] > │ let v131 : bool = v129 = false │
00:02:43 #3896 [Verbose] > │ if v131 then │
00:02:43 #3897 [Verbose] > │ failwith<unit> v130 │
00:02:43 #3898 [Verbose] > │ let v132 : num_complex_Complex<float> = method8(v32) │
00:02:43 #3899 [Verbose] > │ let v133 : string = "v132.im" │
00:02:43 #3900 [Verbose] > │ let v134 : float = Fable.Core.RustInterop.emitRustExpr () v133 │
00:02:43 #3901 [Verbose] > │ let v135 : num_complex_Complex<float> = method8(v115) │
00:02:43 #3902 [Verbose] > │ let v136 : string = "v135.im" │
00:02:43 #3903 [Verbose] > │ let v137 : float = Fable.Core.RustInterop.emitRustExpr () v136 │
00:02:43 #3904 [Verbose] > │ let v138 : float = v134 - v137 │
00:02:43 #3905 [Verbose] > │ let v139 : float = -v138 │
00:02:43 #3906 [Verbose] > │ let v140 : bool = v138 >= v139 │
00:02:43 #3907 [Verbose] > │ let v141 : float = │
00:02:43 #3908 [Verbose] > │ if v140 then │
00:02:43 #3909 [Verbose] > │ v138 │
00:02:43 #3910 [Verbose] > │ else │
00:02:43 #3911 [Verbose] > │ v139 │
00:02:43 #3912 [Verbose] > │ let v142 : string = $"%A{v141}" │
00:02:43 #3913 [Verbose] > │ System.Console.WriteLine v142 │
00:02:43 #3914 [Verbose] > │ let v143 : bool = v141 < 0.0001 │
00:02:43 #3915 [Verbose] > │ let v145 : bool = │
00:02:43 #3916 [Verbose] > │ if v143 then │
00:02:43 #3917 [Verbose] > │ true │
00:02:43 #3918 [Verbose] > │ else │
00:02:43 #3919 [Verbose] > │ method31(v143) │
00:02:43 #3920 [Verbose] > │ let v146 : string = $"__expect / actual: %A{v141} / expected: │
00:02:43 #3921 [Verbose] > │ %A{0.0001}" │
00:02:43 #3922 [Verbose] > │ let v147 : bool = v145 = false │
00:02:43 #3923 [Verbose] > │ if v147 then │
00:02:43 #3924 [Verbose] > │ failwith<unit> v146 │
00:02:43 #3925 [Verbose] > │ let v148 : int32 = v13 + 1 │
00:02:43 #3926 [Verbose] > │ v11.l0 <- v148 │
00:02:43 #3927 [Verbose] > │ () │
00:02:43 #3928 [Verbose] > │ () │
00:02:43 #3929 [Verbose] > │ and method56 () : unit = │
00:02:43 #3930 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #3931 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #3932 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #3933 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #3934 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #3935 [Verbose] > │ let v2 : string = "py" │
00:02:43 #3936 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #3937 [Verbose] > │ method57(v3) │
00:02:43 #3938 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #3939 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #3940 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #3941 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #3942 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #3943 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #3944 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #3945 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #3946 [Verbose] > │ () v8 │
00:02:43 #3947 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #3948 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #3949 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #3950 [Verbose] > │ () │
00:02:43 #3951 [Verbose] > │ and method60 (v0 : int32, v1 : Mut3) : bool = │
00:02:43 #3952 [Verbose] > │ let v2 : int32 = v1.l0 │
00:02:43 #3953 [Verbose] > │ let v3 : bool = v2 < v0 │
00:02:43 #3954 [Verbose] > │ v3 │
00:02:43 #3955 [Verbose] > │ and method59 (v0 : pyo3_Python) : unit = │
00:02:43 #3956 [Verbose] > │ let v1 : (float []) = [|2.0; 2.5; 3.0; 3.5; 4.0; 4.5; 5.0|] │
00:02:43 #3957 [Verbose] > │ let v2 : (float []) = [|2.0; 3.0; 5.0; 7.0; 11.0; 13.0; 17.0; 19.0; │
00:02:43 #3958 [Verbose] > │ 23.0; 29.0; 31.0; 37.0; 41.0; 43.0; 47.0; 53.0; 59.0; 61.0; 67.0; 71.0|] │
00:02:43 #3959 [Verbose] > │ let v3 : int32 = v1.Length │
00:02:43 #3960 [Verbose] > │ let v4 : Mut0 = {l0 = 0} : Mut0 │
00:02:43 #3961 [Verbose] > │ while method2(v3, v4) do │
00:02:43 #3962 [Verbose] > │ let v6 : int32 = v4.l0 │
00:02:43 #3963 [Verbose] > │ let v7 : float = v1.[int v6] │
00:02:43 #3964 [Verbose] > │ let v8 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3965 [Verbose] > │ let v9 : num_complex_Complex<float> = │
00:02:43 #3966 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v7, 0.0) v8 │
00:02:43 #3967 [Verbose] > │ let v10 : int32 = v2.Length │
00:02:43 #3968 [Verbose] > │ let v11 : Mut3 = {l0 = 0; l1 = 1.0} : Mut3 │
00:02:43 #3969 [Verbose] > │ while method60(v10, v11) do │
00:02:43 #3970 [Verbose] > │ let v13 : int32 = v11.l0 │
00:02:43 #3971 [Verbose] > │ let v14 : float = v11.l1 │
00:02:43 #3972 [Verbose] > │ let v15 : float = v2.[int v13] │
00:02:43 #3973 [Verbose] > │ let v16 : float = -v7 │
00:02:43 #3974 [Verbose] > │ let v17 : float = v15 ** v16 │
00:02:43 #3975 [Verbose] > │ let v18 : float = 1.0 - v17 │
00:02:43 #3976 [Verbose] > │ let v19 : float = v14 / v18 │
00:02:43 #3977 [Verbose] > │ let v20 : int32 = v13 + 1 │
00:02:43 #3978 [Verbose] > │ v11.l0 <- v20 │
00:02:43 #3979 [Verbose] > │ v11.l1 <- v19 │
00:02:43 #3980 [Verbose] > │ () │
00:02:43 #3981 [Verbose] > │ let v21 : float = v11.l1 │
00:02:43 #3982 [Verbose] > │ let v22 : string = $" s = mpmath.zeta(s)" │
00:02:43 #3983 [Verbose] > │ let v23 : num_complex_Complex<float> = method3(v9) │
00:02:43 #3984 [Verbose] > │ let v24 : Result<num_complex_Complex<float>, std_string_String> = │
00:02:43 #3985 [Verbose] > │ method4(v0, v22, v23) │
00:02:43 #3986 [Verbose] > │ let v25 : num_complex_Complex<float> = method24(v0, v9) │
00:02:43 #3987 [Verbose] > │ let v26 : string = "v24.ok()" │
00:02:43 #3988 [Verbose] > │ let v27 : num_complex_Complex<float> option = │
00:02:43 #3989 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v26 │
00:02:43 #3990 [Verbose] > │ let v28 : (num_complex_Complex<float> -> US0) = method30() │
00:02:43 #3991 [Verbose] > │ let v29 : US0 = US0_1 │
00:02:43 #3992 [Verbose] > │ let v30 : US0 = v27 |> Option.map v28 |> Option.defaultValue v29 │
00:02:43 #3993 [Verbose] > │ let v31 : string = "f64::NAN" │
00:02:43 #3994 [Verbose] > │ let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31 │
00:02:43 #3995 [Verbose] > │ let v33 : string = "f64::NAN" │
00:02:43 #3996 [Verbose] > │ let v34 : float = Fable.Core.RustInterop.emitRustExpr () v33 │
00:02:43 #3997 [Verbose] > │ let v35 : string = "num_complex::Complex::new($0, $1)" │
00:02:43 #3998 [Verbose] > │ let v36 : num_complex_Complex<float> = │
00:02:43 #3999 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v32, v34) v35 │
00:02:43 #4000 [Verbose] > │ let v39 : num_complex_Complex<float> = │
00:02:43 #4001 [Verbose] > │ match v30 with │
00:02:43 #4002 [Verbose] > │ | US0_1 -> (* None *) │
00:02:43 #4003 [Verbose] > │ v36 │
00:02:43 #4004 [Verbose] > │ | US0_0(v37) -> (* Some *) │
00:02:43 #4005 [Verbose] > │ v37 │
00:02:43 #4006 [Verbose] > │ let v40 : num_complex_Complex<float> = method7(v39) │
00:02:43 #4007 [Verbose] > │ let v41 : string = "v40.re" │
00:02:43 #4008 [Verbose] > │ let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41 │
00:02:43 #4009 [Verbose] > │ let v43 : float = v42 - v21 │
00:02:43 #4010 [Verbose] > │ let v44 : float = -v43 │
00:02:43 #4011 [Verbose] > │ let v45 : bool = v43 >= v44 │
00:02:43 #4012 [Verbose] > │ let v46 : float = │
00:02:43 #4013 [Verbose] > │ if v45 then │
00:02:43 #4014 [Verbose] > │ v43 │
00:02:43 #4015 [Verbose] > │ else │
00:02:43 #4016 [Verbose] > │ v44 │
00:02:43 #4017 [Verbose] > │ let v47 : string = $"%A{v46}" │
00:02:43 #4018 [Verbose] > │ System.Console.WriteLine v47 │
00:02:43 #4019 [Verbose] > │ let v48 : bool = v46 < 0.01 │
00:02:43 #4020 [Verbose] > │ let v50 : bool = │
00:02:43 #4021 [Verbose] > │ if v48 then │
00:02:43 #4022 [Verbose] > │ true │
00:02:43 #4023 [Verbose] > │ else │
00:02:43 #4024 [Verbose] > │ method31(v48) │
00:02:43 #4025 [Verbose] > │ let v51 : string = $"__expect / actual: %A{v46} / expected: │
00:02:43 #4026 [Verbose] > │ %A{0.01}" │
00:02:43 #4027 [Verbose] > │ let v52 : bool = v50 = false │
00:02:43 #4028 [Verbose] > │ if v52 then │
00:02:43 #4029 [Verbose] > │ failwith<unit> v51 │
00:02:43 #4030 [Verbose] > │ let v53 : num_complex_Complex<float> = method8(v39) │
00:02:43 #4031 [Verbose] > │ let v54 : string = "v53.im" │
00:02:43 #4032 [Verbose] > │ let v55 : float = Fable.Core.RustInterop.emitRustExpr () v54 │
00:02:43 #4033 [Verbose] > │ let v56 : string = $"%A{v55}" │
00:02:43 #4034 [Verbose] > │ System.Console.WriteLine v56 │
00:02:43 #4035 [Verbose] > │ let v57 : bool = v55 < 0.01 │
00:02:43 #4036 [Verbose] > │ let v59 : bool = │
00:02:43 #4037 [Verbose] > │ if v57 then │
00:02:43 #4038 [Verbose] > │ true │
00:02:43 #4039 [Verbose] > │ else │
00:02:43 #4040 [Verbose] > │ method31(v57) │
00:02:43 #4041 [Verbose] > │ let v60 : string = $"__expect / actual: %A{v55} / expected: │
00:02:43 #4042 [Verbose] > │ %A{0.01}" │
00:02:43 #4043 [Verbose] > │ let v61 : bool = v59 = false │
00:02:43 #4044 [Verbose] > │ if v61 then │
00:02:43 #4045 [Verbose] > │ failwith<unit> v60 │
00:02:43 #4046 [Verbose] > │ let v62 : int32 = v6 + 1 │
00:02:43 #4047 [Verbose] > │ v4.l0 <- v62 │
00:02:43 #4048 [Verbose] > │ () │
00:02:43 #4049 [Verbose] > │ () │
00:02:43 #4050 [Verbose] > │ and method58 () : unit = │
00:02:43 #4051 [Verbose] > │ let v0 : string = "pyo3::prepare_freethreaded_python()" │
00:02:43 #4052 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #4053 [Verbose] > │ let v1 : string = "let __result = pyo3::Python::with_gil(|py| -> │
00:02:43 #4054 [Verbose] > │ pyo3::PyResult<()> { //" │
00:02:43 #4055 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #4056 [Verbose] > │ let v2 : string = "py" │
00:02:43 #4057 [Verbose] > │ let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #4058 [Verbose] > │ method59(v3) │
00:02:43 #4059 [Verbose] > │ let v4 : Result<unit, pyo3_PyErr> = Ok () │
00:02:43 #4060 [Verbose] > │ let v5 : Result<unit, pyo3_PyErr> = method32(v4) │
00:02:43 #4061 [Verbose] > │ let v6 : string = "v5 }})" │
00:02:43 #4062 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #4063 [Verbose] > │ let v7 : string = "{ //" │
00:02:43 #4064 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #4065 [Verbose] > │ let v8 : string = "__result" │
00:02:43 #4066 [Verbose] > │ let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr │
00:02:43 #4067 [Verbose] > │ () v8 │
00:02:43 #4068 [Verbose] > │ let v10 : Result<unit, pyo3_PyErr> = method33(v9) │
00:02:43 #4069 [Verbose] > │ let v11 : string = "v10.unwrap()" │
00:02:43 #4070 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #4071 [Verbose] > │ () │
00:02:43 #4072 [Verbose] > │ and closure0 () () : unit = │
00:02:43 #4073 [Verbose] > │ let v0 : string = "}//" │
00:02:43 #4074 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v0 │
00:02:43 #4075 [Verbose] > │ let v1 : string = "#[test] fn test_zeta_at_known_values_() { //" │
00:02:43 #4076 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v1 │
00:02:43 #4077 [Verbose] > │ method0() │
00:02:43 #4078 [Verbose] > │ let v2 : string = "} #[test] fn test_zeta_at_2_minus2() { //" │
00:02:43 #4079 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v2 │
00:02:43 #4080 [Verbose] > │ method34() │
00:02:43 #4081 [Verbose] > │ let v3 : string = "} #[test] fn test_trivial_zero_at_negative_even___() │
00:02:43 #4082 [Verbose] > │ { //" │
00:02:43 #4083 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v3 │
00:02:43 #4084 [Verbose] > │ method36() │
00:02:43 #4085 [Verbose] > │ let v4 : string = "} #[test] fn test_non_trivial_zero___() { //" │
00:02:43 #4086 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v4 │
00:02:43 #4087 [Verbose] > │ method40() │
00:02:43 #4088 [Verbose] > │ let v5 : string = "} #[test] fn test_real_part_greater_than_one___() { │
00:02:43 #4089 [Verbose] > │ //" │
00:02:43 #4090 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v5 │
00:02:43 #4091 [Verbose] > │ method42() │
00:02:43 #4092 [Verbose] > │ let v6 : string = "} #[test] fn test_zeta_at_1___() { //" │
00:02:43 #4093 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v6 │
00:02:43 #4094 [Verbose] > │ method44() │
00:02:43 #4095 [Verbose] > │ let v7 : string = "} #[test] fn test_symmetry_across_real_axis___() { │
00:02:43 #4096 [Verbose] > │ //" │
00:02:43 #4097 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7 │
00:02:43 #4098 [Verbose] > │ method46() │
00:02:43 #4099 [Verbose] > │ let v8 : string = "} #[test] fn test_behavior_near_origin___() { //" │
00:02:43 #4100 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v8 │
00:02:43 #4101 [Verbose] > │ method48() │
00:02:43 #4102 [Verbose] > │ let v9 : string = "} #[test] fn test_imaginary_axis() { //" │
00:02:43 #4103 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v9 │
00:02:43 #4104 [Verbose] > │ method50() │
00:02:43 #4105 [Verbose] > │ let v10 : string = "} #[test] fn test_critical_strip() { //" │
00:02:43 #4106 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10 │
00:02:43 #4107 [Verbose] > │ method54() │
00:02:43 #4108 [Verbose] > │ let v11 : string = "} #[test] fn │
00:02:43 #4109 [Verbose] > │ test_reflection_formula_for_specific_value() { //" │
00:02:43 #4110 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v11 │
00:02:43 #4111 [Verbose] > │ method56() │
00:02:43 #4112 [Verbose] > │ let v12 : string = "} #[test] fn test_euler_product_formula() { //" │
00:02:43 #4113 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v12 │
00:02:43 #4114 [Verbose] > │ method58() │
00:02:43 #4115 [Verbose] > │ and closure6 () (v0 : (string [])) : int32 = │
00:02:43 #4116 [Verbose] > │ let v1 : string = $"value: {1}" │
00:02:43 #4117 [Verbose] > │ System.Console.WriteLine v1 │
00:02:43 #4118 [Verbose] > │ 0 │
00:02:43 #4119 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:02:43 #4120 [Verbose] > │ let tests () = v0 () │
00:02:43 #4121 [Verbose] > │ let v1 : ((string []) -> int32) = closure6() │
00:02:43 #4122 [Verbose] > │ let main args = v1 args │
00:02:43 #4123 [Verbose] > │ () │
00:02:43 #4124 [Verbose] > │ │
00:02:43 #4125 [Verbose] > │ │
00:02:43 #4126 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:02:46 #4127 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html
00:02:46 #4128 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:02:46 #4129 [Verbose] > validate(nb)
00:02:47 #4130 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:02:47 #4131 [Verbose] > return _pygments_highlight(
00:02:48 #4132 [Verbose] > [NbConvertApp] Writing 7420568 bytes to math.dib.html
00:02:50 #4133 [Debug] executeAsync / exitCode: 0 / output.Length: 297960
00:02:50 #4134 [Debug] main / executeCommand / exitCode: 0
00:02:52 #4135 [Debug] runWithTimeoutChildAsync / timeout: 2000
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: math.dib
00:00:00 #2 [Debug] parseDibCode / output: Spi / file: math.dib
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command =
"dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = Some <fun:main@438-47> }
00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\math
00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release
00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805
00:00:01 #11 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:01 #12 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #13 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:01 #14 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # math\n\nopen testing\nopen rust_operators\n\ninl types () =\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022num_complex::Complex\u003C$0\u003E\\\u0022)\u003E] type num_complex_Complex\u003C\u0027T\u003E = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::types::PyModule\\\u0022)\u003E] type pyo3_types_PyModule = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Bound\u003C$0\u003E\\\u0022)\u003E] type pyo3_Bound\u003C\u0027T\u003E = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Python\\\u0022)\u003E] type pyo3_Python = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyAny\\\u0022)\u003E] type pyo3_PyAny = class end\u0022\n global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyErr\\\u0022)\u003E] type pyo3_PyErr = class end\u0022\n\ninl types () =\n rust.types ()\n sm\u0027.types ()\n types ()\n\n// // ## complex\n\nnominal complex t = $\u0022num_complex_Complex\u003C\u0060t\u003E\u0022\nnominal bound t = $\u0022pyo3_Bound\u003C\u0060t\u003E\u0022\nnominal python = $\u0022pyo3_Python\u0022\nnominal pymodule = $\u0022pyo3_types_PyModule\u0022\nnominal pyany = $\u0022pyo3_PyAny\u0022\nnominal pyerr = $\u0022pyo3_PyErr\u0022\n\ninl complex forall t. ((re : t), (im : t)) : complex t =\n !\\\\((re, im), $\u0027\u0022num_complex::Complex::new($0, $1)\u0022\u0027)\n\n// // ## complex_sin\n\ninl re forall t. (c : complex t) : t =\n inl c = join c\n !\\($\u0027\u0022!c.re\u0022\u0027)\n\ninl im forall t. (c : complex t) : t =\n inl c = join c\n !\\($\u0027\u0022!c.im\u0022\u0027)\n\ninl complex_unbox forall t. (c : complex t) =\n re c, im c\n\ninl (~.^) c = complex c\n\ninl complex_eq forall t. (a : complex t) (b : complex t) : bool =\n !\\($\u0027\u0022!a == !b\u0022\u0027)\n\ninl (.=) a b = complex_eq a b\n\ninstance equable complex t = complex_eq\n\ninl complex_add forall t. (a : complex t) (b : complex t) : complex t =\n !\\($\u0027\u0022!a \u002B !b\u0022\u0027)\n\ninl (.\u002B) a b = complex_add a b\n\ninl complex_sub forall t. (a : complex t) (b : complex t) : complex t =\n !\\\\((a, b), $\u0027\u0022$0 - $1\u0022\u0027)\n\ninl (.-) a b = complex_sub a b\n\ninl complex_mult forall t. (a : complex t) (b : complex t) : complex t =\n !\\\\((a, b), $\u0027\u0022$0 * $1\u0022\u0027)\n\ninl (.*) a b = complex_mult a b\n\ninl complex_div forall t. (a : complex t) (b : complex t) : complex t =\n !\\($\u0027\u0022!a / !b\u0022\u0027)\n\ninl (./) a b = complex_div a b\n\ninl powc forall t. (s : complex t) (c : complex t) : complex t =\n inl c = join c\n inl s = join s\n !\\($\u0027\u0022num_complex::Complex::powc(!c, !s)\u0022\u0027)\n\ninl (.**) a b = powc b a\n\ninl complex_sin forall t. (c : complex t) : complex t =\n !\\($\u0027\u0022!c.sin()\u0022\u0027)\n\ninl conj forall t. (c : complex t) : complex t =\n !\\($\u0027\u0022!c.conj()\u0022\u0027)\n\n// // ## zeta\n\ninl zeta log (gamma : complex f64 -\u003E complex f64) (s : complex f64) : complex f64 =\n inl rec zeta count gamma s =\n if log then\n !\\\\(s, $\u0027\u0022println\\!(\\\\\\\u0022zeta / count: {:?} / s: {:?}\\\\\\\u0022, !count, $0)\u0022\u0027)\n if re s \u003E 1 then\n (.^(0, 0), (am.init 10000i32 id : a i32 _))\n ||\u003E am.fold fun acc n =\u003E\n acc .\u002B (.^(1, 0) ./ (.^(f64 n, 0) .** s))\n else\n inl gamma_term = gamma (.^(1, 0) .- s)\n inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin\n inl one_minus_s = .^(1 - re s, -(im s))\n inl mirror_term =\n if re one_minus_s \u003C= 1\n then .^(0, 0)\n else\n if count \u003C= 3\n then zeta (count \u002B 1) gamma one_minus_s\n else one_minus_s\n inl reflection_formula =\n .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .* mirror_term\n reflection_formula\n join zeta 0i32 gamma s\n\n// // ## eval\n\ninl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =\n inl py = join py\n inl code = code |\u003E sm\u0027.as_str\n !\\($\u0027\u0022pyo3::types::PyModule::from_code_bound(!py, !code, \\\\\u0022\\\\\u0022, \\\\\u0022\\\\\u0022)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl use_pyanymethods () =\n global \u0022Fable.Core.RustInterop.emitRustExpr () \\\u0022);\\nuse pyo3::prelude::PyAnyMethods;\\n//\\\u0022\u0022\n\ninl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =\n inl attr = join attr\n inl attr = attr |\u003E sm\u0027.as_str\n inl module = join module\n use_pyanymethods ()\n !\\($\u0027\u0022!module.getattr(!attr)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =\n inl args = join args\n inl module = join module\n !\\($\u0027\u0022pyo3::prelude::PyAnyMethods::call(\u0026!module, ((*!args).0, *(*!args).1), None)\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl extract forall t. (result : bound pyany) : _ t _ =\n inl result = join result\n use_pyanymethods ()\n !\\($\u0027\u0022!result.extract()\u0022\u0027)\n |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm\u0027.std_string =\n inl code =\n code\n |\u003E module_from_code py\n |\u003E resultm.unwrap\u0027\n inl fn =\n code\n |\u003E getattr \u0022fn\u0022\n |\u003E resultm.unwrap\u0027\n\n fn\n |\u003E call args\n |\u003E resultm.try\u0027\n |\u003E extract\n |\u003E resultm.try\u0027\n |\u003E complex\n |\u003E Ok\n |\u003E resultm.box\n\ninl call1_ log py s code =\n inl code = join (a code : _ i32 _) |\u003E sm\u0027.concat_array_trailing \u0022\\n\u0022\n \n inl s = new_pair (re s) (im s)\n inl args = new_pair log s\n\n eval py code args\n\ninl call1_ log name py s line =\n inl s = join s\n join\n ;[\n $\u0027$\u0022import sys\u0022\u0027\n $\u0027$\u0022import traceback\u0022\u0027\n $\u0027$\u0022import re\u0022\u0027\n $\u0027$\u0022count = 0\u0022\u0027\n $\u0027$\u0022memory_address_pattern = re.compile(r\\\u0027 at 0x[0-9a-fA-F]\u002B\\\u0027)\u0022\u0027\n $\u0027$\u0022def trace_calls(frame, event, arg):\u0022\u0027\n $\u0027$\u0022 global count\u0022\u0027\n $\u0027$\u0022 count \u002B= 1\u0022\u0027\n $\u0027$\u0022 if count \u003C 200:\u0022\u0027\n $\u0027$\u0022 try:\u0022\u0027\n $\u0027$\u0022 args = {{ k: v for k, v in frame.f_locals.items() if frame.f_code.co_name \\!= \\\u0027make_mpc\\\u0027 and k not in [\\\u0027ctx\\\u0027] and not callable(v) }}\u0022\u0027\n $\u0027$\u0022 args_str = \\\u0027, \\\u0027.join([ f\\\\\\\u0022{{k}}={{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(v))}}\\\\\\\u0022 for k, v in args.items() ])\u0022\u0027\n $\u0027$\u0022 print(f\\\\\\\u0022{{event}}({!name}) / f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}} / f_code.co_filename: {{frame.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1]}} / f_back.f_lineno: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_lineno }} / f_back.f_code.co_filename: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1] }} / arg: {{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(arg))}}\\\\\\\u0022, flush=True)\u0022\u0027\n $\u0027$\u0022 except ValueError as e:\u0022\u0027\n $\u0027$\u0022 print(f\\\u0027{!name} / e: {{e}}\\\u0027, flush=True)\u0022\u0027\n $\u0027$\u0022 return trace_calls\u0022\u0027\n $\u0027$\u0022import mpmath\u0022\u0027\n $\u0027$\u0022def fn(log, s):\u0022\u0027\n $\u0027$\u0022 global count\u0022\u0027\n $\u0027$\u0022 if log:\u0022\u0027\n $\u0027$\u0022 print(f\\\u0027{!name} / s: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n $\u0027$\u0022 s = complex(*s)\u0022\u0027\n $\u0027$\u0022 try:\u0022\u0027\n $\u0027$\u0022 if log: sys.settrace(trace_calls)\u0022\u0027\n line\n $\u0027$\u0022 if log:\u0022\u0027\n $\u0027$\u0022 sys.settrace(None)\u0022\u0027\n $\u0027$\u0022 print(f\\\u0027{!name} / result: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n $\u0027$\u0022 except ValueError as e:\u0022\u0027\n $\u0027$\u0022 if s.real == 1:\u0022\u0027\n $\u0027$\u0022 s = complex(float(\\\u0027inf\\\u0027), 0)\u0022\u0027\n $\u0027$\u0022 return (s.real, s.imag)\u0022\u0027\n ]\n |\u003E call1_ log py s\n\ninl gamma_ log py s =\n call1_ log \u0022gamma_\u0022 py s $\u0027$\u0022 s = mpmath.gamma(s)\u0022\u0027\n\ninl zeta_ log py s =\n call1_ log \u0022zeta_\u0022 py s $\u0027$\u0022 s = mpmath.zeta(s)\u0022\u0027\n\n// // ## run_test\n\ninl run_test log closure_fix (fn : (complex f64 -\u003E complex f64) * (complex f64 -\u003E complex f64) -\u003E ()) =\n inl fn_ (py : python) : resultm.result\u0027 () pyerr =\n inl nan () =\n !\\($\u0027\u0022f64::NAN\u0022\u0027)\n inl gamma__ = fun (s : complex f64) =\u003E\n inl result = gamma_ log py s\n if log then\n inl s = join s\n !\\($\u0027\u0022println\\!(\\\\\\\u0022gamma__ / s: {:?} / result: {:?}\\\\\\\u0022, !s, !result)\u0022\u0027)\n result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n inl zeta__ = fun (s : complex f64) =\u003E\n inl result = zeta_ log py s\n\n inl z = zeta true gamma__ s\n\n if log then\n inl s = join s\n !\\($\u0027\u0022println\\!(\\\\\\\u0022zeta__ / s: {:?} / result: {:?} / z: {:?}\\\\\\\u0022, !s, !result, !z)\u0022\u0027)\n\n // re result - re x |\u003E abs\n // |\u003E _assert_lt 0.001\n\n // im result - im x |\u003E abs\n // |\u003E _assert_lt 0.001\n\n result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n join fn (zeta__, gamma__)\n\n Ok ()\n |\u003E resultm.box\n \n join\n !\\($\u0027\u0022pyo3::prepare_freethreaded_python()\u0022\u0027) : ()\n\n !\\($\u0027\u0022let __result = pyo3::Python::with_gil(|py| -\u003E pyo3::PyResult\u003C()\u003E { //\u0022\u0027)\n\n let x\u0027 = fn_ (!\\($\u0027\u0022py\u0022\u0027) : python)\n inl x\u0027 = join x\u0027\n \n inl closure_fix = 2u8, 1u8\n x\u0027 |\u003E rust.fix_closure closure_fix\n\n (!\\($\u0027\u0022__result\u0022\u0027) : _ () pyerr)\n |\u003E resultm.unwrap\u0027\n\n// // ## test_zeta_at_known_values_\n\ninl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(2, 0), pi ** 2 / 6\n .^(-1, 0), -1 / 12\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun s, e =\u003E\n inl result = zeta s\n\n result |\u003E im |\u003E _assert_eq 0\n re result - e |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_zeta_at_2_minus2\n\ninl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n inl s = .^(2, -2)\n inl result = zeta s\n\n (re result - 0.8673) |\u003E abs |\u003E _assert_lt 0.001\n (im result - 0.2750) |\u003E abs |\u003E _assert_lt 0.001\n\n// // ## test_trivial_zero_at_negative_even___\n\ninl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun zeta, gamma =\u003E\n (join listm\u0027.init_series -2f64 -40 -2)\n |\u003E listm.iter fun n =\u003E\n inl s = .^(n, 0)\n inl result = zeta s\n\n result |\u003E re |\u003E _assert_eq 0\n result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_non_trivial_zero___\n\ninl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(0.5, 14.134725)\n .^(0.5, 21.022040)\n .^(0.5, 25.010857)\n .^(0.5, 30.424876)\n .^(0.5, 32.935062)\n .^(0.5, 37.586178)\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun x =\u003E\n inl result = zeta x\n result |\u003E re |\u003E abs |\u003E _assert_lt 0.0001\n result |\u003E im |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_real_part_greater_than_one___\n\ninl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n inl points = ;[2; 3; 4; 5; 10; 20; 50]\n (a points : _ i32 _)\n |\u003E am.iter fun point =\u003E\n inl s = .^(point, 0)\n inl result = zeta s\n result |\u003E re |\u003E _assert_gt 0\n result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_zeta_at_1___\n\ninl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n inl s = .^(1, 0)\n inl result = zeta s\n result |\u003E re |\u003E _assert_eq limit.max\n result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_symmetry_across_real_axis___\n\ninl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta, gamma =\u003E\n inl s = .^(2, 10)\n inl result_positive_im = zeta s\n inl result_negative_im = zeta .^(re s, -(im s))\n inl conj = result_negative_im |\u003E conj\n result_positive_im |\u003E re |\u003E _assert_eq (conj |\u003E re)\n result_positive_im |\u003E im |\u003E _assert_eq (conj |\u003E im)\n\n// // ## test_behavior_near_origin___\n\ninl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n inl s = .^(0.01, 0.01)\n inl result = zeta s\n result |\u003E re |\u003E _assert_lt limit.max\n result |\u003E im |\u003E _assert_lt limit.max\n\n// // ## test_imaginary_axis\n\ninl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n (join a ;[10; 20; 30; 40; 50; 60; 70; 80; 90; 100] : _ i32 _)\n |\u003E am.iter fun s =\u003E\n inl s = .^(0, s)\n inl result = zeta s\n result |\u003E re |\u003E _assert_ne 0\n result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_critical_strip\n\ninl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(0.5, 14.134725)\n .^(0.75, 20.5)\n .^(1.25, 30.1)\n .^(0.25, 40.0)\n .^(1.0, 50.0)\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun s =\u003E\n inl result = zeta s\n result |\u003E re |\u003E _assert_ne 0\n result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_reflection_formula_for_specific_value\n\ninl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n ;[\n .^(3, 4)\n .^(2.5, -3.5)\n .^(1.5, 2.5)\n .^(0.5, 14.134725)\n ]\n |\u003E fun x =\u003E a x : _ i32 _\n |\u003E am.iter fun s =\u003E\n inl lhs = zeta s\n inl reflection_coefficient =\n (.^(2, 0) .** s)\n .* (.^(pi, 0) .** (s .- .^(1, 0)))\n .* (.^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin)\n .* gamma (.^(1, 0) .- s)\n\n inl one_minus_s = .^(1 - re s, -(im s))\n inl rhs = reflection_coefficient .* zeta one_minus_s\n\n re lhs - re rhs |\u003E abs |\u003E _assert_lt 0.0001\n im lhs - im rhs |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_euler_product_formula\n\ninl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n inl s_values = ;[2; 2.5; 3; 3.5; 4; 4.5; 5]\n inl primes = ;[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53; 59; 61; 67; 71]\n (a s_values : _ i32 _)\n |\u003E am.iter fun s_re =\u003E\n inl s = .^(s_re, 0)\n inl product =\n (1, (a primes : _ i32 _))\n ||\u003E am.fold fun acc x =\u003E\n acc * 1 / (1 - x ** -s_re)\n\n inl result = zeta s\n re result - product |\u003E abs |\u003E _assert_lt 0.01\n result |\u003E im |\u003E _assert_lt 0.01\n\n// // ## graph\n\n// // ## tests\n\ninl tests () =\n !\\($\u0027\u0022}//\u0022\u0027) : ()\n\n !\\($\u0027\u0022#[test] fn test_zeta_at_known_values_() { //\u0022\u0027) : ()\n test_zeta_at_known_values_ false\n !\\($\u0027\u0022} #[test] fn test_zeta_at_2_minus2() { //\u0022\u0027) : ()\n test_zeta_at_2_minus2 false\n !\\($\u0027\u0022} #[test] fn test_trivial_zero_at_negative_even___() { //\u0022\u0027) : ()\n test_trivial_zero_at_negative_even___ false\n !\\($\u0027\u0022} #[test] fn test_non_trivial_zero___() { //\u0022\u0027) : ()\n test_non_trivial_zero___ false\n !\\($\u0027\u0022} #[test] fn test_real_part_greater_than_one___() { //\u0022\u0027) : ()\n test_real_part_greater_than_one___ false\n !\\($\u0027\u0022} #[test] fn test_zeta_at_1___() { //\u0022\u0027) : ()\n test_zeta_at_1___ false\n !\\($\u0027\u0022} #[test] fn test_symmetry_across_real_axis___() { //\u0022\u0027) : ()\n test_symmetry_across_real_axis___ false\n !\\($\u0027\u0022} #[test] fn test_behavior_near_origin___() { //\u0022\u0027) : ()\n test_behavior_near_origin___ false\n !\\($\u0027\u0022} #[test] fn test_imaginary_axis() { //\u0022\u0027) : ()\n test_imaginary_axis false\n !\\($\u0027\u0022} #[test] fn test_critical_strip() { //\u0022\u0027) : ()\n test_critical_strip false\n !\\($\u0027\u0022} #[test] fn test_reflection_formula_for_specific_value() { //\u0022\u0027) : ()\n test_reflection_formula_for_specific_value false\n !\\($\u0027\u0022} #[test] fn test_euler_product_formula() { //\u0022\u0027) : ()\n test_euler_product_formula false\n\n// // rust=\n\ninl main (_args : array_base string) =\n inl value = 1i32\n console.write_line ($\u0022$\\\u0022value: {!value}\\\u0022\u0022 : string)\n 0i32\n\ninl main () =\n types ()\n $\u0022let tests () = !tests ()\u0022 : ()\n $\u0022let main args = !main args\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result.Length:
00:00:02 #15 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result.Length:
00:00:02 #16 [Verbose] > Building c:\home\git\polyglot\lib\math\math.spi
00:00:02 #17 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:03 #18 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:04 #19 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: [] / typeErrorCount: 0
00:00:05 #20 [Debug] buildFile / takeWhileInclusive / fsxContent: [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end
[<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = class end
[<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end
[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>]... / errors: [] / typeErrorCount: 0
00:00:05 #21 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite
00:00:07 #22 [Debug] runWithTimeoutChildAsync / timeout: 2000
00:00:00 #1 [Debug] persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: math / code.Length: 125490
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64"
WorkingDirectory = Some "C:\home\git\polyglot\target\polyglot\builder\math"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:03 #5 [Verbose] > Determining projects to restore...
00:00:04 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj (in 1.04 sec).
00:00:05 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj]
00:00:15 #8 [Verbose] > math -> C:\home\git\polyglot\target\polyglot\builder\math\bin\Release\net9.0\linux-x64\math.dll
00:00:17 #9 [Verbose] > math -> C:\home\git\polyglot\lib\math\dist\
00:00:17 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 666
00:00:17 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64"
WorkingDirectory = Some "C:\home\git\polyglot\target\polyglot\builder\math"
CancellationToken = None
OnLine = None }
00:00:18 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:19 #13 [Verbose] > Determining projects to restore...
00:00:20 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj (in 540 ms).
00:00:20 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj]
00:00:29 #16 [Verbose] > math -> C:\home\git\polyglot\target\polyglot\builder\math\bin\Release\net9.0\win-x64\math.dll
00:00:39 #17 [Verbose] > math -> C:\home\git\polyglot\lib\math\dist\
00:00:40 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 662
Fable 4.14.0: F# to Rust compiler (status: alpha)
Thanks to the contributor! @dgchurchill
Stand with Ukraine! https://standwithukraine.com.ua/
Parsing ..\..\target\polyglot\builder\math\math.fsproj...
Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option.
Project and references (7 source files) parsed in 249ms
Started Fable compilation...
Fable compilation finished in 5682ms
.\..\spiral\common.fsx(117,0): (117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\spiral\date_time.fsx(107,0): (107,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\spiral\file_system.fsx(814,0): (814,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\spiral\sm.fsx(291,0): (291,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
.\..\..\target\polyglot\builder\math\math.fs(37,0): (39,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
Compiling math v0.0.1 (C:\home\git\polyglot\lib\math)
Finished `release` profile [optimized] target(s) in 23.80s
Running unittests math.rs (C:\home\git\polyglot\target\release\deps\math-d4dbef61f0dacdd5.exe)
running 12 tests
test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok
test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok
test module_b7a9935b::Math::test_behavior_near_origin___ ... ok
test module_b7a9935b::Math::test_zeta_at_1___ ... ok
test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok
test module_b7a9935b::Math::test_non_trivial_zero___ ... ok
test module_b7a9935b::Math::test_euler_product_formula ... ok
test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok
test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok
test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok
test module_b7a9935b::Math::test_critical_strip ... ok
test module_b7a9935b::Math::test_imaginary_axis ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
In [ ]:
{ . "$ScriptDir/../apps/scheduler/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command =
"dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = Some <fun:main@438-47> }
00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\scheduler
00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release
00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805
00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Tasks.dib -Retries 3""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:05 #12 [Verbose] >
00:00:05 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:05 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:05 #15 [Verbose] > │ ## Tasks (Polyglot) │
00:00:05 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:05 #17 [Verbose] >
00:00:05 #18 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:05 #19 [Verbose] > // // test
00:00:05 #20 [Verbose] >
00:00:05 #21 [Verbose] > open testing
00:00:09 #22 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4014-1418-155acb0ec2e8\main.spi
00:00:13 #23 [Verbose] >
00:00:13 #24 [Verbose] > ╭─[ 8.39s - stdout ]───────────────────────────────────────────────────────────╮
00:00:13 #25 [Verbose] > │ () │
00:00:13 #26 [Verbose] > │ │
00:00:13 #27 [Verbose] > │ │
00:00:13 #28 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #29 [Verbose] >
00:00:13 #30 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #31 [Verbose] > inl types () =
00:00:13 #32 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]
00:00:13 #33 [Verbose] > type std_string_String = class end"
00:00:13 #34 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =
00:00:13 #35 [Verbose] > class end"
00:00:13 #36 [Verbose] > global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class
00:00:13 #37 [Verbose] > end"
00:00:13 #38 [Verbose] >
00:00:13 #39 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =
00:00:13 #40 [Verbose] > real
00:00:13 #41 [Verbose] > $"Fable.Core.RustInterop.emitRustExpr !args !code" : t
00:00:13 #42 [Verbose] >
00:00:13 #43 [Verbose] >
00:00:13 #44 [Verbose] > nominal std_string = $"std_string_String"
00:00:13 #45 [Verbose] > nominal ref' t = $"Ref<`t>"
00:00:13 #46 [Verbose] > nominal str = $"Str"
00:00:13 #47 [Verbose] >
00:00:13 #48 [Verbose] > inl format_debug forall t. (x : t) : std_string =
00:00:13 #49 [Verbose] > real
00:00:13 #50 [Verbose] > emit_expr `t `std_string x "format!(\"{:?}\", $0)"
00:00:13 #51 [Verbose] >
00:00:13 #52 [Verbose] > inl format_pretty forall t. (x : t) : std_string =
00:00:13 #53 [Verbose] > real
00:00:13 #54 [Verbose] > emit_expr `t `std_string x "format!(\"{:#?}\", $0)"
00:00:13 #55 [Verbose] >
00:00:13 #56 [Verbose] > inl to_std_string (str : ref' str) : std_string =
00:00:13 #57 [Verbose] > // inl str = join str
00:00:13 #58 [Verbose] > // // emit_expr () $"\"!str.to_string()\""
00:00:13 #59 [Verbose] > // // emit_expr () $"\"alloc::string::to_string(!str)\""
00:00:13 #60 [Verbose] > // emit_expr str "($0).to_string()"
00:00:13 #61 [Verbose] > emit_expr str $"\"String::from(core::ops::Deref::deref($0))\""
00:00:13 #62 [Verbose] > // emit_expr str $"\"String::from(*$0)\""
00:00:13 #63 [Verbose] > // emit_expr () $"\"String::from(!str)\""
00:00:13 #64 [Verbose] >
00:00:13 #65 [Verbose] > inl format forall t. (x : t) : std_string =
00:00:13 #66 [Verbose] > real
00:00:13 #67 [Verbose] > inl result : std_string =
00:00:13 #68 [Verbose] > typecase t with
00:00:13 #69 [Verbose] > | string => to_std_string x
00:00:13 #70 [Verbose] > | std_string => x
00:00:13 #71 [Verbose] > | _ => format_pretty `t x
00:00:13 #72 [Verbose] > result
00:00:13 #73 [Verbose] >
00:00:13 #74 [Verbose] > inl raw_string_literal (s : string) : ref' str =
00:00:13 #75 [Verbose] > emit_expr () $"\"r#\\\"\" + !s + \"\\\"#\""
00:00:13 #76 [Verbose] >
00:00:13 #77 [Verbose] > inl (~#) (s : string) : ref' str =
00:00:13 #78 [Verbose] > raw_string_literal s
00:00:13 #79 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4554-5448-52110cbe755a\main.spi
00:00:13 #80 [Verbose] >
00:00:13 #81 [Verbose] > ╭─[ 351.67ms - stdout ]────────────────────────────────────────────────────────╮
00:00:13 #82 [Verbose] > │ () │
00:00:13 #83 [Verbose] > │ │
00:00:13 #84 [Verbose] > │ │
00:00:13 #85 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:13 #86 [Verbose] >
00:00:13 #87 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:13 #88 [Verbose] > nominal task_name = string
00:00:13 #89 [Verbose] >
00:00:13 #90 [Verbose] > union manual_scheduling =
00:00:13 #91 [Verbose] > | WithSuggestion
00:00:13 #92 [Verbose] > | WithoutSuggestion
00:00:13 #93 [Verbose] >
00:00:13 #94 [Verbose] > union recurrency_offset =
00:00:13 #95 [Verbose] > | Days : i32
00:00:13 #96 [Verbose] > | Weeks : i32
00:00:13 #97 [Verbose] > | Months : i32
00:00:13 #98 [Verbose] >
00:00:13 #99 [Verbose] > union day_of_week =
00:00:13 #100 [Verbose] > | Sunday
00:00:13 #101 [Verbose] > | Monday
00:00:13 #102 [Verbose] > | Tuesday
00:00:13 #103 [Verbose] > | Wednesday
00:00:13 #104 [Verbose] > | Thursday
00:00:13 #105 [Verbose] > | Friday
00:00:13 #106 [Verbose] > | Saturday
00:00:13 #107 [Verbose] >
00:00:13 #108 [Verbose] > union month =
00:00:13 #109 [Verbose] > | January
00:00:13 #110 [Verbose] > | February
00:00:13 #111 [Verbose] > | March
00:00:13 #112 [Verbose] > | April
00:00:13 #113 [Verbose] > | May
00:00:13 #114 [Verbose] > | June
00:00:13 #115 [Verbose] > | July
00:00:13 #116 [Verbose] > | August
00:00:13 #117 [Verbose] > | September
00:00:13 #118 [Verbose] > | October
00:00:13 #119 [Verbose] > | November
00:00:13 #120 [Verbose] > | December
00:00:13 #121 [Verbose] >
00:00:13 #122 [Verbose] > nominal day = i32
00:00:13 #123 [Verbose] > nominal year = i32
00:00:13 #124 [Verbose] >
00:00:13 #125 [Verbose] > union fixed_recurrency =
00:00:13 #126 [Verbose] > | Weekly : day_of_week
00:00:13 #127 [Verbose] > | Monthly : day
00:00:13 #128 [Verbose] > | Yearly : day * month
00:00:13 #129 [Verbose] >
00:00:13 #130 [Verbose] > union recurrency =
00:00:13 #131 [Verbose] > | Offset : recurrency_offset
00:00:13 #132 [Verbose] > | Fixed : list fixed_recurrency
00:00:13 #133 [Verbose] >
00:00:13 #134 [Verbose] > union scheduling =
00:00:13 #135 [Verbose] > | Manual : manual_scheduling
00:00:13 #136 [Verbose] > | Recurrent : recurrency
00:00:13 #137 [Verbose] >
00:00:13 #138 [Verbose] > type task =
00:00:13 #139 [Verbose] > {
00:00:13 #140 [Verbose] > name : task_name
00:00:13 #141 [Verbose] > scheduling : scheduling
00:00:13 #142 [Verbose] > }
00:00:13 #143 [Verbose] >
00:00:13 #144 [Verbose] > type date =
00:00:13 #145 [Verbose] > {
00:00:13 #146 [Verbose] > year : year
00:00:13 #147 [Verbose] > month : month
00:00:13 #148 [Verbose] > day : day
00:00:13 #149 [Verbose] > }
00:00:13 #150 [Verbose] >
00:00:13 #151 [Verbose] > union status =
00:00:13 #152 [Verbose] > | Postponed : option ()
00:00:13 #153 [Verbose] >
00:00:13 #154 [Verbose] > type event =
00:00:13 #155 [Verbose] > {
00:00:13 #156 [Verbose] > date : date
00:00:13 #157 [Verbose] > status : status
00:00:13 #158 [Verbose] > }
00:00:13 #159 [Verbose] >
00:00:13 #160 [Verbose] > type task_template =
00:00:13 #161 [Verbose] > {
00:00:13 #162 [Verbose] > task : task
00:00:13 #163 [Verbose] > events : list event
00:00:13 #164 [Verbose] > }
00:00:14 #165 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4588-8875-8a42fab01d3a\main.spi
00:00:14 #166 [Verbose] >
00:00:14 #167 [Verbose] > ╭─[ 473.65ms - stdout ]────────────────────────────────────────────────────────╮
00:00:14 #168 [Verbose] > │ () │
00:00:14 #169 [Verbose] > │ │
00:00:14 #170 [Verbose] > │ │
00:00:14 #171 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:14 #172 [Verbose] >
00:00:14 #173 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:14 #174 [Verbose] > // // test
00:00:14 #175 [Verbose] > // // rust=
00:00:14 #176 [Verbose] >
00:00:14 #177 [Verbose] > types ()
00:00:14 #178 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4637-3704-34ddaf476ef8\main.spi
00:00:21 #179 [Verbose] >
00:00:21 #180 [Verbose] > ╭─[ 6.69s - return value ]─────────────────────────────────────────────────────╮
00:00:21 #181 [Verbose] > │ .rs output: │
00:00:21 #182 [Verbose] > │ │
00:00:21 #183 [Verbose] > │ │
00:00:21 #184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #185 [Verbose] >
00:00:21 #186 [Verbose] > ╭─[ 6.70s - stdout ]───────────────────────────────────────────────────────────╮
00:00:21 #187 [Verbose] > │ │
00:00:21 #188 [Verbose] > │ .fsx: │
00:00:21 #189 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:00:21 #190 [Verbose] > │ std_string_String = class end │
00:00:21 #191 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:00:21 #192 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:00:21 #193 [Verbose] > │ let rec method0 () : unit = │
00:00:21 #194 [Verbose] > │ () │
00:00:21 #195 [Verbose] > │ method0() │
00:00:21 #196 [Verbose] > │ │
00:00:21 #197 [Verbose] > │ │
00:00:21 #198 [Verbose] > │ .rs: │
00:00:21 #199 [Verbose] > │ #![allow(dead_code,)] │
00:00:21 #200 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:21 #201 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:21 #202 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:21 #203 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:21 #204 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:21 #205 [Verbose] > │ #![allow(unused_imports,)] │
00:00:21 #206 [Verbose] > │ #![allow(unused_macros,)] │
00:00:21 #207 [Verbose] > │ #![allow(unused_parens,)] │
00:00:21 #208 [Verbose] > │ #![allow(unused_variables,)] │
00:00:21 #209 [Verbose] > │ mod module_ccfa04bf { │
00:00:21 #210 [Verbose] > │ pub mod Spiral_eval { │
00:00:21 #211 [Verbose] > │ use super::*; │
00:00:21 #212 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:21 #213 [Verbose] > │ pub fn method0() { (); } │
00:00:21 #214 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:21 #215 [Verbose] > │ } │
00:00:21 #216 [Verbose] > │ } │
00:00:21 #217 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:21 #218 [Verbose] > │ │
00:00:21 #219 [Verbose] > │ │
00:00:21 #220 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:21 #221 [Verbose] >
00:00:21 #222 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:21 #223 [Verbose] > // // test
00:00:21 #224 [Verbose] > // // rust=
00:00:21 #225 [Verbose] >
00:00:21 #226 [Verbose] > inl get_tasks () : list task_template =
00:00:21 #227 [Verbose] > [[
00:00:21 #228 [Verbose] > {
00:00:21 #229 [Verbose] > task =
00:00:21 #230 [Verbose] > {
00:00:21 #231 [Verbose] > name = task_name "01"
00:00:21 #232 [Verbose] > scheduling = Manual WithSuggestion
00:00:21 #233 [Verbose] > }
00:00:21 #234 [Verbose] > events = [[]]
00:00:21 #235 [Verbose] > }
00:00:21 #236 [Verbose] > {
00:00:21 #237 [Verbose] > task =
00:00:21 #238 [Verbose] > {
00:00:21 #239 [Verbose] > name = task_name "02"
00:00:21 #240 [Verbose] > scheduling = Manual WithSuggestion
00:00:21 #241 [Verbose] > }
00:00:21 #242 [Verbose] > events = [[]]
00:00:21 #243 [Verbose] > }
00:00:21 #244 [Verbose] > {
00:00:21 #245 [Verbose] > task =
00:00:21 #246 [Verbose] > {
00:00:21 #247 [Verbose] > name = task_name "03"
00:00:21 #248 [Verbose] > scheduling = Manual WithSuggestion
00:00:21 #249 [Verbose] > }
00:00:21 #250 [Verbose] > events = [[]]
00:00:21 #251 [Verbose] > }
00:00:21 #252 [Verbose] > ]]
00:00:21 #253 [Verbose] >
00:00:21 #254 [Verbose] > types ()
00:00:21 #255 [Verbose] > get_tasks () |> format_pretty |> console.write_line
00:00:21 #256 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-5308-0848-00a2d36a809b\main.spi
00:00:27 #257 [Verbose] >
00:00:27 #258 [Verbose] > ╭─[ 6.58s - return value ]─────────────────────────────────────────────────────╮
00:00:27 #259 [Verbose] > │ .rs output: │
00:00:27 #260 [Verbose] > │ UH2_1( │
00:00:27 #261 [Verbose] > │ UH0_0, │
00:00:27 #262 [Verbose] > │ "01", │
00:00:27 #263 [Verbose] > │ US4_0( │
00:00:27 #264 [Verbose] > │ US3_0, │
00:00:27 #265 [Verbose] > │ ), │
00:00:27 #266 [Verbose] > │ UH2_1( │
00:00:27 #267 [Verbose] > │ UH0_0, │
00:00:27 #268 [Verbose] > │ "02", │
00:00:27 #269 [Verbose] > │ US4_0( │
00:00:27 #270 [Verbose] > │ US3_0, │
00:00:27 #271 [Verbose] > │ ), │
00:00:27 #272 [Verbose] > │ UH2_1( │
00:00:27 #273 [Verbose] > │ UH0_0, │
00:00:27 #274 [Verbose] > │ "03", │
00:00:27 #275 [Verbose] > │ US4_0( │
00:00:27 #276 [Verbose] > │ US3_0, │
00:00:27 #277 [Verbose] > │ ), │
00:00:27 #278 [Verbose] > │ UH2_0, │
00:00:27 #279 [Verbose] > │ ), │
00:00:27 #280 [Verbose] > │ ), │
00:00:27 #281 [Verbose] > │ ) │
00:00:27 #282 [Verbose] > │ │
00:00:27 #283 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:27 #284 [Verbose] >
00:00:27 #285 [Verbose] > ╭─[ 6.60s - stdout ]───────────────────────────────────────────────────────────╮
00:00:27 #286 [Verbose] > │ │
00:00:27 #287 [Verbose] > │ .fsx: │
00:00:27 #288 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type │
00:00:27 #289 [Verbose] > │ std_string_String = class end │
00:00:27 #290 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end │
00:00:27 #291 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end │
00:00:27 #292 [Verbose] > │ type [<Struct>] US0 = │
00:00:27 #293 [Verbose] > │ | US0_0 │
00:00:27 #294 [Verbose] > │ | US0_1 │
00:00:27 #295 [Verbose] > │ | US0_2 │
00:00:27 #296 [Verbose] > │ | US0_3 │
00:00:27 #297 [Verbose] > │ | US0_4 │
00:00:27 #298 [Verbose] > │ | US0_5 │
00:00:27 #299 [Verbose] > │ | US0_6 │
00:00:27 #300 [Verbose] > │ | US0_7 │
00:00:27 #301 [Verbose] > │ | US0_8 │
00:00:27 #302 [Verbose] > │ | US0_9 │
00:00:27 #303 [Verbose] > │ | US0_10 │
00:00:27 #304 [Verbose] > │ | US0_11 │
00:00:27 #305 [Verbose] > │ and [<Struct>] US2 = │
00:00:27 #306 [Verbose] > │ | US2_0 │
00:00:27 #307 [Verbose] > │ | US2_1 │
00:00:27 #308 [Verbose] > │ and [<Struct>] US1 = │
00:00:27 #309 [Verbose] > │ | US1_0 of f0_0 : US2 │
00:00:27 #310 [Verbose] > │ and UH0 = │
00:00:27 #311 [Verbose] > │ | UH0_0 │
00:00:27 #312 [Verbose] > │ | UH0_1 of int32 * US0 * int32 * US1 * UH0 │
00:00:27 #313 [Verbose] > │ and [<Struct>] US3 = │
00:00:27 #314 [Verbose] > │ | US3_0 │
00:00:27 #315 [Verbose] > │ | US3_1 │
00:00:27 #316 [Verbose] > │ and [<Struct>] US6 = │
00:00:27 #317 [Verbose] > │ | US6_0 of f0_0 : int32 │
00:00:27 #318 [Verbose] > │ | US6_1 of f1_0 : int32 │
00:00:27 #319 [Verbose] > │ | US6_2 of f2_0 : int32 │
00:00:27 #320 [Verbose] > │ and [<Struct>] US8 = │
00:00:27 #321 [Verbose] > │ | US8_0 │
00:00:27 #322 [Verbose] > │ | US8_1 │
00:00:27 #323 [Verbose] > │ | US8_2 │
00:00:27 #324 [Verbose] > │ | US8_3 │
00:00:27 #325 [Verbose] > │ | US8_4 │
00:00:27 #326 [Verbose] > │ | US8_5 │
00:00:27 #327 [Verbose] > │ | US8_6 │
00:00:27 #328 [Verbose] > │ and [<Struct>] US7 = │
00:00:27 #329 [Verbose] > │ | US7_0 of f0_0 : US8 │
00:00:27 #330 [Verbose] > │ | US7_1 of f1_0 : int32 │
00:00:27 #331 [Verbose] > │ | US7_2 of f2_0 : int32 * f2_1 : US0 │
00:00:27 #332 [Verbose] > │ and UH1 = │
00:00:27 #333 [Verbose] > │ | UH1_0 │
00:00:27 #334 [Verbose] > │ | UH1_1 of US7 * UH1 │
00:00:27 #335 [Verbose] > │ and [<Struct>] US5 = │
00:00:27 #336 [Verbose] > │ | US5_0 of f0_0 : US6 │
00:00:27 #337 [Verbose] > │ | US5_1 of f1_0 : UH1 │
00:00:27 #338 [Verbose] > │ and [<Struct>] US4 = │
00:00:27 #339 [Verbose] > │ | US4_0 of f0_0 : US3 │
00:00:27 #340 [Verbose] > │ | US4_1 of f1_0 : US5 │
00:00:27 #341 [Verbose] > │ and UH2 = │
00:00:27 #342 [Verbose] > │ | UH2_0 │
00:00:27 #343 [Verbose] > │ | UH2_1 of UH0 * string * US4 * UH2 │
00:00:27 #344 [Verbose] > │ let rec method0 () : unit = │
00:00:27 #345 [Verbose] > │ let v0 : UH0 = UH0_0 │
00:00:27 #346 [Verbose] > │ let v1 : string = "01" │
00:00:27 #347 [Verbose] > │ let v2 : US3 = US3_0 │
00:00:27 #348 [Verbose] > │ let v3 : US4 = US4_0(v2) │
00:00:27 #349 [Verbose] > │ let v4 : UH0 = UH0_0 │
00:00:27 #350 [Verbose] > │ let v5 : string = "02" │
00:00:27 #351 [Verbose] > │ let v6 : US3 = US3_0 │
00:00:27 #352 [Verbose] > │ let v7 : US4 = US4_0(v6) │
00:00:27 #353 [Verbose] > │ let v8 : UH0 = UH0_0 │
00:00:27 #354 [Verbose] > │ let v9 : string = "03" │
00:00:27 #355 [Verbose] > │ let v10 : US3 = US3_0 │
00:00:27 #356 [Verbose] > │ let v11 : US4 = US4_0(v10) │
00:00:27 #357 [Verbose] > │ let v12 : UH2 = UH2_0 │
00:00:27 #358 [Verbose] > │ let v13 : UH2 = UH2_1(v8, v9, v11, v12) │
00:00:27 #359 [Verbose] > │ let v14 : UH2 = UH2_1(v4, v5, v7, v13) │
00:00:27 #360 [Verbose] > │ let v15 : UH2 = UH2_1(v0, v1, v3, v14) │
00:00:27 #361 [Verbose] > │ let v16 : string = "format!(\"{:#?}\", $0)" │
00:00:27 #362 [Verbose] > │ let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15 │
00:00:27 #363 [Verbose] > │ v16 │
00:00:27 #364 [Verbose] > │ System.Console.WriteLine v17 │
00:00:27 #365 [Verbose] > │ () │
00:00:27 #366 [Verbose] > │ method0() │
00:00:27 #367 [Verbose] > │ │
00:00:27 #368 [Verbose] > │ │
00:00:27 #369 [Verbose] > │ .rs: │
00:00:27 #370 [Verbose] > │ #![allow(dead_code,)] │
00:00:27 #371 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:27 #372 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:27 #373 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:27 #374 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:27 #375 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:27 #376 [Verbose] > │ #![allow(unused_imports,)] │
00:00:27 #377 [Verbose] > │ #![allow(unused_macros,)] │
00:00:27 #378 [Verbose] > │ #![allow(unused_parens,)] │
00:00:27 #379 [Verbose] > │ #![allow(unused_variables,)] │
00:00:27 #380 [Verbose] > │ mod module_ccfa04bf { │
00:00:27 #381 [Verbose] > │ pub mod Spiral_eval { │
00:00:27 #382 [Verbose] > │ use super::*; │
00:00:27 #383 [Verbose] > │ use fable_library_rust::Native_::LrcPtr; │
00:00:27 #384 [Verbose] > │ use fable_library_rust::Native_::MutCell; │
00:00:27 #385 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:27 #386 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:00:27 #387 [Verbose] > │ use fable_library_rust::String_::string; │
00:00:27 #388 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #389 [Verbose] > │ pub enum US0 { │
00:00:27 #390 [Verbose] > │ US0_0, │
00:00:27 #391 [Verbose] > │ US0_1, │
00:00:27 #392 [Verbose] > │ US0_2, │
00:00:27 #393 [Verbose] > │ US0_3, │
00:00:27 #394 [Verbose] > │ US0_4, │
00:00:27 #395 [Verbose] > │ US0_5, │
00:00:27 #396 [Verbose] > │ US0_6, │
00:00:27 #397 [Verbose] > │ US0_7, │
00:00:27 #398 [Verbose] > │ US0_8, │
00:00:27 #399 [Verbose] > │ US0_9, │
00:00:27 #400 [Verbose] > │ US0_10, │
00:00:27 #401 [Verbose] > │ US0_11, │
00:00:27 #402 [Verbose] > │ } │
00:00:27 #403 [Verbose] > │ impl Spiral_eval::US0 { │
00:00:27 #404 [Verbose] > │ pub fn get_IsUS0_0(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #405 [Verbose] > │ ()) │
00:00:27 #406 [Verbose] > │ -> bool { │
00:00:27 #407 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #408 [Verbose] > │ } │
00:00:27 #409 [Verbose] > │ pub fn get_IsUS0_1(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #410 [Verbose] > │ ()) │
00:00:27 #411 [Verbose] > │ -> bool { │
00:00:27 #412 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #413 [Verbose] > │ } │
00:00:27 #414 [Verbose] > │ pub fn get_IsUS0_2(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #415 [Verbose] > │ ()) │
00:00:27 #416 [Verbose] > │ -> bool { │
00:00:27 #417 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #418 [Verbose] > │ } │
00:00:27 #419 [Verbose] > │ pub fn get_IsUS0_3(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #420 [Verbose] > │ ()) │
00:00:27 #421 [Verbose] > │ -> bool { │
00:00:27 #422 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #423 [Verbose] > │ } │
00:00:27 #424 [Verbose] > │ pub fn get_IsUS0_4(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #425 [Verbose] > │ ()) │
00:00:27 #426 [Verbose] > │ -> bool { │
00:00:27 #427 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #428 [Verbose] > │ } │
00:00:27 #429 [Verbose] > │ pub fn get_IsUS0_5(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #430 [Verbose] > │ ()) │
00:00:27 #431 [Verbose] > │ -> bool { │
00:00:27 #432 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #433 [Verbose] > │ } │
00:00:27 #434 [Verbose] > │ pub fn get_IsUS0_6(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #435 [Verbose] > │ ()) │
00:00:27 #436 [Verbose] > │ -> bool { │
00:00:27 #437 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #438 [Verbose] > │ } │
00:00:27 #439 [Verbose] > │ pub fn get_IsUS0_7(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #440 [Verbose] > │ ()) │
00:00:27 #441 [Verbose] > │ -> bool { │
00:00:27 #442 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #443 [Verbose] > │ } │
00:00:27 #444 [Verbose] > │ pub fn get_IsUS0_8(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #445 [Verbose] > │ ()) │
00:00:27 #446 [Verbose] > │ -> bool { │
00:00:27 #447 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #448 [Verbose] > │ } │
00:00:27 #449 [Verbose] > │ pub fn get_IsUS0_9(this_: &MutCell<Spiral_eval::US0>, unitArg: │
00:00:27 #450 [Verbose] > │ ()) │
00:00:27 #451 [Verbose] > │ -> bool { │
00:00:27 #452 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #453 [Verbose] > │ } │
00:00:27 #454 [Verbose] > │ pub fn get_IsUS0_10(this_: &MutCell<Spiral_eval::US0>, │
00:00:27 #455 [Verbose] > │ unitArg: ()) -> bool { │
00:00:27 #456 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #457 [Verbose] > │ } │
00:00:27 #458 [Verbose] > │ pub fn get_IsUS0_11(this_: &MutCell<Spiral_eval::US0>, │
00:00:27 #459 [Verbose] > │ unitArg: ()) -> bool { │
00:00:27 #460 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #461 [Verbose] > │ } │
00:00:27 #462 [Verbose] > │ } │
00:00:27 #463 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US0 { │
00:00:27 #464 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #465 [Verbose] > │ { │
00:00:27 #466 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #467 [Verbose] > │ } │
00:00:27 #468 [Verbose] > │ } │
00:00:27 #469 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #470 [Verbose] > │ pub enum US2 { US2_0, US2_1, } │
00:00:27 #471 [Verbose] > │ impl Spiral_eval::US2 { │
00:00:27 #472 [Verbose] > │ pub fn get_IsUS2_0(this_: &MutCell<Spiral_eval::US2>, unitArg: │
00:00:27 #473 [Verbose] > │ ()) │
00:00:27 #474 [Verbose] > │ -> bool { │
00:00:27 #475 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #476 [Verbose] > │ } │
00:00:27 #477 [Verbose] > │ pub fn get_IsUS2_1(this_: &MutCell<Spiral_eval::US2>, unitArg: │
00:00:27 #478 [Verbose] > │ ()) │
00:00:27 #479 [Verbose] > │ -> bool { │
00:00:27 #480 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #481 [Verbose] > │ } │
00:00:27 #482 [Verbose] > │ } │
00:00:27 #483 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US2 { │
00:00:27 #484 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #485 [Verbose] > │ { │
00:00:27 #486 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #487 [Verbose] > │ } │
00:00:27 #488 [Verbose] > │ } │
00:00:27 #489 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #490 [Verbose] > │ pub enum US1 { US1_0(Spiral_eval::US2), } │
00:00:27 #491 [Verbose] > │ impl Spiral_eval::US1 { │
00:00:27 #492 [Verbose] > │ pub fn get_IsUS1_0(this_: &MutCell<Spiral_eval::US1>, unitArg: │
00:00:27 #493 [Verbose] > │ ()) │
00:00:27 #494 [Verbose] > │ -> bool { │
00:00:27 #495 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #496 [Verbose] > │ } │
00:00:27 #497 [Verbose] > │ } │
00:00:27 #498 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US1 { │
00:00:27 #499 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #500 [Verbose] > │ { │
00:00:27 #501 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #502 [Verbose] > │ } │
00:00:27 #503 [Verbose] > │ } │
00:00:27 #504 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #505 [Verbose] > │ pub enum UH0 { │
00:00:27 #506 [Verbose] > │ UH0_0, │
00:00:27 #507 [Verbose] > │ UH0_1(i32, Spiral_eval::US0, i32, Spiral_eval::US1, │
00:00:27 #508 [Verbose] > │ LrcPtr<Spiral_eval::UH0>), │
00:00:27 #509 [Verbose] > │ } │
00:00:27 #510 [Verbose] > │ impl Spiral_eval::UH0 { │
00:00:27 #511 [Verbose] > │ pub fn get_IsUH0_0(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │
00:00:27 #512 [Verbose] > │ -> bool { │
00:00:27 #513 [Verbose] > │ if let Spiral_eval::UH0::UH0_0 = this_.as_ref() { │
00:00:27 #514 [Verbose] > │ true │
00:00:27 #515 [Verbose] > │ } else { false } │
00:00:27 #516 [Verbose] > │ } │
00:00:27 #517 [Verbose] > │ pub fn get_IsUH0_1(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │
00:00:27 #518 [Verbose] > │ -> bool { │
00:00:27 #519 [Verbose] > │ if let Spiral_eval::UH0::UH0_1(this__1_0, this__1_1, │
00:00:27 #520 [Verbose] > │ this__1_2, this__1_3, │
00:00:27 #521 [Verbose] > │ this__1_4) = this_.as_ref() { │
00:00:27 #522 [Verbose] > │ true │
00:00:27 #523 [Verbose] > │ } else { false } │
00:00:27 #524 [Verbose] > │ } │
00:00:27 #525 [Verbose] > │ } │
00:00:27 #526 [Verbose] > │ impl core::fmt::Display for Spiral_eval::UH0 { │
00:00:27 #527 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #528 [Verbose] > │ { │
00:00:27 #529 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #530 [Verbose] > │ } │
00:00:27 #531 [Verbose] > │ } │
00:00:27 #532 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #533 [Verbose] > │ pub enum US3 { US3_0, US3_1, } │
00:00:27 #534 [Verbose] > │ impl Spiral_eval::US3 { │
00:00:27 #535 [Verbose] > │ pub fn get_IsUS3_0(this_: &MutCell<Spiral_eval::US3>, unitArg: │
00:00:27 #536 [Verbose] > │ ()) │
00:00:27 #537 [Verbose] > │ -> bool { │
00:00:27 #538 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #539 [Verbose] > │ } │
00:00:27 #540 [Verbose] > │ pub fn get_IsUS3_1(this_: &MutCell<Spiral_eval::US3>, unitArg: │
00:00:27 #541 [Verbose] > │ ()) │
00:00:27 #542 [Verbose] > │ -> bool { │
00:00:27 #543 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #544 [Verbose] > │ } │
00:00:27 #545 [Verbose] > │ } │
00:00:27 #546 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US3 { │
00:00:27 #547 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #548 [Verbose] > │ { │
00:00:27 #549 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #550 [Verbose] > │ } │
00:00:27 #551 [Verbose] > │ } │
00:00:27 #552 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #553 [Verbose] > │ pub enum US6 { US6_0(i32), US6_1(i32), US6_2(i32), } │
00:00:27 #554 [Verbose] > │ impl Spiral_eval::US6 { │
00:00:27 #555 [Verbose] > │ pub fn get_IsUS6_0(this_: &MutCell<Spiral_eval::US6>, unitArg: │
00:00:27 #556 [Verbose] > │ ()) │
00:00:27 #557 [Verbose] > │ -> bool { │
00:00:27 #558 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #559 [Verbose] > │ } │
00:00:27 #560 [Verbose] > │ pub fn get_IsUS6_1(this_: &MutCell<Spiral_eval::US6>, unitArg: │
00:00:27 #561 [Verbose] > │ ()) │
00:00:27 #562 [Verbose] > │ -> bool { │
00:00:27 #563 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #564 [Verbose] > │ } │
00:00:27 #565 [Verbose] > │ pub fn get_IsUS6_2(this_: &MutCell<Spiral_eval::US6>, unitArg: │
00:00:27 #566 [Verbose] > │ ()) │
00:00:27 #567 [Verbose] > │ -> bool { │
00:00:27 #568 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #569 [Verbose] > │ } │
00:00:27 #570 [Verbose] > │ } │
00:00:27 #571 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US6 { │
00:00:27 #572 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #573 [Verbose] > │ { │
00:00:27 #574 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #575 [Verbose] > │ } │
00:00:27 #576 [Verbose] > │ } │
00:00:27 #577 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #578 [Verbose] > │ pub enum US8 { US8_0, US8_1, US8_2, US8_3, US8_4, US8_5, US8_6, } │
00:00:27 #579 [Verbose] > │ impl Spiral_eval::US8 { │
00:00:27 #580 [Verbose] > │ pub fn get_IsUS8_0(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:27 #581 [Verbose] > │ ()) │
00:00:27 #582 [Verbose] > │ -> bool { │
00:00:27 #583 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #584 [Verbose] > │ } │
00:00:27 #585 [Verbose] > │ pub fn get_IsUS8_1(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:27 #586 [Verbose] > │ ()) │
00:00:27 #587 [Verbose] > │ -> bool { │
00:00:27 #588 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #589 [Verbose] > │ } │
00:00:27 #590 [Verbose] > │ pub fn get_IsUS8_2(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:27 #591 [Verbose] > │ ()) │
00:00:27 #592 [Verbose] > │ -> bool { │
00:00:27 #593 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #594 [Verbose] > │ } │
00:00:27 #595 [Verbose] > │ pub fn get_IsUS8_3(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:27 #596 [Verbose] > │ ()) │
00:00:27 #597 [Verbose] > │ -> bool { │
00:00:27 #598 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #599 [Verbose] > │ } │
00:00:27 #600 [Verbose] > │ pub fn get_IsUS8_4(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:27 #601 [Verbose] > │ ()) │
00:00:27 #602 [Verbose] > │ -> bool { │
00:00:27 #603 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #604 [Verbose] > │ } │
00:00:27 #605 [Verbose] > │ pub fn get_IsUS8_5(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:27 #606 [Verbose] > │ ()) │
00:00:27 #607 [Verbose] > │ -> bool { │
00:00:27 #608 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #609 [Verbose] > │ } │
00:00:27 #610 [Verbose] > │ pub fn get_IsUS8_6(this_: &MutCell<Spiral_eval::US8>, unitArg: │
00:00:27 #611 [Verbose] > │ ()) │
00:00:27 #612 [Verbose] > │ -> bool { │
00:00:27 #613 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #614 [Verbose] > │ } │
00:00:27 #615 [Verbose] > │ } │
00:00:27 #616 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US8 { │
00:00:27 #617 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #618 [Verbose] > │ { │
00:00:27 #619 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #620 [Verbose] > │ } │
00:00:27 #621 [Verbose] > │ } │
00:00:27 #622 [Verbose] > │ #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #623 [Verbose] > │ pub enum US7 { │
00:00:27 #624 [Verbose] > │ US7_0(Spiral_eval::US8), │
00:00:27 #625 [Verbose] > │ US7_1(i32), │
00:00:27 #626 [Verbose] > │ US7_2(i32, Spiral_eval::US0), │
00:00:27 #627 [Verbose] > │ } │
00:00:27 #628 [Verbose] > │ impl Spiral_eval::US7 { │
00:00:27 #629 [Verbose] > │ pub fn get_IsUS7_0(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:27 #630 [Verbose] > │ ()) │
00:00:27 #631 [Verbose] > │ -> bool { │
00:00:27 #632 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #633 [Verbose] > │ } │
00:00:27 #634 [Verbose] > │ pub fn get_IsUS7_1(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:27 #635 [Verbose] > │ ()) │
00:00:27 #636 [Verbose] > │ -> bool { │
00:00:27 #637 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #638 [Verbose] > │ } │
00:00:27 #639 [Verbose] > │ pub fn get_IsUS7_2(this_: &MutCell<Spiral_eval::US7>, unitArg: │
00:00:27 #640 [Verbose] > │ ()) │
00:00:27 #641 [Verbose] > │ -> bool { │
00:00:27 #642 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #643 [Verbose] > │ } │
00:00:27 #644 [Verbose] > │ } │
00:00:27 #645 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US7 { │
00:00:27 #646 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #647 [Verbose] > │ { │
00:00:27 #648 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #649 [Verbose] > │ } │
00:00:27 #650 [Verbose] > │ } │
00:00:27 #651 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #652 [Verbose] > │ pub enum UH1 { │
00:00:27 #653 [Verbose] > │ UH1_0, │
00:00:27 #654 [Verbose] > │ UH1_1(Spiral_eval::US7, LrcPtr<Spiral_eval::UH1>), │
00:00:27 #655 [Verbose] > │ } │
00:00:27 #656 [Verbose] > │ impl Spiral_eval::UH1 { │
00:00:27 #657 [Verbose] > │ pub fn get_IsUH1_0(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │
00:00:27 #658 [Verbose] > │ -> bool { │
00:00:27 #659 [Verbose] > │ if let Spiral_eval::UH1::UH1_0 = this_.as_ref() { │
00:00:27 #660 [Verbose] > │ true │
00:00:27 #661 [Verbose] > │ } else { false } │
00:00:27 #662 [Verbose] > │ } │
00:00:27 #663 [Verbose] > │ pub fn get_IsUH1_1(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │
00:00:27 #664 [Verbose] > │ -> bool { │
00:00:27 #665 [Verbose] > │ if let Spiral_eval::UH1::UH1_1(this__1_0, this__1_1) = │
00:00:27 #666 [Verbose] > │ this_.as_ref() { │
00:00:27 #667 [Verbose] > │ true │
00:00:27 #668 [Verbose] > │ } else { false } │
00:00:27 #669 [Verbose] > │ } │
00:00:27 #670 [Verbose] > │ } │
00:00:27 #671 [Verbose] > │ impl core::fmt::Display for Spiral_eval::UH1 { │
00:00:27 #672 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #673 [Verbose] > │ { │
00:00:27 #674 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #675 [Verbose] > │ } │
00:00:27 #676 [Verbose] > │ } │
00:00:27 #677 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #678 [Verbose] > │ pub enum US5 { │
00:00:27 #679 [Verbose] > │ US5_0(Spiral_eval::US6), │
00:00:27 #680 [Verbose] > │ US5_1(LrcPtr<Spiral_eval::UH1>), │
00:00:27 #681 [Verbose] > │ } │
00:00:27 #682 [Verbose] > │ impl Spiral_eval::US5 { │
00:00:27 #683 [Verbose] > │ pub fn get_IsUS5_0(this_: &MutCell<Spiral_eval::US5>, unitArg: │
00:00:27 #684 [Verbose] > │ ()) │
00:00:27 #685 [Verbose] > │ -> bool { │
00:00:27 #686 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #687 [Verbose] > │ } │
00:00:27 #688 [Verbose] > │ pub fn get_IsUS5_1(this_: &MutCell<Spiral_eval::US5>, unitArg: │
00:00:27 #689 [Verbose] > │ ()) │
00:00:27 #690 [Verbose] > │ -> bool { │
00:00:27 #691 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #692 [Verbose] > │ } │
00:00:27 #693 [Verbose] > │ } │
00:00:27 #694 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US5 { │
00:00:27 #695 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #696 [Verbose] > │ { │
00:00:27 #697 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #698 [Verbose] > │ } │
00:00:27 #699 [Verbose] > │ } │
00:00:27 #700 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #701 [Verbose] > │ pub enum US4 { US4_0(Spiral_eval::US3), US4_1(Spiral_eval::US5), } │
00:00:27 #702 [Verbose] > │ impl Spiral_eval::US4 { │
00:00:27 #703 [Verbose] > │ pub fn get_IsUS4_0(this_: &MutCell<Spiral_eval::US4>, unitArg: │
00:00:27 #704 [Verbose] > │ ()) │
00:00:27 #705 [Verbose] > │ -> bool { │
00:00:27 #706 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #707 [Verbose] > │ } │
00:00:27 #708 [Verbose] > │ pub fn get_IsUS4_1(this_: &MutCell<Spiral_eval::US4>, unitArg: │
00:00:27 #709 [Verbose] > │ ()) │
00:00:27 #710 [Verbose] > │ -> bool { │
00:00:27 #711 [Verbose] > │ if unreachable!() { true } else { false } │
00:00:27 #712 [Verbose] > │ } │
00:00:27 #713 [Verbose] > │ } │
00:00:27 #714 [Verbose] > │ impl core::fmt::Display for Spiral_eval::US4 { │
00:00:27 #715 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:27 #716 [Verbose] > │ { │
00:00:27 #717 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:27 #718 [Verbose] > │ } │
00:00:27 #719 [Verbose] > │ } │
00:00:27 #720 [Verbose] > │ #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)] │
00:00:27 #721 [Verbose] > │ pub enum UH2 { │
00:00:27 #722 [Verbose] > │ UH2_0, │
00:00:27 #723 [Verbose] > │ UH2_1(LrcPtr<Spiral_eval::UH0>, string, Spiral_eval::US4, │
00:00:27 #724 [Verbose] > │ LrcPtr<Spiral_eval::UH2>), │
00:00:27 #725 [Verbose] > │ } │
00:00:27 #726 [Verbose] > │ impl Spiral_eval::UH2 { │
00:00:27 #727 [Verbose] > │ pub fn get_IsUH2_0(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │
00:00:27 #728 [Verbose] > │ -> bool { │
00:00:28 #729 [Verbose] > │ if let Spiral_eval::UH2::UH2_0 = this_.as_ref() { │
00:00:28 #730 [Verbose] > │ true │
00:00:28 #731 [Verbose] > │ } else { false } │
00:00:28 #732 [Verbose] > │ } │
00:00:28 #733 [Verbose] > │ pub fn get_IsUH2_1(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │
00:00:28 #734 [Verbose] > │ -> bool { │
00:00:28 #735 [Verbose] > │ if let Spiral_eval::UH2::UH2_1(this__1_0, this__1_1, │
00:00:28 #736 [Verbose] > │ this__1_2, this__1_3) = │
00:00:28 #737 [Verbose] > │ this_.as_ref() { │
00:00:28 #738 [Verbose] > │ true │
00:00:28 #739 [Verbose] > │ } else { false } │
00:00:28 #740 [Verbose] > │ } │
00:00:28 #741 [Verbose] > │ } │
00:00:28 #742 [Verbose] > │ impl core::fmt::Display for Spiral_eval::UH2 { │
00:00:28 #743 [Verbose] > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │
00:00:28 #744 [Verbose] > │ { │
00:00:28 #745 [Verbose] > │ write!(f, "{}", core::any::type_name::<Self>()) │
00:00:28 #746 [Verbose] > │ } │
00:00:28 #747 [Verbose] > │ } │
00:00:28 #748 [Verbose] > │ pub fn method0() { │
00:00:28 #749 [Verbose] > │ let v17: std::string::String = │
00:00:28 #750 [Verbose] > │ format!("{:#?}", │
00:00:28 #751 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1(LrcPtr::new(Spiral_eval::UH0::UH0_0), │
00:00:28 #752 [Verbose] > │ │
00:00:28 #753 [Verbose] > │ string("01"), │
00:00:28 #754 [Verbose] > │ │
00:00:28 #755 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0), │
00:00:28 #756 [Verbose] > │ │
00:00:28 #757 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1(LrcPtr::new(Spiral_eval::UH0::UH0_0), │
00:00:28 #758 [Verbose] > │ │
00:00:28 #759 [Verbose] > │ string("02"), │
00:00:28 #760 [Verbose] > │ │
00:00:28 #761 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0), │
00:00:28 #762 [Verbose] > │ │
00:00:28 #763 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1(LrcPtr::new(Spiral_eval::UH0::UH0_0), │
00:00:28 #764 [Verbose] > │ │
00:00:28 #765 [Verbose] > │ string("03"), │
00:00:28 #766 [Verbose] > │ │
00:00:28 #767 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0), │
00:00:28 #768 [Verbose] > │ │
00:00:28 #769 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0)))))))); │
00:00:28 #770 [Verbose] > │ printfn!("{0}", v17); │
00:00:28 #771 [Verbose] > │ () │
00:00:28 #772 [Verbose] > │ } │
00:00:28 #773 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:28 #774 [Verbose] > │ } │
00:00:28 #775 [Verbose] > │ } │
00:00:28 #776 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:28 #777 [Verbose] > │ │
00:00:28 #778 [Verbose] > │ │
00:00:28 #779 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:28 #780 [Verbose] >
00:00:28 #781 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:28 #782 [Verbose] > // // test
00:00:28 #783 [Verbose] > // // rust=
00:00:28 #784 [Verbose] >
00:00:28 #785 [Verbose] > get_tasks ()
00:00:28 #786 [Verbose] > |> listm'.try_item 0i32
00:00:28 #787 [Verbose] > |> fun (Some task) => task.task.name
00:00:28 #788 [Verbose] > |> _assert_eq (task_name "01")
00:00:28 #789 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-5994-9456-95bfd2aef334\main.spi
00:00:33 #790 [Verbose] >
00:00:33 #791 [Verbose] > ╭─[ 5.67s - return value ]─────────────────────────────────────────────────────╮
00:00:33 #792 [Verbose] > │ .rs output: │
00:00:33 #793 [Verbose] > │ "01" │
00:00:33 #794 [Verbose] > │ │
00:00:33 #795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #796 [Verbose] >
00:00:33 #797 [Verbose] > ╭─[ 5.67s - stdout ]───────────────────────────────────────────────────────────╮
00:00:33 #798 [Verbose] > │ │
00:00:33 #799 [Verbose] > │ .fsx: │
00:00:33 #800 [Verbose] > │ let rec method0 () : unit = │
00:00:33 #801 [Verbose] > │ let v0 : string = "01" │
00:00:33 #802 [Verbose] > │ let v1 : string = $"%A{v0}" │
00:00:33 #803 [Verbose] > │ System.Console.WriteLine v1 │
00:00:33 #804 [Verbose] > │ let v2 : string = $"__expect / actual: %A{v0} / expected: %A{v0}" │
00:00:33 #805 [Verbose] > │ () │
00:00:33 #806 [Verbose] > │ method0() │
00:00:33 #807 [Verbose] > │ │
00:00:33 #808 [Verbose] > │ │
00:00:33 #809 [Verbose] > │ .rs: │
00:00:33 #810 [Verbose] > │ #![allow(dead_code,)] │
00:00:33 #811 [Verbose] > │ #![allow(non_camel_case_types,)] │
00:00:33 #812 [Verbose] > │ #![allow(non_snake_case,)] │
00:00:33 #813 [Verbose] > │ #![allow(non_upper_case_globals,)] │
00:00:33 #814 [Verbose] > │ #![allow(unreachable_code,)] │
00:00:33 #815 [Verbose] > │ #![allow(unused_attributes,)] │
00:00:33 #816 [Verbose] > │ #![allow(unused_imports,)] │
00:00:33 #817 [Verbose] > │ #![allow(unused_macros,)] │
00:00:33 #818 [Verbose] > │ #![allow(unused_parens,)] │
00:00:33 #819 [Verbose] > │ #![allow(unused_variables,)] │
00:00:33 #820 [Verbose] > │ mod module_ccfa04bf { │
00:00:33 #821 [Verbose] > │ pub mod Spiral_eval { │
00:00:33 #822 [Verbose] > │ use super::*; │
00:00:33 #823 [Verbose] > │ use fable_library_rust::Native_::on_startup; │
00:00:33 #824 [Verbose] > │ use fable_library_rust::String_::printfn; │
00:00:33 #825 [Verbose] > │ use fable_library_rust::String_::sprintf; │
00:00:33 #826 [Verbose] > │ use fable_library_rust::String_::string; │
00:00:33 #827 [Verbose] > │ pub fn method0() { │
00:00:33 #828 [Verbose] > │ let v1: string = sprintf!("{:?}", string("01")); │
00:00:33 #829 [Verbose] > │ printfn!("{0}", v1); │
00:00:33 #830 [Verbose] > │ { │
00:00:33 #831 [Verbose] > │ let v2: string = │
00:00:33 #832 [Verbose] > │ sprintf!("__expect / actual: {:?} / expected: {:?}", │
00:00:33 #833 [Verbose] > │ string("01"), string("01")); │
00:00:33 #834 [Verbose] > │ () │
00:00:33 #835 [Verbose] > │ } │
00:00:33 #836 [Verbose] > │ } │
00:00:33 #837 [Verbose] > │ on_startup!(Spiral_eval::method0()); │
00:00:33 #838 [Verbose] > │ } │
00:00:33 #839 [Verbose] > │ } │
00:00:33 #840 [Verbose] > │ pub use module_ccfa04bf::*; │
00:00:33 #841 [Verbose] > │ │
00:00:33 #842 [Verbose] > │ │
00:00:33 #843 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:33 #844 [Verbose] >
00:00:33 #845 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:33 #846 [Verbose] > // // test
00:00:33 #847 [Verbose] >
00:00:33 #848 [Verbose] > ()
00:00:33 #849 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1303-0563-6379-621d9ff856df\main.spi
00:00:34 #850 [Verbose] >
00:00:34 #851 [Verbose] > ╭─[ 713.86ms - stdout ]────────────────────────────────────────────────────────╮
00:00:34 #852 [Verbose] > │ let rec method0 () : unit = │
00:00:34 #853 [Verbose] > │ () │
00:00:34 #854 [Verbose] > │ method0() │
00:00:34 #855 [Verbose] > │ │
00:00:34 #856 [Verbose] > │ │
00:00:34 #857 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:37 #858 [Verbose] > [NbConvertApp] Converting notebook Tasks.dib.ipynb to html
00:00:37 #859 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:00:37 #860 [Verbose] > validate(nb)
00:00:37 #861 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:00:37 #862 [Verbose] > return _pygments_highlight(
00:00:38 #863 [Verbose] > [NbConvertApp] Writing 313974 bytes to Tasks.dib.html
00:00:39 #864 [Debug] executeAsync / exitCode: 0 / output.Length: 56712
00:00:39 #865 [Debug] main / executeCommand / exitCode: 0
00:00:41 #866 [Debug] runWithTimeoutChildAsync / timeout: 2000
00:00:00 #1 [Debug] writeDibCode / output: Spi / path: Tasks.dib
00:00:00 #2 [Debug] parseDibCode / output: Spi / file: Tasks.dib
In [ ]:
{ . "$ScriptDir/../apps/chat/build.ps1" } | Invoke-Block
Finished `release` profile [optimized] target(s) in 2.10s Compiling libc v0.2.153 Compiling serde v1.0.197 Compiling syn v1.0.109 Compiling typenum v1.17.0 Compiling lock_api v0.4.11 Compiling thiserror v1.0.58 Compiling proc-macro-error-attr v1.0.4 Compiling proc-macro-error v1.0.4 Compiling crossbeam-utils v0.8.19 Compiling jobserver v0.1.28 Compiling getrandom v0.2.12 Compiling parking_lot_core v0.9.9 Compiling cc v1.0.90 Compiling signal-hook-registry v1.4.1 Compiling socket2 v0.5.6 Compiling parking_lot v0.12.1 Compiling num_cpus v1.16.0 Compiling mio v0.8.11 Compiling rand_core v0.6.4 Compiling tokio v1.37.0 Compiling rand_chacha v0.3.1 Compiling serde_json v1.0.115 Compiling rustversion v1.0.14 Compiling zstd-sys v2.0.10+zstd.1.5.6 Compiling ring v0.17.8 Compiling rand v0.8.5 Compiling bzip2-sys v0.1.11+1.0.8 Compiling prost-derive v0.9.0 Compiling async-trait v0.1.79 Compiling crossbeam-channel v0.5.12 Compiling tokio-util v0.7.10 Compiling syn_derive v0.1.8 Compiling h2 v0.3.26 Compiling hex v0.4.3 Compiling hyper v0.14.28 Compiling derive_more v0.99.17 Compiling openssl-sys v0.9.102 Compiling generic-array v0.14.7 Compiling num-rational v0.3.2 Compiling crypto-common v0.1.6 Compiling block-buffer v0.10.4 Compiling digest v0.10.7 Compiling strum_macros v0.24.3 Compiling tokio-stream v0.1.15 Compiling sha2 v0.10.8 Compiling getrandom v0.1.16 Compiling secp256k1-sys v0.8.1 Compiling rand_core v0.5.1 Compiling serde_with v3.7.0 Compiling borsh-derive v1.4.0 Compiling fs2 v0.4.3 Compiling prost v0.9.0 Compiling curve25519-dalek v4.1.2 Compiling prost-types v0.9.0 Compiling prost-build v0.9.0 Compiling rand_chacha v0.2.2 Compiling uint v0.9.5 Compiling digest v0.9.0 Compiling cipher v0.2.5 Compiling tonic-build v0.6.2 Compiling crypto-mac v0.8.0 Compiling tokio-io-timeout v1.2.0 Compiling opentelemetry v0.17.0 Compiling tower v0.4.13 Compiling strum v0.24.1 Compiling blake2 v0.9.2 Compiling zstd-safe v5.0.2+zstd.1.5.2 Compiling near-config-utils v0.20.1 Compiling hyper-timeout v0.4.1 Compiling opentelemetry-otlp v0.10.0 Compiling c2-chacha v0.3.3 Compiling primitive-types v0.10.1 Compiling rand v0.7.3 Compiling secp256k1 v0.27.0 Compiling ed25519-dalek v2.1.1 Compiling tokio-util v0.6.10 Compiling semver v1.0.22 Compiling serde_yaml v0.9.34+deprecated Compiling tonic v0.6.2 Compiling openssl v0.10.64 Compiling rustls-webpki v0.102.2 Compiling rustls v0.22.3 Compiling actix-rt v2.9.0 Compiling chrono v0.4.37 Compiling actix v0.13.3 Compiling native-tls v0.2.11 Compiling zeropool-bn v0.5.11 Compiling sha3 v0.10.8 Compiling tracing-opentelemetry v0.17.4 Compiling prometheus v0.13.3 Compiling zstd v0.11.2+zstd.1.5.2 Compiling bzip2 v0.4.4 Compiling url v2.5.0 Compiling tracing-appender v0.2.3 Compiling opentelemetry-semantic-conventions v0.9.0 Compiling borsh v1.4.0 Compiling ripemd v0.1.3 Compiling near-account-id v1.0.0 Compiling inout v0.1.3 Compiling serde_derive_internals v0.26.0 Compiling near-primitives-core v0.20.1 Compiling near-crypto v0.20.1 Compiling dirs-sys-next v0.1.2 Compiling filetime v0.2.23 Compiling ureq v2.9.6 Compiling tar v0.4.40 Compiling zip v0.6.6 Compiling near-fmt v0.20.1 Compiling near-parameters v0.20.1 Compiling schemars v0.8.16 Compiling radium v0.7.0 Compiling camino v1.1.6 Compiling password-hash v0.4.2 Compiling schemars_derive v0.8.16 Compiling dirs-next v2.0.0 Compiling near-rpc-error-macro v0.20.1 Compiling cipher v0.4.4 Compiling ahash v0.7.8 Compiling hmac v0.12.1 Compiling smart-default v0.6.0 Compiling borsh-derive-internal v0.9.3 Compiling near-vm-runner v0.20.1 Compiling borsh-schema-derive-internal v0.9.3 Compiling bytesize v1.3.0 Compiling binary-install v0.2.0 Compiling string_cache v0.8.7 Compiling borsh-derive v0.9.3 Compiling hashbrown v0.11.2 Compiling pbkdf2 v0.11.0 Compiling aes v0.8.4 Compiling tokio-native-tls v0.3.1 Compiling sha1 v0.10.6 Compiling cargo-platform v0.1.8 Compiling memmap2 v0.5.10 Compiling atty v0.2.14 Compiling elementtree v0.7.0 Compiling bitvec v1.0.1 Compiling symbolic-common v8.8.0 Compiling near-sandbox-utils v0.7.0 Compiling hyper-tls v0.5.0 Compiling serde_urlencoded v0.7.1 Compiling zip v0.5.13 Compiling clap_derive v3.2.25 Compiling symbolic-debuginfo v8.8.0 Compiling reqwest v0.11.27 Compiling env_logger v0.9.3 Compiling near-workspaces v0.10.0 Compiling cargo_metadata v0.14.2 Compiling rustc_version v0.4.0 Compiling treediff v4.0.3 Compiling json-patch v1.2.0 Compiling cargo_metadata v0.18.1 Compiling tokio-retry v0.3.0 Compiling near-token v0.2.0 Compiling near-gas v0.2.5 Compiling borsh v0.9.3 Compiling near-abi v0.3.0 Compiling near-o11y v0.20.1 Compiling clap v3.2.25 Compiling near-primitives v0.20.1 Compiling cargo-near v0.3.1 Compiling near-chain-configs v0.20.1 Compiling near-jsonrpc-primitives v0.20.1 Compiling near-jsonrpc-client v0.8.0 Compiling chat_contract_tests v0.0.1 (/mnt/c/home/git/polyglot/apps/chat/contract/tests) Finished `release` profile [optimized] target(s) in 14m 20s Running `/mnt/c/home/git/polyglot/target/release/chat_contract_tests` Updated the logging layer according to `log_config.json` new: ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5283524958066, }, transaction: ExecutionOutcome { transaction_hash: AsQ1i3PnLDQBm7hXMv54dFQWUyHX8Wp1mTDx67iyHGY6, block_hash: D1GYTyQZrjYCDpaK4Fr2hbjoMaq8s9YMV5RmWfjfJuT8, logs: [], receipt_ids: [ 56cvyNhVaxm7KabBhiW7hQ35WD9PkGAqyquBsLxzyLL5, ], gas_burnt: NearGas { inner: 2427927707802, }, tokens_burnt: NearToken { inner: 242792770780200000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessReceiptId(56cvyNhVaxm7KabBhiW7hQ35WD9PkGAqyquBsLxzyLL5), }, receipts: [ ExecutionOutcome { transaction_hash: 56cvyNhVaxm7KabBhiW7hQ35WD9PkGAqyquBsLxzyLL5, block_hash: D1GYTyQZrjYCDpaK4Fr2hbjoMaq8s9YMV5RmWfjfJuT8, logs: [], receipt_ids: [ AwXwFHt7E9w5VTr5Nn6vXS2vLyVKbtBVa3yf7jUcGvPx, ], gas_burnt: NearGas { inner: 2632414687764, }, tokens_burnt: NearToken { inner: 263241468776400000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: AwXwFHt7E9w5VTr5Nn6vXS2vLyVKbtBVa3yf7jUcGvPx, block_hash: 5nMPjevLSU8bWEbE9Yvotd6kTnY3GSpsuGW6CWLhayjo, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.003529394671988088 outcome (success: true): outcome_gas_burnt_usd: 0.001621855708811736 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0017584530114263522 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 claim_alias(contract, ''): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5288528837296, }, transaction: ExecutionOutcome { transaction_hash: CeHHJKyZSwXNAr9zpDjYN2AMbAkL6uzzJXoQVXNnquYB, block_hash: 7nThsCeKskoDDGKE1gSXXaxruuuu3nb7E1KnMVRH5rt, logs: [], receipt_ids: [ BhjeB6Y3RxrJtm5zzLr89Gwu5Hp7pMvMhC4gnrrBWGvC, ], gas_burnt: NearGas { inner: 2427972426482, }, tokens_burnt: NearToken { inner: 242797242648200000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessReceiptId(BhjeB6Y3RxrJtm5zzLr89Gwu5Hp7pMvMhC4gnrrBWGvC), }, receipts: [ ExecutionOutcome { transaction_hash: BhjeB6Y3RxrJtm5zzLr89Gwu5Hp7pMvMhC4gnrrBWGvC, block_hash: 7nThsCeKskoDDGKE1gSXXaxruuuu3nb7E1KnMVRH5rt, logs: [ "claim_alias / alias: \"\" / account_id: AccountId(\n \"dev-20240404171800-97307881902005\",\n) / timestamp: 1712251082901387619", ], receipt_ids: [ CG25JjwykLQPMqYnA4H2Y9JzFK67ZLiidwMMp7SDaQ8b, ], gas_burnt: NearGas { inner: 2637373848314, }, tokens_burnt: NearToken { inner: 263737384831400000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })), }, ExecutionOutcome { transaction_hash: CG25JjwykLQPMqYnA4H2Y9JzFK67ZLiidwMMp7SDaQ8b, block_hash: ErAAhbhM1r2UXUjtT7AfAYp6c4fktgrcso3hRegkhuD6, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ], status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })), } total_gas_burnt_usd: 0.0035327372633137282 outcome (success: true): outcome_gas_burnt_usd: 0.001621885580889976 outcome_tokens_burnt_usd: 0.0 outcome (success: false): outcome_gas_burnt_usd: 0.0017617657306737517 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 dev_create_account(account1): Account { id: AccountId( "dev-20240404171803-36489746474463", ), } generate_cid_borsh(account1): ViewResultDetails { result: [ 59, 0, 0, 0, 98, 97, 102, 107, 114, 101, 105, 104, 100, 119, 100, 99, 101, 102, 103, 104, 52, 100, 113, 107, 106, 118, 54, 55, 117, 122, 99, 109, 119, 55, 111, 106, 101, 101, 54, 120, 101, 100, 122, 100, 101, 116, 111, 106, 117, 122, 106, 101, 118, 116, 101, 110, 120, 113, 117, 118, 121, 107, 117, ], logs: [], } claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5710392058645, }, transaction: ExecutionOutcome { transaction_hash: 2yAdxArEpJTRZCM5ZETTd3V5Y3ukqXkdQbM8ervQrhWk, block_hash: 5sBerGsXxEj2maqJE2f8tU6MBZEfEGsCxEtPN26rom7w, logs: [], receipt_ids: [ J8oDxaZmLmmxtjaYwWQQdYE4tkdCCP5zJ3fJ6XebZZwz, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessReceiptId(J8oDxaZmLmmxtjaYwWQQdYE4tkdCCP5zJ3fJ6XebZZwz), }, receipts: [ ExecutionOutcome { transaction_hash: J8oDxaZmLmmxtjaYwWQQdYE4tkdCCP5zJ3fJ6XebZZwz, block_hash: AywgEJnVePSsMYwpVNKDPLSxeEcdDMFXqYqrH3JUt3rf, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251085135358395", ], receipt_ids: [ CeqLdcKEUTeMiNU4nnNatA1rTHV2F7FozVJsLNWtDoPx, ], gas_burnt: NearGas { inner: 3059223654059, }, tokens_burnt: NearToken { inner: 305922365405900000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: CeqLdcKEUTeMiNU4nnNatA1rTHV2F7FozVJsLNWtDoPx, block_hash: E13T6QLxaazRoZMBpBGAYAm1hW1V3gK1RSJwdzkUDRnz, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.00381454189517486 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002043561400911412 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5534798929042, }, transaction: ExecutionOutcome { transaction_hash: DuwGsPXyzqdEPgC2YtRyC9YKJs7yZ519u5EYXXMYH2R9, block_hash: Fs6Sv7VeY8xXHE4n3ofMbZJC5TcYpZUqs7npqMZpoube, logs: [], receipt_ids: [ ChNns7NBs2KQ2aVmo5tnJJdqfBUB3pLiHZF3CckvS7Kx, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessReceiptId(ChNns7NBs2KQ2aVmo5tnJJdqfBUB3pLiHZF3CckvS7Kx), }, receipts: [ ExecutionOutcome { transaction_hash: ChNns7NBs2KQ2aVmo5tnJJdqfBUB3pLiHZF3CckvS7Kx, block_hash: 4g9p6TTZcANUiA54ys6nZcT15QNUwD7Da1zgz4qu58WS, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251086150560494", "Alias already claimed", ], receipt_ids: [ 6ZZ5mGLQHSmT1HCpyzHMTBgbfAEpUEzkNGqkgzJbnwwh, ], gas_burnt: NearGas { inner: 2883630524456, }, tokens_burnt: NearToken { inner: 288363052445600000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 6ZZ5mGLQHSmT1HCpyzHMTBgbfAEpUEzkNGqkgzJbnwwh, block_hash: 5fZnHpXhMZtEakVojxozYh7Ex6Sa3RpbUhozFNqpP2Ka, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.0036972456846000555 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0019262651903366077 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias1", ( 1712251085135358395, 0, ), ), ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20240404171803-36489746474463", ): ( 1712251085135358395, 0, ), }, ) dev_create_account(account2): Account { id: AccountId( "dev-20240404171806-29854470360507", ), } claim_alias(alias2): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 5797741838275, }, transaction: ExecutionOutcome { transaction_hash: P2v4bN2cWQtaSWcyJ43Q2QfRXuDV3TfmdNj9vqY8qeR, block_hash: J1tAzpF8aMEuNJf91mf6gK4k9b4Yz2rcqhE4BDnT3yUQ, logs: [], receipt_ids: [ 32ybiVdv4BH9KMMCQEVTXGchNwDx2LH9LABXnEJtZmN3, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240404171806-29854470360507", ), status: SuccessReceiptId(32ybiVdv4BH9KMMCQEVTXGchNwDx2LH9LABXnEJtZmN3), }, receipts: [ ExecutionOutcome { transaction_hash: 32ybiVdv4BH9KMMCQEVTXGchNwDx2LH9LABXnEJtZmN3, block_hash: zxProLjm5ovAq3Hfum5gAA2eEK77sWgpcBPWAmVsH8P, logs: [ "claim_alias / alias: \"alias2\" / account_id: AccountId(\n \"dev-20240404171806-29854470360507\",\n) / timestamp: 1712251088183296192", ], receipt_ids: [ 4HGhTjBkxGWGDRZBS1GFsQ1c9us2ARYxYeQNtQEAEjWG, ], gas_burnt: NearGas { inner: 3146573433689, }, tokens_burnt: NearToken { inner: 314657343368900000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 4HGhTjBkxGWGDRZBS1GFsQ1c9us2ARYxYeQNtQEAEjWG, block_hash: 7NfJPebVx6ryi3iLRSL9PxivXkweHmM9bVB3dRsQXkSX, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171806-29854470360507", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.0038728915479677 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002101911053704252 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account2): Some( ( "alias2", ( 1712251088183296192, 0, ), ), ) get_alias_map_borsh(alias2): Some( { AccountId( "dev-20240404171806-29854470360507", ): ( 1712251088183296192, 0, ), }, ) claim_alias(account2, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 6102073589470, }, transaction: ExecutionOutcome { transaction_hash: 2TDzSz1AXbazGz6vnu9nr7DRkGSdaT9zowyQ2tHXFAgx, block_hash: D4YuA3wh7i2ZApbPbYeThTGRDkXY62AA6ajnVxHXf5oZ, logs: [], receipt_ids: [ 6n9WizbbTNRD8FzJ1SwU67pQhrR24TvDY6vJ5HEA6hiJ, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240404171806-29854470360507", ), status: SuccessReceiptId(6n9WizbbTNRD8FzJ1SwU67pQhrR24TvDY6vJ5HEA6hiJ), }, receipts: [ ExecutionOutcome { transaction_hash: 6n9WizbbTNRD8FzJ1SwU67pQhrR24TvDY6vJ5HEA6hiJ, block_hash: AskGXrMPnid3HT9wEK2y3U6zTugMdGCAXGjrutA4rJq1, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240404171806-29854470360507\",\n) / timestamp: 1712251089197544790", ], receipt_ids: [ Ga7LozeqYeYcnzVAtJ3FW7jT5RDXP212vbAJFKm4iJtf, ], gas_burnt: NearGas { inner: 3450905184884, }, tokens_burnt: NearToken { inner: 345090518488400000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: Ga7LozeqYeYcnzVAtJ3FW7jT5RDXP212vbAJFKm4iJtf, block_hash: BmC5dN5Tfgd3GQDPPKbATQ7P3D65hAaPyVoNsSBUAfPj, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171806-29854470360507", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.00407618515776596 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002305204663502512 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account2): Some( ( "alias1", ( 1712251089197544790, 1, ), ), ) get_alias_map(account2, alias1): Some( { AccountId( "dev-20240404171803-36489746474463", ): ( 1712251085135358395, 0, ), AccountId( "dev-20240404171806-29854470360507", ): ( 1712251089197544790, 1, ), }, ) get_alias_map(account2, alias2): Some( {}, ) claim_alias(account1, alias2): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 6096724852714, }, transaction: ExecutionOutcome { transaction_hash: 2odr5bBq7TMEbuJLyH3a4EWGQ7rTMHoE1Do7syXCnr23, block_hash: XmV8YiaWh9F24d84tqwCZ4MwEjkpHMHPwak15dJBrLy, logs: [], receipt_ids: [ BkML8KaJehynUo7ysWaEVrVhZ6NL81ZgCkn2ZXSkWfTa, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessReceiptId(BkML8KaJehynUo7ysWaEVrVhZ6NL81ZgCkn2ZXSkWfTa), }, receipts: [ ExecutionOutcome { transaction_hash: BkML8KaJehynUo7ysWaEVrVhZ6NL81ZgCkn2ZXSkWfTa, block_hash: 6FeAZbqpWxajxn6zgDzYpsD6rF7mB6tTbVs2fi4QYyF6, logs: [ "claim_alias / alias: \"alias2\" / account_id: AccountId(\n \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251090210571689", ], receipt_ids: [ 429En3GmcE7domoe5NrquxSYmDkajSNaiqux58yfU3hK, ], gas_burnt: NearGas { inner: 3445556448128, }, tokens_burnt: NearToken { inner: 344555644812800000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 429En3GmcE7domoe5NrquxSYmDkajSNaiqux58yfU3hK, block_hash: 81efSgNknwHN7i8RTF5LH67uXXhhbaWUd2YfaCDpTtMQ, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.004072612201612952 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0023016317073495042 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias2", ( 1712251090210571689, 0, ), ), ) get_alias_map(account1, alias2): Some( { AccountId( "dev-20240404171803-36489746474463", ): ( 1712251090210571689, 0, ), }, ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20240404171806-29854470360507", ): ( 1712251089197544790, 1, ), }, ) claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 6102073589470, }, transaction: ExecutionOutcome { transaction_hash: 6zV5hiPgMmNihMLrRdYKn2aLGkwqpCr7GTu7JMzknBj7, block_hash: GRHbFhUxXU28ffatjotwBJZGczsvY5oEm6H2jsu7ZPDx, logs: [], receipt_ids: [ HLokvVMgP57v6qRxw5YiV4ReusmkDVgHYzgvDyUqQxDp, ], gas_burnt: NearGas { inner: 2427985842086, }, tokens_burnt: NearToken { inner: 242798584208600000000, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessReceiptId(HLokvVMgP57v6qRxw5YiV4ReusmkDVgHYzgvDyUqQxDp), }, receipts: [ ExecutionOutcome { transaction_hash: HLokvVMgP57v6qRxw5YiV4ReusmkDVgHYzgvDyUqQxDp, block_hash: 8Y5vDMByMpwSp1o4pxKC6SiHFnbM44L3rTVEBvZFcB5C, logs: [ "claim_alias / alias: \"alias1\" / account_id: AccountId(\n \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251091224065687", ], receipt_ids: [ 38z5A9hWFKNLtRbLMy1NZMDSBVqzLJUM8LhH16NdvJyM, ], gas_burnt: NearGas { inner: 3450905184884, }, tokens_burnt: NearToken { inner: 345090518488400000000, }, executor_id: AccountId( "dev-20240404171800-97307881902005", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 38z5A9hWFKNLtRbLMy1NZMDSBVqzLJUM8LhH16NdvJyM, block_hash: Hm9ACiLjvPhZ7xS7RvSxgAMkaKPKMiK7Pf9E958Y3ZC5, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20240404171803-36489746474463", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.00407618515776596 outcome (success: true): outcome_gas_burnt_usd: 0.0016218945425134478 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002305204663502512 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias1", ( 1712251091224065687, 1, ), ), ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20240404171803-36489746474463", ): ( 1712251091224065687, 1, ), AccountId( "dev-20240404171806-29854470360507", ): ( 1712251089197544790, 0, ), }, ) get_alias_map(account1, alias2): Some( {}, )
In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/extension/build.ps1" } | Invoke-Block
bun install v1.1.0 (5903a614) Checked 11 installs across 13 packages (no changes) [109.00ms] [INFO]: 🎯 Checking for the Wasm target... [INFO]: 🌀 Compiling to Wasm... Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.73s [INFO]: ⬇️ Installing wasm-bindgen... [INFO]: origin crate has no LICENSE [INFO]: ✨ Done in 5.36s [INFO]: 📦 Your wasm pkg is ready to publish at C:\home\git\polyglot\apps\spiral\temp\extension\pkg. ▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta] pkg/spiral_temp_extension.js:1494:57: 1494 │ ...put = new URL('spiral_temp_extension_bg.wasm', import.meta.url); ╵ ~~~~~~~~~~~ You need to set the output format to "esm" for "import.meta" to work correctly. 1 warning dist\spiral_temp_extension_bg-4DEZJNWN.wasm 4.5mb ⚠️ dist\devtools.js 29.0kb dist\content_script.js 27.1kb dist\service_worker.js 2.2kb ⚡ Done in 106ms $ playwright test [WebServer] (node:36424) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (Use `node --trace-deprecation ...` to show where the warning was created) Running 3 tests using 3 workers [1/3] [Desktop Chrome] › extension.spec.ts:3:5 › popup localhost [2/3] [Desktop Chrome] › extension.spec.ts:8:5 › popup extension [3/3] [Desktop Chrome] › extension.spec.ts:13:5 › libgen 3 passed (20.0s) To open last HTML report run: npx playwright show-report
In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/test/build.ps1" } | Invoke-Block
── pwsh ────────────────────────────────────────────────────────────────────────
. ../../../../scripts/nbs_header.ps1
. ../../../../scripts/core.ps1
── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix)
--execute-command "pwsh -c `"../../../../scripts/invoke-dib.ps1 test.dib`"" } |
Invoke-Block -Retries 5
╭─[ 21.78s - stdout ]──────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:00 #2 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:main@438-47> } │
│ 00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral\temp\test │
│ 00:00:00 #4 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:00 #6 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c │
│ "../../../../scripts/invoke-dib.ps1 test.dib"" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = None } │
│ 00:00:03 #12 [Verbose] > │
│ 00:00:03 #13 [Verbose] > ── markdown │
│ ──────────────────────────────────────────────────────────────────── │
│ 00:00:03 #14 [Verbose] > │
│ ╭─────────────────────────────────────────────────────────────────────────── │
│ ───╮ │
│ 00:00:03 #15 [Verbose] > │ # test (Polyglot) │
│ │ │
│ 00:00:03 #16 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:03 #17 [Verbose] > │
│ 00:00:03 #18 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:03 #19 [Verbose] > // // test │
│ 00:00:03 #20 [Verbose] > │
│ 00:00:03 #21 [Verbose] > open testing │
│ 00:00:07 #22 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1318-5642-4238-44ad2 │
│ 0b13f9d\main.spi │
│ 00:00:10 #23 [Verbose] > │
│ 00:00:10 #24 [Verbose] > ╭─[ 6.33s - stdout │
│ ]───────────────────────────────────────────────────────────╮ │
│ 00:00:10 #25 [Verbose] > │ () │
│ │ │
│ 00:00:10 #26 [Verbose] > │ │
│ │
│ │ │
│ 00:00:10 #27 [Verbose] > │ │
│ │
│ │ │
│ 00:00:10 #28 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:10 #29 [Verbose] > │
│ 00:00:10 #30 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:10 #31 [Verbose] > nominal i = () │
│ 00:00:10 #32 [Verbose] > nominal e = () │
│ 00:00:10 #33 [Verbose] > nominal s = () │
│ 00:00:10 #34 [Verbose] > nominal n = () │
│ 00:00:10 #35 [Verbose] > nominal t = () │
│ 00:00:10 #36 [Verbose] > nominal f = () │
│ 00:00:10 #37 [Verbose] > nominal j = () │
│ 00:00:10 #38 [Verbose] > nominal p = () │
│ 00:00:10 #39 [Verbose] > │
│ 00:00:10 #40 [Verbose] > union sensing = │
│ 00:00:10 #41 [Verbose] > | Si : s * i │
│ 00:00:10 #42 [Verbose] > | Se : s * e │
│ 00:00:10 #43 [Verbose] > │
│ 00:00:10 #44 [Verbose] > union intuition = │
│ 00:00:10 #45 [Verbose] > | Ni : n * i │
│ 00:00:10 #46 [Verbose] > | Ne : n * e │
│ 00:00:10 #47 [Verbose] > │
│ 00:00:10 #48 [Verbose] > union thinking = │
│ 00:00:10 #49 [Verbose] > | Ti : t * i │
│ 00:00:10 #50 [Verbose] > | Te : t * e │
│ 00:00:10 #51 [Verbose] > │
│ 00:00:10 #52 [Verbose] > union feeling = │
│ 00:00:10 #53 [Verbose] > | Fi : f * i │
│ 00:00:10 #54 [Verbose] > | Fe : f * e │
│ 00:00:10 #55 [Verbose] > │
│ 00:00:10 #56 [Verbose] > union function_stack = │
│ 00:00:10 #57 [Verbose] > | FS : sensing * intuition * thinking * feeling │
│ 00:00:10 #58 [Verbose] > │
│ 00:00:10 #59 [Verbose] > union personality_type = │
│ 00:00:10 #60 [Verbose] > | ISTJ : i * s * t * j * function_stack │
│ 00:00:10 #61 [Verbose] > | ISFJ : i * s * f * j * function_stack │
│ 00:00:10 #62 [Verbose] > | INFJ : i * n * f * j * function_stack │
│ 00:00:10 #63 [Verbose] > | INTJ : i * n * t * j * function_stack │
│ 00:00:10 #64 [Verbose] > | ISTP : i * s * t * p * function_stack │
│ 00:00:10 #65 [Verbose] > | ISFP : i * s * f * p * function_stack │
│ 00:00:10 #66 [Verbose] > | INFP : i * n * f * p * function_stack │
│ 00:00:10 #67 [Verbose] > | INTP : i * n * t * p * function_stack │
│ 00:00:10 #68 [Verbose] > | ESTP : e * s * t * p * function_stack │
│ 00:00:10 #69 [Verbose] > | ESFP : e * s * f * p * function_stack │
│ 00:00:10 #70 [Verbose] > | ENFP : e * n * f * p * function_stack │
│ 00:00:10 #71 [Verbose] > | ENTP : e * n * t * p * function_stack │
│ 00:00:10 #72 [Verbose] > | ESTJ : e * s * t * j * function_stack │
│ 00:00:10 #73 [Verbose] > | ESFJ : e * s * f * j * function_stack │
│ 00:00:10 #74 [Verbose] > | ENFJ : e * n * f * j * function_stack │
│ 00:00:10 #75 [Verbose] > | ENTJ : e * n * t * j * function_stack │
│ 00:00:10 #76 [Verbose] > │
│ 00:00:10 #77 [Verbose] > │
│ 00:00:10 #78 [Verbose] > inl main () = │
│ 00:00:10 #79 [Verbose] > inl istj_stack = FS ((Si (s, i)), Ne (n, e), │
│ (Te (t, e)), (Fi (f, i))) │
│ 00:00:10 #80 [Verbose] > inl istj_personality = ISTJ (i, s, t, j, │
│ istj_stack) │
│ 00:00:10 #81 [Verbose] > // inl isfj_stack = FS ((Si (s, i)), Ne (n, e), │
│ (Fe (f, e)), (Ti (t, i))) │
│ 00:00:10 #82 [Verbose] > // inl isfj_personality = ISFJ (i, s, f, j, │
│ isfj_stack) │
│ 00:00:10 #83 [Verbose] > │
│ 00:00:10 #84 [Verbose] > ;[[ │
│ 00:00:10 #85 [Verbose] > istj_personality │
│ 00:00:10 #86 [Verbose] > ]] │
│ 00:00:10 #87 [Verbose] > |> fun x => $'$"%A{!x}"' : string │
│ 00:00:10 #88 [Verbose] > |> console.write_line │
│ 00:00:10 #89 [Verbose] > │
│ 00:00:10 #90 [Verbose] > inl main () = │
│ 00:00:10 #91 [Verbose] > $"!main ()" : () │
│ 00:00:10 #92 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1319-0030-3029-32dac │
│ 623695b\main.spi │
│ 00:00:12 #93 [Verbose] > │
│ 00:00:12 #94 [Verbose] > ╭─[ 1.75s - stdout │
│ ]───────────────────────────────────────────────────────────╮ │
│ 00:00:12 #95 [Verbose] > │ type [<Struct>] US0 = │
│ │ │
│ 00:00:12 #96 [Verbose] > │ | US0_0 │
│ │ │
│ 00:00:12 #97 [Verbose] > │ | US0_1 │
│ │ │
│ 00:00:12 #98 [Verbose] > │ and [<Struct>] US1 = │
│ │ │
│ 00:00:12 #99 [Verbose] > │ | US1_0 │
│ │ │
│ 00:00:12 #100 [Verbose] > │ | US1_1 │
│ │ │
│ 00:00:12 #101 [Verbose] > │ and [<Struct>] US2 = │
│ │ │
│ 00:00:12 #102 [Verbose] > │ | US2_0 │
│ │ │
│ 00:00:12 #103 [Verbose] > │ | US2_1 │
│ │ │
│ 00:00:12 #104 [Verbose] > │ and [<Struct>] US3 = │
│ │ │
│ 00:00:12 #105 [Verbose] > │ | US3_0 │
│ │ │
│ 00:00:12 #106 [Verbose] > │ | US3_1 │
│ │ │
│ 00:00:12 #107 [Verbose] > │ and [<Struct>] US4 = │
│ │ │
│ 00:00:12 #108 [Verbose] > │ | US4_0 of f0_0 : US0 * f0_1 : US1 * f0_2 : │
│ US2 * f0_3 : US3 │ │
│ 00:00:12 #109 [Verbose] > │ and [<Struct>] US5 = │
│ │ │
│ 00:00:12 #110 [Verbose] > │ | US5_0 of f0_0 : US4 │
│ │ │
│ 00:00:12 #111 [Verbose] > │ | US5_1 of f1_0 : US4 │
│ │ │
│ 00:00:12 #112 [Verbose] > │ | US5_2 of f2_0 : US4 │
│ │ │
│ 00:00:12 #113 [Verbose] > │ | US5_3 of f3_0 : US4 │
│ │ │
│ 00:00:12 #114 [Verbose] > │ | US5_4 of f4_0 : US4 │
│ │ │
│ 00:00:12 #115 [Verbose] > │ | US5_5 of f5_0 : US4 │
│ │ │
│ 00:00:12 #116 [Verbose] > │ | US5_6 of f6_0 : US4 │
│ │ │
│ 00:00:12 #117 [Verbose] > │ | US5_7 of f7_0 : US4 │
│ │ │
│ 00:00:12 #118 [Verbose] > │ | US5_8 of f8_0 : US4 │
│ │ │
│ 00:00:12 #119 [Verbose] > │ | US5_9 of f9_0 : US4 │
│ │ │
│ 00:00:12 #120 [Verbose] > │ | US5_10 of f10_0 : US4 │
│ │ │
│ 00:00:12 #121 [Verbose] > │ | US5_11 of f11_0 : US4 │
│ │ │
│ 00:00:12 #122 [Verbose] > │ | US5_12 of f12_0 : US4 │
│ │ │
│ 00:00:12 #123 [Verbose] > │ | US5_13 of f13_0 : US4 │
│ │ │
│ 00:00:12 #124 [Verbose] > │ | US5_14 of f14_0 : US4 │
│ │ │
│ 00:00:12 #125 [Verbose] > │ | US5_15 of f15_0 : US4 │
│ │ │
│ 00:00:12 #126 [Verbose] > │ let rec closure0 () () : unit = │
│ │ │
│ 00:00:12 #127 [Verbose] > │ let v0 : US0 = US0_0 │
│ │ │
│ 00:00:12 #128 [Verbose] > │ let v1 : US1 = US1_1 │
│ │ │
│ 00:00:12 #129 [Verbose] > │ let v2 : US2 = US2_1 │
│ │ │
│ 00:00:12 #130 [Verbose] > │ let v3 : US3 = US3_0 │
│ │ │
│ 00:00:12 #131 [Verbose] > │ let v4 : US4 = US4_0(v0, v1, v2, v3) │
│ │ │
│ 00:00:12 #132 [Verbose] > │ let v5 : US5 = US5_0(v4) │
│ │ │
│ 00:00:12 #133 [Verbose] > │ let v6 : (US5 []) = [|v5|] │
│ │ │
│ 00:00:12 #134 [Verbose] > │ let v7 : string = $"%A{v6}" │
│ │ │
│ 00:00:12 #135 [Verbose] > │ System.Console.WriteLine v7 │
│ │ │
│ 00:00:12 #136 [Verbose] > │ () │
│ │ │
│ 00:00:12 #137 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
│ │ │
│ 00:00:12 #138 [Verbose] > │ v0 () │
│ │ │
│ 00:00:12 #139 [Verbose] > │ () │
│ │ │
│ 00:00:12 #140 [Verbose] > │ │
│ │
│ │ │
│ 00:00:12 #141 [Verbose] > │ [|US5_0 (US4_0 (US0_0, US1_1, US2_1, US3_0))|] │
│ │ │
│ 00:00:12 #142 [Verbose] > │ │
│ │
│ │ │
│ 00:00:12 #143 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:12 #144 [Verbose] > │
│ 00:00:12 #145 [Verbose] > ── fsharp │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:12 #146 [Verbose] > type PhonologicalFeature = │
│ 00:00:12 #147 [Verbose] > | VowelFeature of │
│ 00:00:12 #148 [Verbose] > height: Height │
│ 00:00:12 #149 [Verbose] > * backness: Backness │
│ 00:00:12 #150 [Verbose] > * roundedness: Roundedness │
│ 00:00:12 #151 [Verbose] > * tone: Option<Tone> │
│ 00:00:12 #152 [Verbose] > * stress: Option<Stress> │
│ 00:00:12 #153 [Verbose] > * length: Option<Length> │
│ 00:00:12 #154 [Verbose] > | ConsonantFeature of │
│ 00:00:12 #155 [Verbose] > place: PlaceOfArticulation │
│ 00:00:12 #156 [Verbose] > * manner: MannerOfArticulation │
│ 00:00:12 #157 [Verbose] > * voicing: Voicing │
│ 00:00:12 #158 [Verbose] > * length: Option<Length> │
│ 00:00:12 #159 [Verbose] > | VowelHarmonyFeature │
│ 00:00:12 #160 [Verbose] > | PitchAccentFeature │
│ 00:00:12 #161 [Verbose] > │
│ 00:00:12 #162 [Verbose] > and Stress = Primary | Secondary │
│ 00:00:12 #163 [Verbose] > and Length = Long | Short | HalfLong │
│ 00:00:12 #164 [Verbose] > │
│ 00:00:12 #165 [Verbose] > and Height = │
│ 00:00:12 #166 [Verbose] > | High | NearHigh | HighMid │
│ 00:00:12 #167 [Verbose] > | Mid | LowMid | NearLow │
│ 00:00:12 #168 [Verbose] > | Low │
│ 00:00:12 #169 [Verbose] > │
│ 00:00:12 #170 [Verbose] > and Backness = Front | Central | Back │
│ 00:00:12 #171 [Verbose] > │
│ 00:00:12 #172 [Verbose] > and Roundedness = Rounded | Unrounded │
│ 00:00:12 #173 [Verbose] > │
│ 00:00:12 #174 [Verbose] > and PlaceOfArticulation = │
│ 00:00:12 #175 [Verbose] > | Bilabial | Labiodental | Dental │
│ 00:00:12 #176 [Verbose] > | Alveolar | Postalveolar | Retroflex │
│ 00:00:12 #177 [Verbose] > | Palatal | Velar | Uvular │
│ 00:00:12 #178 [Verbose] > | Pharyngeal | Epiglottal | Glottal │
│ 00:00:12 #179 [Verbose] > │
│ 00:00:12 #180 [Verbose] > and MannerOfArticulation = │
│ 00:00:12 #181 [Verbose] > | Plosive | Nasal | Trill │
│ 00:00:12 #182 [Verbose] > | TapOrFlap | Fricative | LateralFricative │
│ 00:00:12 #183 [Verbose] > | Approximant | LateralApproximant │
│ 00:00:12 #184 [Verbose] > │
│ 00:00:12 #185 [Verbose] > and Voicing = Voiced | Voiceless │
│ 00:00:12 #186 [Verbose] > │
│ 00:00:12 #187 [Verbose] > and SecondaryArticulation = │
│ 00:00:12 #188 [Verbose] > | Labialization | Palatalization | │
│ Velarization │
│ 00:00:12 #189 [Verbose] > | Pharyngealization | Aspiration │
│ 00:00:12 #190 [Verbose] > │
│ 00:00:12 #191 [Verbose] > and Tone = │
│ 00:00:12 #192 [Verbose] > | LevelTone of int │
│ 00:00:12 #193 [Verbose] > | ContourTone of int list │
│ 00:00:12 #194 [Verbose] > │
│ 00:00:12 #195 [Verbose] > and MorphologicalFeature = │
│ 00:00:12 #196 [Verbose] > | RootFeature of string │
│ 00:00:12 #197 [Verbose] > | AffixFeature of AffixType * string │
│ 00:00:12 #198 [Verbose] > | IncorporationFeature of string * │
│ MorphologicalFeature │
│ 00:00:12 #199 [Verbose] > | NonConcatenativePattern of string * string │
│ 00:00:12 #200 [Verbose] > | AgglutinativeAffixFeature of │
│ AgglutinativeAffixType * string │
│ 00:00:12 #201 [Verbose] > | HonorificFeature of HonorificType * string │
│ 00:00:12 #202 [Verbose] > │
│ 00:00:12 #203 [Verbose] > and AgglutinativeAffixType = Suffix | Prefix │
│ 00:00:12 #204 [Verbose] > │
│ 00:00:12 #205 [Verbose] > and HonorificType = VerbHonorific | NounHonorific │
│ 00:00:12 #206 [Verbose] > │
│ 00:00:12 #207 [Verbose] > and AffixType = │
│ 00:00:12 #208 [Verbose] > | Prefix | Suffix | Infix │
│ 00:00:12 #209 [Verbose] > | Circumfix │
│ 00:00:12 #210 [Verbose] > │
│ 00:00:12 #211 [Verbose] > type SyntacticFeature = │
│ 00:00:12 #212 [Verbose] > | WordFeature of MorphologicalFeature list * │
│ LexicalCategory │
│ 00:00:12 #213 [Verbose] > | PhraseFeature of PhraseType * │
│ SyntacticFeature list │
│ 00:00:12 #214 [Verbose] > | GrammaticalRelation of │
│ GrammaticalRelationType * SyntacticFeature list │
│ 00:00:12 #215 [Verbose] > | SOVOrderFeature │
│ 00:00:12 #216 [Verbose] > | TopicCommentFeature │
│ 00:00:12 #217 [Verbose] > │
│ 00:00:12 #218 [Verbose] > and GrammaticalRelationType = │
│ 00:00:12 #219 [Verbose] > | Ergative | Absolutive | Nominative │
│ 00:00:12 #220 [Verbose] > | Accusative │
│ 00:00:12 #221 [Verbose] > │
│ 00:00:12 #222 [Verbose] > and LexicalCategory = │
│ 00:00:12 #223 [Verbose] > | Noun | Verb | Adjective │
│ 00:00:12 #224 [Verbose] > | Adverb | Pronoun | Preposition │
│ 00:00:12 #225 [Verbose] > | Conjunction | Determiner | Interjection │
│ 00:00:12 #226 [Verbose] > │
│ 00:00:12 #227 [Verbose] > and PhraseType = │
│ 00:00:12 #228 [Verbose] > | NP | VP | AP │
│ 00:00:12 #229 [Verbose] > | PP | CP │
│ 00:00:12 #230 [Verbose] > │
│ 00:00:12 #231 [Verbose] > and SemanticFeature = │
│ 00:00:12 #232 [Verbose] > | Meaning of string │
│ 00:00:12 #233 [Verbose] > | SemanticRole of SemanticRoleType * │
│ SemanticFeature │
│ 00:00:12 #234 [Verbose] > │
│ 00:00:12 #235 [Verbose] > and SemanticRoleType = │
│ 00:00:12 #236 [Verbose] > | Agent | Patient | Instrument │
│ 00:00:12 #237 [Verbose] > | Location | Time | Cause │
│ 00:00:12 #238 [Verbose] > │
│ 00:00:12 #239 [Verbose] > and PragmaticFeature = │
│ 00:00:12 #240 [Verbose] > | UseContext of string │
│ 00:00:12 #241 [Verbose] > | PolitenessLevel of Politeness │
│ 00:00:12 #242 [Verbose] > | SpeechAct of SpeechActType │
│ 00:00:12 #243 [Verbose] > | SpeechLevel of SpeechLevelType │
│ 00:00:12 #244 [Verbose] > │
│ 00:00:12 #245 [Verbose] > and Politeness = Formal | Informal | Neutral │
│ 00:00:12 #246 [Verbose] > │
│ 00:00:12 #247 [Verbose] > and SpeechActType = │
│ 00:00:12 #248 [Verbose] > | Assertive | Directive | Commissive │
│ 00:00:12 #249 [Verbose] > | Expressive | Declarative │
│ 00:00:12 #250 [Verbose] > │
│ 00:00:12 #251 [Verbose] > and SpeechLevelType = │
│ 00:00:12 #252 [Verbose] > | FormalHigh | FormalLow | InformalHigh │
│ 00:00:12 #253 [Verbose] > | InformalLow | Neutral │
│ 00:00:12 #254 [Verbose] > │
│ 00:00:12 #255 [Verbose] > type LinguisticFeature = │
│ 00:00:12 #256 [Verbose] > | Phonological of PhonologicalFeature │
│ 00:00:12 #257 [Verbose] > | Morphological of MorphologicalFeature │
│ 00:00:12 #258 [Verbose] > | Syntactic of SyntacticFeature │
│ 00:00:12 #259 [Verbose] > | Semantic of SemanticFeature │
│ 00:00:12 #260 [Verbose] > | Pragmatic of PragmaticFeature │
│ 00:00:12 #261 [Verbose] > │
│ 00:00:12 #262 [Verbose] > type LanguageConstruct = │
│ 00:00:12 #263 [Verbose] > | LanguageElement of LinguisticFeature │
│ 00:00:12 #264 [Verbose] > | LanguageStructure of LanguageConstruct list │
│ 00:00:12 #265 [Verbose] > | TranslationElement of TranslationFeature │
│ 00:00:12 #266 [Verbose] > │
│ 00:00:12 #267 [Verbose] > and TranslationFeature = │
│ 00:00:12 #268 [Verbose] > | LinkedPhonological of PhonologicalFeature * │
│ PhonologicalFeature │
│ 00:00:12 #269 [Verbose] > | LinkedMorphological of MorphologicalFeature │
│ * MorphologicalFeature │
│ 00:00:12 #270 [Verbose] > | LinkedSyntactic of SyntacticFeature * │
│ SyntacticFeature │
│ 00:00:12 #271 [Verbose] > | LinkedSemantic of SemanticFeature * │
│ SemanticFeature │
│ 00:00:12 #272 [Verbose] > │
│ 00:00:12 #273 [Verbose] > type Discourse = DiscourseUnit of │
│ LanguageConstruct list │
│ 00:00:12 #274 [Verbose] > │
│ 00:00:12 #275 [Verbose] > type LanguageModel = │
│ 00:00:12 #276 [Verbose] > | Model of discourse: Discourse │
│ 00:00:12 #277 [Verbose] > │
│ 00:00:12 #278 [Verbose] > ── fsharp - import │
│ ───────────────────────────────────────────────────────────── │
│ 00:00:12 #279 [Verbose] > #r │
│ 00:00:12 #280 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.A │
│ 00:00:12 #281 [Verbose] > spNetCore.Html.Abstractions.dll" │
│ 00:00:12 #282 [Verbose] > #r │
│ 00:00:12 #283 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:12 #284 [Verbose] > otNet.Interactive.dll" │
│ 00:00:12 #285 [Verbose] > #r │
│ 00:00:12 #286 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:12 #287 [Verbose] > otNet.Interactive.FSharp.dll" │
│ 00:00:12 #288 [Verbose] > #r │
│ 00:00:12 #289 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:12 #290 [Verbose] > otNet.Interactive.Formatting.dll" │
│ 00:00:12 #291 [Verbose] > open System │
│ 00:00:12 #292 [Verbose] > open System.IO │
│ 00:00:12 #293 [Verbose] > open System.Text │
│ 00:00:12 #294 [Verbose] > open Microsoft.DotNet.Interactive.Formatting │
│ 00:00:13 #295 [Verbose] > │
│ 00:00:13 #296 [Verbose] > ── fsharp - import │
│ ───────────────────────────────────────────────────────────── │
│ 00:00:13 #297 [Verbose] > #r │
│ 00:00:13 #298 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:13 #299 [Verbose] > otNet.Interactive.FSharp.dll" │
│ 00:00:13 #300 [Verbose] > open │
│ Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers │
│ 00:00:13 #301 [Verbose] > #r │
│ 00:00:13 #302 [Verbose] > │
│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │
│ ft.D │
│ 00:00:13 #303 [Verbose] > otNet.Interactive.dll" │
│ 00:00:13 #304 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel │
│ 00:00:13 #305 [Verbose] > │
│ 00:00:13 #306 [Verbose] > ── fsharp - import │
│ ───────────────────────────────────────────────────────────── │
│ 00:00:13 #307 [Verbose] > type PhonologicalFeature = │
│ 00:00:13 #308 [Verbose] > | VowelFeature of │
│ 00:00:13 #309 [Verbose] > height: Height │
│ 00:00:13 #310 [Verbose] > * backness: Backness │
│ 00:00:13 #311 [Verbose] > * roundedness: Roundedness │
│ 00:00:13 #312 [Verbose] > * tone: Option<Tone> │
│ 00:00:13 #313 [Verbose] > * stress: Option<Stress> │
│ 00:00:13 #314 [Verbose] > * length: Option<Length> │
│ 00:00:13 #315 [Verbose] > | ConsonantFeature of │
│ 00:00:13 #316 [Verbose] > place: PlaceOfArticulation │
│ 00:00:13 #317 [Verbose] > * manner: MannerOfArticulation │
│ 00:00:13 #318 [Verbose] > * voicing: Voicing │
│ 00:00:13 #319 [Verbose] > * length: Option<Length> │
│ 00:00:13 #320 [Verbose] > | VowelHarmonyFeature │
│ 00:00:13 #321 [Verbose] > | PitchAccentFeature │
│ 00:00:13 #322 [Verbose] > │
│ 00:00:13 #323 [Verbose] > and Stress = Primary | Secondary │
│ 00:00:13 #324 [Verbose] > and Length = Long | Short | HalfLong │
│ 00:00:13 #325 [Verbose] > │
│ 00:00:13 #326 [Verbose] > and Height = │
│ 00:00:13 #327 [Verbose] > | High | NearHigh | HighMid │
│ 00:00:13 #328 [Verbose] > | Mid | LowMid | NearLow │
│ 00:00:13 #329 [Verbose] > | Low │
│ 00:00:13 #330 [Verbose] > │
│ 00:00:13 #331 [Verbose] > and Backness = Front | Central | Back │
│ 00:00:13 #332 [Verbose] > │
│ 00:00:13 #333 [Verbose] > and Roundedness = Rounded | Unrounded │
│ 00:00:13 #334 [Verbose] > │
│ 00:00:13 #335 [Verbose] > and PlaceOfArticulation = │
│ 00:00:13 #336 [Verbose] > | Bilabial | Labiodental | Dental │
│ 00:00:13 #337 [Verbose] > | Alv... │
│ 00:00:14 #338 [Verbose] > │
│ 00:00:14 #339 [Verbose] > ── fsharp │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:14 #340 [Verbose] > let testEnglish = │
│ 00:00:14 #341 [Verbose] > Model( │
│ 00:00:14 #342 [Verbose] > DiscourseUnit [[ │
│ 00:00:14 #343 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Alveolar, Nasal, │
│ 00:00:14 #344 [Verbose] > Voiced, Some(HalfLong)))); │
│ 00:00:14 #345 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (High, Front, Unrounded, │
│ 00:00:14 #346 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short)))); │
│ 00:00:14 #347 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Low, Front, Unrounded, │
│ 00:00:14 #348 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │
│ 00:00:14 #349 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Velar, Plosive, │
│ 00:00:14 #350 [Verbose] > Voiceless, Some(HalfLong)))); │
│ 00:00:14 #351 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "I")); │
│ 00:00:14 #352 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "see")); │
│ 00:00:14 #353 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "a")); │
│ 00:00:14 #354 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "cat")); │
│ 00:00:14 #355 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:14 #356 [Verbose] > ([[RootFeature "I"]], Pronoun)]]))); │
│ 00:00:14 #357 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (VP, [[WordFeature │
│ 00:00:14 #358 [Verbose] > ([[RootFeature "see"]], Verb)]]))); │
│ 00:00:14 #359 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:14 #360 [Verbose] > ([[RootFeature "a"; RootFeature "cat"]], │
│ Noun)]]))); │
│ 00:00:14 #361 [Verbose] > LanguageElement (Semantic (Meaning │
│ "Perception act of a feline by │
│ 00:00:14 #362 [Verbose] > the speaker")); │
│ 00:00:14 #363 [Verbose] > LanguageElement (Pragmatic (UseContext │
│ "Statement of an action being │
│ 00:00:14 #364 [Verbose] > observed")) │
│ 00:00:14 #365 [Verbose] > ]] │
│ 00:00:14 #366 [Verbose] > ) │
│ 00:00:14 #367 [Verbose] > │
│ 00:00:14 #368 [Verbose] > let testPortuguese = │
│ 00:00:14 #369 [Verbose] > Model( │
│ 00:00:14 #370 [Verbose] > DiscourseUnit [[ │
│ 00:00:14 #371 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (High, Front, Unrounded, │
│ 00:00:14 #372 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short)))); │
│ 00:00:14 #373 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Low, Front, Unrounded, │
│ 00:00:14 #374 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │
│ 00:00:14 #375 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Mid, Back, Rounded, │
│ 00:00:14 #376 [Verbose] > Some(LevelTone 3), Some(Primary), Some(Short)))); │
│ 00:00:14 #377 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Velar, Plosive, │
│ 00:00:14 #378 [Verbose] > Voiceless, Some(HalfLong)))); │
│ 00:00:14 #379 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "Eu")); │
│ 00:00:14 #380 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "ver" |> ignore; │
│ 00:00:14 #381 [Verbose] > AffixFeature (Suffix, "o"))); │
│ 00:00:14 #382 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "um")); │
│ 00:00:14 #383 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "gato")); │
│ 00:00:14 #384 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:14 #385 [Verbose] > ([[RootFeature "Eu"]], Pronoun)]]))); │
│ 00:00:14 #386 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (VP, [[WordFeature │
│ 00:00:14 #387 [Verbose] > ([[RootFeature "vejo"]], Verb)]]))); │
│ 00:00:14 #388 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:14 #389 [Verbose] > ([[RootFeature "um"; RootFeature "gato"]], │
│ Noun)]]))); │
│ 00:00:14 #390 [Verbose] > LanguageElement (Semantic (Meaning │
│ "Ação de percepção de um felino │
│ 00:00:14 #391 [Verbose] > pelo falante")); │
│ 00:00:14 #392 [Verbose] > LanguageElement (Pragmatic (UseContext │
│ "Declaração de uma ação sendo │
│ 00:00:14 #393 [Verbose] > observada")) │
│ 00:00:14 #394 [Verbose] > ]] │
│ 00:00:14 #395 [Verbose] > ) │
│ 00:00:14 #396 [Verbose] > │
│ 00:00:14 #397 [Verbose] > let testKorean = │
│ 00:00:14 #398 [Verbose] > Model( │
│ 00:00:14 #399 [Verbose] > DiscourseUnit [[ │
│ 00:00:14 #400 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Alveolar, Nasal, │
│ 00:00:14 #401 [Verbose] > Voiced, Some(Short)))); │
│ 00:00:14 #402 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (High, Back, Rounded, │
│ 00:00:14 #403 [Verbose] > None, None, Some(Short)))); │
│ 00:00:14 #404 [Verbose] > LanguageElement (Phonological │
│ (VowelFeature (Mid, Front, Unrounded, │
│ 00:00:14 #405 [Verbose] > None, None, Some(Long)))); │
│ 00:00:14 #406 [Verbose] > LanguageElement (Phonological │
│ (ConsonantFeature (Bilabial, Plosive, │
│ 00:00:14 #407 [Verbose] > Voiceless, Some(Short)))); │
│ 00:00:14 #408 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "나")); │
│ 00:00:14 #409 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "보다")); │
│ 00:00:14 #410 [Verbose] > LanguageElement (Morphological │
│ (AffixFeature (Suffix, "아"))); │
│ 00:00:14 #411 [Verbose] > LanguageElement (Morphological │
│ (RootFeature "고양이")); │
│ 00:00:14 #412 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:14 #413 [Verbose] > ([[RootFeature "나"]], Pronoun)]]))); │
│ 00:00:14 #414 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (VP, [[WordFeature │
│ 00:00:14 #415 [Verbose] > ([[RootFeature "보다"; AffixFeature (Suffix, │
│ "아")]], Verb)]]))); │
│ 00:00:14 #416 [Verbose] > LanguageElement (Syntactic │
│ (PhraseFeature (NP, [[WordFeature │
│ 00:00:14 #417 [Verbose] > ([[RootFeature "고양이"]], Noun)]]))); │
│ 00:00:14 #418 [Verbose] > LanguageElement (Semantic (Meaning │
│ "화자에 의한 고양이의 관찰 │
│ 00:00:14 #419 [Verbose] > 행위")); │
│ 00:00:14 #420 [Verbose] > LanguageElement (Pragmatic (UseContext │
│ "관찰되고 있는 행동의 진술")) │
│ 00:00:14 #421 [Verbose] > ]] │
│ 00:00:14 #422 [Verbose] > ) │
│ 00:00:14 #423 [Verbose] > │
│ 00:00:14 #424 [Verbose] > ── markdown │
│ ──────────────────────────────────────────────────────────────────── │
│ 00:00:14 #425 [Verbose] > │
│ ╭─────────────────────────────────────────────────────────────────────────── │
│ ───╮ │
│ 00:00:14 #426 [Verbose] > │ ## main │
│ │ │
│ 00:00:14 #427 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:14 #428 [Verbose] > │
│ 00:00:14 #429 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:14 #430 [Verbose] > inl main (_args : array_base string) = │
│ 00:00:14 #431 [Verbose] > 0i32 │
│ 00:00:14 #432 [Verbose] > │
│ 00:00:14 #433 [Verbose] > inl main () = │
│ 00:00:14 #434 [Verbose] > $"let main args = !main args" : () │
│ 00:00:14 #435 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1319-0460-6040-6a3d1 │
│ b6704e6\main.spi │
│ 00:00:14 #436 [Verbose] > │
│ 00:00:14 #437 [Verbose] > ╭─[ 338.94ms - stdout │
│ ]────────────────────────────────────────────────────────╮ │
│ 00:00:14 #438 [Verbose] > │ let rec closure0 () (v0 : (string [])) : int32 = │
│ │ │
│ 00:00:14 #439 [Verbose] > │ 0 │
│ │ │
│ 00:00:14 #440 [Verbose] > │ let v0 : ((string []) -> int32) = closure0() │
│ │ │
│ 00:00:14 #441 [Verbose] > │ let main args = v0 args │
│ │ │
│ 00:00:14 #442 [Verbose] > │ () │
│ │ │
│ 00:00:14 #443 [Verbose] > │ │
│ │
│ │ │
│ 00:00:14 #444 [Verbose] > │ │
│ │
│ │ │
│ 00:00:14 #445 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:14 #446 [Verbose] > │
│ 00:00:14 #447 [Verbose] > ── spiral │
│ ────────────────────────────────────────────────────────────────────── │
│ 00:00:14 #448 [Verbose] > inl app () = │
│ 00:00:14 #449 [Verbose] > "test" |> console.write_line │
│ 00:00:14 #450 [Verbose] > 0i32 │
│ 00:00:14 #451 [Verbose] > │
│ 00:00:14 #452 [Verbose] > inl main () = │
│ 00:00:14 #453 [Verbose] > print_static "<test>" │
│ 00:00:14 #454 [Verbose] > │
│ 00:00:14 #455 [Verbose] > app │
│ 00:00:14 #456 [Verbose] > |> dyn │
│ 00:00:14 #457 [Verbose] > |> ignore │
│ 00:00:14 #458 [Verbose] > │
│ 00:00:14 #459 [Verbose] > print_static "</test>" │
│ 00:00:15 #460 [Verbose] > Building │
│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1319-0494-9454-9b792 │
│ 444b5eb\main.spi │
│ 00:00:15 #461 [Verbose] > <test> │
│ 00:00:15 #462 [Verbose] > </test> │
│ 00:00:15 #463 [Verbose] > │
│ 00:00:15 #464 [Verbose] > ╭─[ 325.76ms - stdout │
│ ]────────────────────────────────────────────────────────╮ │
│ 00:00:15 #465 [Verbose] > │ let rec closure0 () () : int32 = │
│ │ │
│ 00:00:15 #466 [Verbose] > │ let v0 : string = "test" │
│ │ │
│ 00:00:15 #467 [Verbose] > │ System.Console.WriteLine v0 │
│ │ │
│ 00:00:15 #468 [Verbose] > │ 0 │
│ │ │
│ 00:00:15 #469 [Verbose] > │ let v0 : (unit -> int32) = closure0() │
│ │ │
│ 00:00:15 #470 [Verbose] > │ () │
│ │ │
│ 00:00:15 #471 [Verbose] > │ │
│ │
│ │ │
│ 00:00:15 #472 [Verbose] > │ │
│ │
│ │ │
│ 00:00:15 #473 [Verbose] > │
│ ╰─────────────────────────────────────────────────────────────────────────── │
│ ───╯ │
│ 00:00:17 #474 [Verbose] > [NbConvertApp] Converting notebook test.dib.ipynb │
│ to html │
│ 00:00:17 #475 [Verbose] > │
│ C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__ │
│ .py:93: MissingIDFieldWarning: Code cell is missing an id field, this will │
│ become a hard error in future nbformat versions. You may want to use │
│ `normalize()` on your notebooks before validations (available since nbformat │
│ 5.1.4). Previous versions of nbformat are fixing this issue transparently, │
│ and will stop doing so in the future. │
│ 00:00:17 #476 [Verbose] > validate(nb) │
│ 00:00:17 #477 [Verbose] > │
│ C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters │
│ \highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on │
│ Python 3 │
│ 00:00:17 #478 [Verbose] > return _pygments_highlight( │
│ 00:00:18 #479 [Verbose] > [NbConvertApp] Writing 321504 bytes to │
│ test.dib.html │
│ 00:00:18 #480 [Debug] executeAsync / exitCode: 0 / output.Length: 19236 │
│ 00:00:18 #481 [Debug] main / executeCommand / exitCode: 0 │
│ 00:00:20 #482 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/parser/dist/DibParser$(GetExecutableSuffix) test.dib spi }
| Invoke-Block
╭─[ 556.97ms - stdout ]────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] writeDibCode / output: Spi / path: test.dib │
│ 00:00:00 #2 [Debug] parseDibCode / output: Spi / file: test.dib │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix) --build-file
test.spi test.fsx --timeout 10000 } | Invoke-Block
╭─[ 6.78s - stdout ]───────────────────────────────────────────────────────────╮
│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:00 #2 [Debug] executeAsync / options: { Command = │
│ "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral │
│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port │
│ 13805 --default-int i32 --default-float f64" │
│ WorkingDirectory = None │
│ CancellationToken = Some System.Threading.CancellationToken │
│ OnLine = Some <fun:main@438-47> } │
│ 00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral\temp\test │
│ 00:00:00 #4 [Verbose] > dll_path: │
│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language │
│ 2\artifacts\bin\The Spiral Language 2\release │
│ 00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: │
│ http://localhost:13805 │
│ 00:00:00 #6 [Debug] runWithTimeoutChildAsync / timeout: 500 │
│ 00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0 │
│ 00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / │
│ result.Length: │
│ 00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: │
│ 13805 / retry: 0 │
│ 00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805 │
│ 00:00:01 #11 [Debug] runWithTimeoutChildAsync / timeout: 60 │
│ 00:00:01 #12 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:01 #13 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:01 #14 [Debug] sendJson / port: 13805 / json: │
│ {"FileOpen":{"spiText":"// // # test (Polyglot)\n\nnominal i = ()\nnominal e │
│ = ()\nnominal s = ()\nnominal n = ()\nnominal t = ()\nnominal f = │
│ ()\nnominal j = ()\nnominal p = ()\n\nunion sensing =\n | Si : s * i\n │
│ | Se : s * e\n\nunion intuition =\n | Ni : n * i\n | Ne : n * │
│ e\n\nunion thinking =\n | Ti : t * i\n | Te : t * e\n\nunion feeling │
│ =\n | Fi : f * i\n | Fe : f * e\n\nunion function_stack =\n | FS : │
│ sensing * intuition * thinking * feeling\n\nunion personality_type =\n | │
│ ISTJ : i * s * t * j * function_stack\n | ISFJ : i * s * f * j * │
│ function_stack\n | INFJ : i * n * f * j * function_stack\n | INTJ : i │
│ * n * t * j * function_stack\n | ISTP : i * s * t * p * function_stack\n │
│ | ISFP : i * s * f * p * function_stack\n | INFP : i * n * f * p * │
│ function_stack\n | INTP : i * n * t * p * function_stack\n | ESTP : e │
│ * s * t * p * function_stack\n | ESFP : e * s * f * p * function_stack\n │
│ | ENFP : e * n * f * p * function_stack\n | ENTP : e * n * t * p * │
│ function_stack\n | ESTJ : e * s * t * j * function_stack\n | ESFJ : e │
│ * s * f * j * function_stack\n | ENFJ : e * n * f * j * function_stack\n │
│ | ENTJ : e * n * t * j * function_stack\n\n\ninl main () =\n inl │
│ istj_stack = FS ((Si (s, i)), Ne (n, e), (Te (t, e)), (Fi (f, i)))\n inl │
│ istj_personality = ISTJ (i, s, t, j, istj_stack)\n // inl isfj_stack = FS │
│ ((Si (s, i)), Ne (n, e), (Fe (f, e)), (Ti (t, i)))\n // inl │
│ isfj_personality = ISFJ (i, s, f, j, isfj_stack)\n\n ;[\n │
│ istj_personality\n ]\n |\u003E fun x =\u003E │
│ $\u0027$\u0022%A{!x}\u0022\u0027 : string\n |\u003E │
│ console.write_line\n\ninl main () =\n $\u0022!main ()\u0022 : ()\n\n// // │
│ ## main\n\ninl main (_args : array_base string) =\n 0i32\n\ninl main () │
│ =\n $\u0022let main args = !main args\u0022 : ()\n\ninl app () =\n │
│ \u0022test\u0022 |\u003E console.write_line\n 0i32\n\ninl main () =\n │
│ print_static \u0022\u003Ctest\u003E\u0022\n\n app\n |\u003E dyn\n │
│ |\u003E ignore\n\n print_static │
│ \u0022\u003C/test\u003E\u0022\n","uri":"file:///c:/home/git/polyglot/apps/sp │
│ iral/temp/test/test.spi"}} / result.Length: │
│ 00:00:01 #15 [Debug] sendJson / port: 13805 / json: │
│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/sp │
│ iral/temp/test/test.spi"}} / result.Length: │
│ 00:00:02 #16 [Verbose] > Building │
│ c:\home\git\polyglot\apps\spiral\temp\test\test.spi │
│ 00:00:02 #17 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:03 #18 [Debug] buildFile / takeWhileInclusive / fsxContent: / errors: │
│ [] / typeErrorCount: 0 │
│ 00:00:04 #19 [Verbose] > <test> │
│ 00:00:04 #20 [Verbose] > </test> │
│ 00:00:04 #21 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec │
│ closure0 () () : int32 = │
│ let v0 : string = "test" │
│ System.Console.WriteLine v0 │
│ 0 │
│ let v0 : (unit -> int32) = closure0() │
│ () │
│ / errors: [] / typeErrorCount: 0 │
│ 00:00:04 #22 [Debug] watchWithFilter / Disposing watch stream / filter: │
│ FileName, LastWrite │
│ 00:00:06 #23 [Debug] runWithTimeoutChildAsync / timeout: 2000 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
dotnet fable --optimize --lang rs --extension .rs
╭─[ 2.98s - stdout ]───────────────────────────────────────────────────────────╮
│ Fable 4.14.0: F# to Rust compiler (status: alpha) │
│ │
│ Thanks to the contributor! @Booksbaum │
│ Stand with Ukraine! https://standwithukraine.com.ua/ │
│ │
│ Parsing test.fsproj... │
│ Retrieving project options from cache, in case of issues run `dotnet fable │
│ clean` or try `--noCache` option. │
│ Project and references (1 source files) parsed in 180ms │
│ │
│ Started Fable compilation... │
│ │
│ Fable compilation finished in 1348ms │
│ │
│ .\test.fsx(6,0): (6,2) warning FABLE: For Rust, support for F# static and │
│ module do bindings is disabled by default. It can be enabled with the │
│ 'static_do_bindings' feature. Use at your own risk! │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
(Get-Content test.rs) `
-replace [[regex]]::Escape("),);"), "));" `
| Set-Content test.rs
── pwsh ────────────────────────────────────────────────────────────────────────
cargo fmt --
── pwsh ────────────────────────────────────────────────────────────────────────
cargo build --release
╭─[ 9.60s - stdout ]───────────────────────────────────────────────────────────╮
│ Compiling spiral_temp_test v0.0.1 │
│ (C:\home\git\polyglot\apps\spiral\temp\test) │
│ warning: the item `any` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:27 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `any` is already imported here │
│ | │
│ = note: `#[warn(unused_imports)]` on by default │
│ │
│ warning: the item `Arbitrary` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:32 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^^^^^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `Arbitrary` is already imported │
│ here │
│ │
│ warning: unused import: `info` │
│ --> apps\spiral\temp\test\./main.rs:190:15 │
│ | │
│ 190 | use tracing::{info, Level}; │
│ | ^^^^ │
│ │
│ warning: associated items `new`, `add_item`, and `remove_item` are │
│ never used │
│ --> apps\spiral\temp\test\./main.rs:46:8 │
│ | │
│ 45 | impl Cart { │
│ | --------- associated items in this implementation │
│ 46 | fn new() -> Cart { │
│ | ^^^ │
│ ... │
│ 50 | fn add_item(&mut self, item: Item) { │
│ | ^^^^^^^^ │
│ ... │
│ 56 | fn remove_item(&mut self, item: &Item) { │
│ | ^^^^^^^^^^^ │
│ | │
│ = note: `#[warn(dead_code)]` on by default │
│ │
│ warning: function `parse_comment` is never used │
│ --> apps\spiral\temp\test\./main.rs:124:4 │
│ | │
│ 124 | fn parse_comment(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_string` is never used │
│ --> apps\spiral\temp\test\./main.rs:130:4 │
│ | │
│ 130 | fn parse_string(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^ │
│ │
│ warning: function `parse_identifier` is never used │
│ --> apps\spiral\temp\test\./main.rs:145:4 │
│ | │
│ 145 | fn parse_identifier(input: &str) -> IResult<&str, SpiralToken> {[ │
│ 0m │
│ | ^^^^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_integer` is never used │
│ --> apps\spiral\temp\test\./main.rs:157:4 │
│ | │
│ 157 | fn parse_integer(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_operator` is never used │
│ --> apps\spiral\temp\test\./main.rs:165:4 │
│ | │
│ 165 | fn parse_operator(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^^^^ │
│ │
│ warning: function `parse_token` is never used │
│ --> apps\spiral\temp\test\./main.rs:170:4 │
│ | │
│ 170 | fn parse_token(input: &str) -> IResult<&str, SpiralToken> { │
│ | ^^^^^^^^^^^ │
│ │
│ warning: function `format_token` is never used │
│ --> apps\spiral\temp\test\./main.rs:180:4 │
│ | │
│ 180 | fn format_token(token: &SpiralToken) -> String { │
│ | ^^^^^^^^^^^^ │
│ │
│ warning: function `parse_expression` is never used │
│ --> apps\spiral\temp\test\./main.rs:213:4 │
│ | │
│ 213 | fn parse_expression(input: &str) -> IResult<&str, SpiralToken> {[ │
│ 0m │
│ | ^^^^^^^^^^^^^^^^ │
│ │
│ warning: `spiral_temp_test` (bin "spiral_temp_test") generated 12 │
│ warnings (run `cargo fix --bin "spiral_temp_test"` to apply 1 suggestion) │
│ Finished `release` profile [optimized] target(s) in 9.40s │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
$env:RUST_LOG="info"
{ cargo test --release } | Invoke-Block
╭─[ 26.62s - stdout ]──────────────────────────────────────────────────────────╮
│ Compiling spiral_temp_test v0.0.1 │
│ (C:\home\git\polyglot\apps\spiral\temp\test) │
│ warning: the item `any` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:27 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `any` is already imported here │
│ | │
│ = note: `#[warn(unused_imports)]` on by default │
│ │
│ warning: the item `Arbitrary` is imported redundantly │
│ --> apps\spiral\temp\test\./main.rs:11:32 │
│ | │
│ 11 | use proptest::arbitrary::{any, Arbitrary}; │
│ | ^^^^^^^^^ │
│ 12 | use proptest::prelude::*; │
│ | -------------------- the item `Arbitrary` is already imported │
│ here │
│ │
│ warning: `spiral_temp_test` (bin "spiral_temp_test" test) generated 2 │
│ warnings │
│ Finished `release` profile [optimized] target(s) in 26.04s │
│ Running unittests main.rs │
│ (C:\home\git\polyglot\target\release\deps\spiral_temp_test-158aaeb333edb33d. │
│ exe) │
│ │
│ running 3 tests │
│ test test_parse_number ... ok │
│ 2024-04-04T17:19:58.267385Z INFO spiral_temp_test: │
│ input=Comment("?;nE") │
│ 2024-04-04T17:19:58.267534Z INFO spiral_temp_test: │
│ input=Comment("ED") │
│ 2024-04-04T17:19:58.267693Z INFO spiral_temp_test: │
│ input=Comment("\"N&%!J4Ti*{fi-S?M!;3$Yl&`.yu2 ]\\") │
│ 2024-04-04T17:19:58.267820Z INFO spiral_temp_test: │
│ input=Comment("a1*[:z<pw? mU/") │
│ 2024-04-04T17:19:58.267939Z INFO spiral_temp_test: │
│ input=Comment(":.KYV&:6") │
│ 2024-04-04T17:19:58.268028Z INFO spiral_temp_test: │
│ input=Integer(-4713017204576665313) │
│ 2024-04-04T17:19:58.268151Z INFO spiral_temp_test: │
│ input=StringLiteral("$.4:{,|j%4") │
│ 2024-04-04T17:19:58.268237Z INFO spiral_temp_test: │
│ input=StringLiteral(".>R9") │
│ 2024-04-04T17:19:58.268292Z INFO spiral_temp_test: │
│ input=Identifier("VvV3BCmFv") │
│ 2024-04-04T17:19:58.268373Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.268462Z INFO spiral_temp_test: │
│ input=Comment("\\p)7A{7<F}mCd`X|u*Cx (*=y.&") │
│ 2024-04-04T17:19:58.268531Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-04-04T17:19:58.268642Z INFO spiral_temp_test: │
│ input=Identifier("y4rqz4Fl0YmF6PAdNU0bCJVa5UFBI42V") │
│ 2024-04-04T17:19:58.268744Z INFO spiral_temp_test: │
│ input=StringLiteral("3D$W`o_h?f)[$oH") │
│ 2024-04-04T17:19:58.268800Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.268876Z INFO spiral_temp_test: │
│ input=Identifier("LnUV46W9e6xNuWp") │
│ 2024-04-04T17:19:58.268933Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-04-04T17:19:58.268974Z INFO spiral_temp_test: │
│ input=Comment("n:*w%y$(s-'$5.<4") │
│ 2024-04-04T17:19:58.269036Z INFO spiral_temp_test: │
│ input=Comment("=\\M&xm>J'V):7$\\") │
│ 2024-04-04T17:19:58.269118Z INFO spiral_temp_test: │
│ input=Comment("\\:{/g#/U1Tf)2\\iij[;b<S49t=3/Ki/") │
│ 2024-04-04T17:19:58.269170Z INFO spiral_temp_test: │
│ input=StringLiteral("") │
│ 2024-04-04T17:19:58.269249Z INFO spiral_temp_test: │
│ input=StringLiteral("f?Mv`?KEYZm9'~2z>K&7nr*2?.{*") │
│ 2024-04-04T17:19:58.269309Z INFO spiral_temp_test: │
│ input=Integer(144353112994366104) │
│ 2024-04-04T17:19:58.269355Z INFO spiral_temp_test: │
│ input=Integer(-1836684322403332084) │
│ 2024-04-04T17:19:58.269404Z INFO spiral_temp_test: │
│ input=StringLiteral("") │
│ 2024-04-04T17:19:58.269457Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-04-04T17:19:58.269510Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-04-04T17:19:58.269623Z INFO spiral_temp_test: │
│ input=Identifier("cL9wwOHlDBe2QipO7") │
│ 2024-04-04T17:19:58.269676Z INFO spiral_temp_test: │
│ input=Comment("\\1{") │
│ 2024-04-04T17:19:58.269736Z INFO spiral_temp_test: │
│ input=Integer(-4269134435857107369) │
│ 2024-04-04T17:19:58.269846Z INFO spiral_temp_test: │
│ input=StringLiteral("mPCJ.U({|'C7/w#]qD%>$u<|n") │
│ 2024-04-04T17:19:58.270011Z INFO spiral_temp_test: │
│ input=StringLiteral("{|:,@Y$C0P&Av{$NC:iL/") │
│ 2024-04-04T17:19:58.270073Z INFO spiral_temp_test: │
│ input=StringLiteral("D'h:V/xGLH|Qct*5$==*o$*E{6~$") │
│ 2024-04-04T17:19:58.270126Z INFO spiral_temp_test: │
│ input=Comment("*f]/t\\%'lGi~1))") │
│ 2024-04-04T17:19:58.270157Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-04-04T17:19:58.270199Z INFO spiral_temp_test: │
│ input=Identifier("m0u3mESxp1DE4jcpj6vSZbQ7joDlJ1IL") │
│ 2024-04-04T17:19:58.270234Z INFO spiral_temp_test: │
│ input=StringLiteral(":171") │
│ 2024-04-04T17:19:58.270269Z INFO spiral_temp_test: │
│ input=StringLiteral("k^`+)*H4sE{/!{.B{^3`") │
│ 2024-04-04T17:19:58.270301Z INFO spiral_temp_test: │
│ input=Identifier("Yl") │
│ 2024-04-04T17:19:58.270333Z INFO spiral_temp_test: │
│ input=StringLiteral("=*kP7W/bcm&'x") │
│ 2024-04-04T17:19:58.270368Z INFO spiral_temp_test: │
│ input=StringLiteral("x!K[*KG.``") │
│ 2024-04-04T17:19:58.270405Z INFO spiral_temp_test: │
│ input=Identifier("bW56QeygJS2LR8e") │
│ 2024-04-04T17:19:58.270440Z INFO spiral_temp_test: │
│ input=Identifier("mGiM0uRzq780583AMYvx") │
│ 2024-04-04T17:19:58.270467Z INFO spiral_temp_test: │
│ input=Integer(8317233032256224301) │
│ 2024-04-04T17:19:58.270493Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.270517Z INFO spiral_temp_test: │
│ input=Integer(-6990682948903733351) │
│ 2024-04-04T17:19:58.270554Z INFO spiral_temp_test: │
│ input=Comment("J:5/~`*oZ") │
│ 2024-04-04T17:19:58.270599Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-04-04T17:19:58.270621Z INFO spiral_temp_test: │
│ input=Integer(5778035148811269019) │
│ 2024-04-04T17:19:58.270645Z INFO spiral_temp_test: │
│ input=Integer(4085351263825482195) │
│ 2024-04-04T17:19:58.270668Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-04-04T17:19:58.270704Z INFO spiral_temp_test: │
│ input=StringLiteral("E{9mCA(X*//!<%?`b{&") │
│ 2024-04-04T17:19:58.270741Z INFO spiral_temp_test: │
│ input=Comment("\"4I]r^@&\\G*}a=3l\\") │
│ 2024-04-04T17:19:58.270770Z INFO spiral_temp_test: │
│ input=Integer(-5354834640614876643) │
│ 2024-04-04T17:19:58.270800Z INFO spiral_temp_test: │
│ input=Identifier("Hm790H6Ru959r") │
│ 2024-04-04T17:19:58.270848Z INFO spiral_temp_test: │
│ input=StringLiteral("'^|`!2#'A/}@Odth2:*{") │
│ 2024-04-04T17:19:58.270879Z INFO spiral_temp_test: │
│ input=Comment("") │
│ 2024-04-04T17:19:58.270923Z INFO spiral_temp_test: │
│ input=StringLiteral("/NV%?5iqE.u4%&?fb7R(c#.") │
│ 2024-04-04T17:19:58.270953Z INFO spiral_temp_test: │
│ input=Integer(-8493106872949198990) │
│ 2024-04-04T17:19:58.270979Z INFO spiral_temp_test: │
│ input=Identifier("ISr3hENM") │
│ 2024-04-04T17:19:58.271010Z INFO spiral_temp_test: │
│ input=Identifier("Ryo9DL6PKGk9348H") │
│ 2024-04-04T17:19:58.271041Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.271065Z INFO spiral_temp_test: │
│ input=Identifier("e35") │
│ 2024-04-04T17:19:58.271096Z INFO spiral_temp_test: │
│ input=Identifier("BXevIK311tmcI") │
│ 2024-04-04T17:19:58.271132Z INFO spiral_temp_test: │
│ input=Integer(4853663868325849369) │
│ 2024-04-04T17:19:58.271153Z INFO spiral_temp_test: │
│ input=Integer(4350738043832246831) │
│ 2024-04-04T17:19:58.271177Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-04-04T17:19:58.271207Z INFO spiral_temp_test: │
│ input=Identifier("KIfF3p0diWd4tvo6") │
│ 2024-04-04T17:19:58.271240Z INFO spiral_temp_test: │
│ input=StringLiteral("&`/2y;O=<'q") │
│ 2024-04-04T17:19:58.271284Z INFO spiral_temp_test: │
│ input=StringLiteral("c)dd==*3aru?89'%{1 VysG<Ajfr./") │
│ 2024-04-04T17:19:58.271325Z INFO spiral_temp_test: │
│ input=Identifier("b16z5gEEYc1evt2dEf") │
│ 2024-04-04T17:19:58.271347Z INFO spiral_temp_test: │
│ input=Integer(-1202093178682963215) │
│ 2024-04-04T17:19:58.271376Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-04-04T17:19:58.271404Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-04-04T17:19:58.271427Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.271459Z INFO spiral_temp_test: │
│ input=Identifier("dku9eDJw26vC6UN") │
│ 2024-04-04T17:19:58.271489Z INFO spiral_temp_test: │
│ input=Identifier("lUfUkhOA7S7") │
│ 2024-04-04T17:19:58.271512Z INFO spiral_temp_test: │
│ input=Integer(-318790582418021167) │
│ 2024-04-04T17:19:58.271538Z INFO spiral_temp_test: │
│ input=Comment("9iu`{U%") │
│ 2024-04-04T17:19:58.271569Z INFO spiral_temp_test: │
│ input=Identifier("M2h1Xyw34Lc") │
│ 2024-04-04T17:19:58.271600Z INFO spiral_temp_test: │
│ input=Identifier("A") │
│ 2024-04-04T17:19:58.271675Z INFO spiral_temp_test: │
│ input=Comment("<{Y?z={Y*XZD>?pv_]$`[j}") │
│ 2024-04-04T17:19:58.271761Z INFO spiral_temp_test: │
│ input=Comment("uBi\"\\GjCNk{;#<\\/%%'0*k]<PM68,(") │
│ 2024-04-04T17:19:58.271847Z INFO spiral_temp_test: │
│ input=Comment("RD5m\"V?%?lHw@.?8:3{Xy%3%{/b!a|") │
│ 2024-04-04T17:19:58.271986Z INFO spiral_temp_test: │
│ input=Integer(-8316999611564427708) │
│ 2024-04-04T17:19:58.272045Z INFO spiral_temp_test: │
│ input=Comment(".b'X\\") │
│ 2024-04-04T17:19:58.272078Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.272111Z INFO spiral_temp_test: │
│ input=StringLiteral("G'`kG=q{S=") │
│ 2024-04-04T17:19:58.272136Z INFO spiral_temp_test: │
│ input=Integer(7880419271674581356) │
│ 2024-04-04T17:19:58.272172Z INFO spiral_temp_test: │
│ input=Identifier("KSU3x89q4U4pj81MzAwCkecH") │
│ 2024-04-04T17:19:58.272222Z INFO spiral_temp_test: │
│ input=StringLiteral("=<kG;?gw`P0bvKx':}U.eo/Q?%-dhu{") │
│ 2024-04-04T17:19:58.272294Z INFO spiral_temp_test: │
│ input=Identifier("CqK0ljEx742V01bIAdNVxMb6C1sJg0ypi") │
│ 2024-04-04T17:19:58.272387Z INFO spiral_temp_test: │
│ input=Comment("^%^&F/< ?iwuRg6\\]jTl9=&mj1{/lRS") │
│ 2024-04-04T17:19:58.272455Z INFO spiral_temp_test: │
│ input=Comment("7$=?%l'E$Zv\\|<QvY:\"cI&|C\"t(<") │
│ 2024-04-04T17:19:58.272493Z INFO spiral_temp_test: │
│ input=Identifier("buTJXdc") │
│ 2024-04-04T17:19:58.272531Z INFO spiral_temp_test: │
│ input=Identifier("G6iXV7xWZC2mybw0klXr1hn") │
│ 2024-04-04T17:19:58.272572Z INFO spiral_temp_test: │
│ input=Comment("&'P,$*$VNM{K]\"u;{D?14(") │
│ 2024-04-04T17:19:58.272596Z INFO spiral_temp_test: │
│ input=Integer(8213759033869778408) │
│ 2024-04-04T17:19:58.272620Z INFO spiral_temp_test: │
│ input=Integer(79051734650364599) │
│ 2024-04-04T17:19:58.272659Z INFO spiral_temp_test: │
│ input=Identifier("QE1KNbC1GrEHBXyCSBb7j9uN1") │
│ 2024-04-04T17:19:58.272695Z INFO spiral_temp_test: │
│ input=Integer(-1308926090789700353) │
│ 2024-04-04T17:19:58.272736Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.272765Z INFO spiral_temp_test: │
│ input=Identifier("L3d0Ksy") │
│ 2024-04-04T17:19:58.272790Z INFO spiral_temp_test: │
│ input=Integer(8010486734515566227) │
│ 2024-04-04T17:19:58.272821Z INFO spiral_temp_test: │
│ input=StringLiteral("Q{9)'^N{&H4") │
│ 2024-04-04T17:19:58.272856Z INFO spiral_temp_test: │
│ input=Identifier("kLd2RhT0Sd47qr6f0") │
│ 2024-04-04T17:19:58.272904Z INFO spiral_temp_test: │
│ input=Comment("$G%?#{s|\\-6`ZSIM9(`0$*;bnnC2(?-") │
│ 2024-04-04T17:19:58.272938Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.272985Z INFO spiral_temp_test: │
│ input=Identifier("G9") │
│ 2024-04-04T17:19:58.273031Z INFO spiral_temp_test: │
│ input=Integer(1337682730836554522) │
│ 2024-04-04T17:19:58.273063Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.273109Z INFO spiral_temp_test: │
│ input=Comment("<=\"V?5`t3{@EH:W%{") │
│ 2024-04-04T17:19:58.273144Z INFO spiral_temp_test: │
│ input=StringLiteral("8e[") │
│ 2024-04-04T17:19:58.273173Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.273198Z INFO spiral_temp_test: │
│ input=Integer(3689505208336194087) │
│ 2024-04-04T17:19:58.273222Z INFO spiral_temp_test: │
│ input=Identifier("F2DiCJ") │
│ 2024-04-04T17:19:58.273255Z INFO spiral_temp_test: │
│ input=StringLiteral("Q`?1&vINX p") │
│ 2024-04-04T17:19:58.273309Z INFO spiral_temp_test: │
│ input=Comment("'(y'//8*mD*+XHZ$O${5D`9+:") │
│ 2024-04-04T17:19:58.273338Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.273362Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-04-04T17:19:58.273387Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.273516Z INFO spiral_temp_test: │
│ input=Identifier("U4Fvu3sk1y8Ltp") │
│ 2024-04-04T17:19:58.273609Z INFO spiral_temp_test: │
│ input=Comment("JG*UCmt$/V`nHqT<`k={j,^!!") │
│ 2024-04-04T17:19:58.273680Z INFO spiral_temp_test: │
│ input=StringLiteral("WJv/.N4!{ZU.+ -Y^a]*&E") │
│ 2024-04-04T17:19:58.273734Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-04-04T17:19:58.273823Z INFO spiral_temp_test: │
│ input=Identifier("C2uvbBlc3ocNySP240Kd56b4g34") │
│ 2024-04-04T17:19:58.273872Z INFO spiral_temp_test: │
│ input=StringLiteral("rq") │
│ 2024-04-04T17:19:58.273919Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-04-04T17:19:58.273984Z INFO spiral_temp_test: │
│ input=Comment("b Pnr?|/fHB`'f*-v @]7\"g9D;^.?`") │
│ 2024-04-04T17:19:58.274035Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-04-04T17:19:58.274072Z INFO spiral_temp_test: │
│ input=Integer(3195263678113176776) │
│ 2024-04-04T17:19:58.274151Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.274236Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.274309Z INFO spiral_temp_test: │
│ input=StringLiteral("G&$&0&B/Zf`KO&}0L*P^#=k") │
│ 2024-04-04T17:19:58.274361Z INFO spiral_temp_test: │
│ input=Operator("(") │
│ 2024-04-04T17:19:58.274394Z INFO spiral_temp_test: │
│ input=Integer(-4443410224289918731) │
│ 2024-04-04T17:19:58.274436Z INFO spiral_temp_test: │
│ input=Comment("v") │
│ 2024-04-04T17:19:58.274472Z INFO spiral_temp_test: │
│ input=Integer(-2661511372775899016) │
│ 2024-04-04T17:19:58.274504Z INFO spiral_temp_test: │
│ input=Integer(-476855027108842306) │
│ 2024-04-04T17:19:58.274577Z INFO spiral_temp_test: │
│ input=Identifier("gpO93MCY00a6QII2d4QW") │
│ 2024-04-04T17:19:58.274629Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.274678Z INFO spiral_temp_test: │
│ input=Identifier("yUHd7") │
│ 2024-04-04T17:19:58.274741Z INFO spiral_temp_test: │
│ input=StringLiteral(":?Axr?t?7.5Y5=['v.`zA'zj9|%:") │
│ 2024-04-04T17:19:58.274810Z INFO spiral_temp_test: │
│ input=Comment("G=+'s `<W0rC?\"<Xp\\Q%/j7'<{]") │
│ 2024-04-04T17:19:58.274860Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.274907Z INFO spiral_temp_test: │
│ input=StringLiteral("*i`[Xt/y") │
│ 2024-04-04T17:19:58.274943Z INFO spiral_temp_test: │
│ input=Operator("-") │
│ 2024-04-04T17:19:58.274991Z INFO spiral_temp_test: │
│ input=Identifier("uNRInr8O86LzjNM0T") │
│ 2024-04-04T17:19:58.275056Z INFO spiral_temp_test: │
│ input=Integer(-3771932009515951850) │
│ 2024-04-04T17:19:58.275107Z INFO spiral_temp_test: │
│ input=StringLiteral("{2pu<u73{9:3") │
│ 2024-04-04T17:19:58.275147Z INFO spiral_temp_test: │
│ input=Identifier("wW") │
│ 2024-04-04T17:19:58.275195Z INFO spiral_temp_test: │
│ input=StringLiteral("E0<)N@[}*@pN'0Ep ") │
│ 2024-04-04T17:19:58.275257Z INFO spiral_temp_test: │
│ input=StringLiteral("2I%8`S/igX:gMwp+A0*8") │
│ 2024-04-04T17:19:58.275306Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.275350Z INFO spiral_temp_test: │
│ input=StringLiteral("+[`2U1=!=W") │
│ 2024-04-04T17:19:58.275414Z INFO spiral_temp_test: │
│ input=Integer(-7780597989064602641) │
│ 2024-04-04T17:19:58.275460Z INFO spiral_temp_test: │
│ input=Identifier("h0neKd15LvR6") │
│ 2024-04-04T17:19:58.275499Z INFO spiral_temp_test: │
│ input=Identifier("qE6pN74") │
│ 2024-04-04T17:19:58.275551Z INFO spiral_temp_test: │
│ input=Comment("=H]6=P``?Q\"dxo%") │
│ 2024-04-04T17:19:58.275596Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.275632Z INFO spiral_temp_test: │
│ input=Identifier("tDe9u") │
│ 2024-04-04T17:19:58.275670Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-04-04T17:19:58.275699Z INFO spiral_temp_test: │
│ input=Integer(4828692806087505782) │
│ 2024-04-04T17:19:58.275752Z INFO spiral_temp_test: │
│ input=Identifier("v433qe934uSm8OBBf5Q09WzNOW") │
│ 2024-04-04T17:19:58.275790Z INFO spiral_temp_test: │
│ input=Integer(-7843140852326524297) │
│ 2024-04-04T17:19:58.275831Z INFO spiral_temp_test: │
│ input=Identifier("R9fYZbIh2m") │
│ 2024-04-04T17:19:58.275892Z INFO spiral_temp_test: │
│ input=Identifier("F0tRuLgn3vdNJJHl2vctaW6WO") │
│ 2024-04-04T17:19:58.275962Z INFO spiral_temp_test: │
│ input=Comment("&l;?$1Ta.]J4?w@i%/<U7H\\^}") │
│ 2024-04-04T17:19:58.276041Z INFO spiral_temp_test: │
│ input=StringLiteral("(~g7~/rIF={") │
│ 2024-04-04T17:19:58.276106Z INFO spiral_temp_test: │
│ input=Identifier("neUwrNG1zhcJ6A8JBR9htN") │
│ 2024-04-04T17:19:58.276148Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.276238Z INFO spiral_temp_test: │
│ input=Comment("B?%X='K?\\C>") │
│ 2024-04-04T17:19:58.276372Z INFO spiral_temp_test: │
│ input=Comment("Xjz{.=\\Bb?#6(7Qf'mp\\H?)*&*+") │
│ 2024-04-04T17:19:58.276457Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-04-04T17:19:58.276524Z INFO spiral_temp_test: │
│ input=Identifier("dq36l0NGCXBHOkrH") │
│ 2024-04-04T17:19:58.276581Z INFO spiral_temp_test: │
│ input=Identifier("mx609u") │
│ 2024-04-04T17:19:58.276638Z INFO spiral_temp_test: │
│ input=StringLiteral("") │
│ 2024-04-04T17:19:58.276745Z INFO spiral_temp_test: │
│ input=StringLiteral(":{*?<w'jXG:ma:d$/#{I1:B`{c{'{I:") │
│ 2024-04-04T17:19:58.276830Z INFO spiral_temp_test: │
│ input=Identifier("Y2jXh5ewCIco0njlj945dXo6TUg55x2D") │
│ 2024-04-04T17:19:58.276879Z INFO spiral_temp_test: │
│ input=Integer(-3792265104339480017) │
│ 2024-04-04T17:19:58.276939Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.276989Z INFO spiral_temp_test: │
│ input=Integer(-9195016882307711505) │
│ 2024-04-04T17:19:58.277037Z INFO spiral_temp_test: │
│ input=StringLiteral("iIoj'8:qJ") │
│ 2024-04-04T17:19:58.277083Z INFO spiral_temp_test: │
│ input=StringLiteral("p") │
│ 2024-04-04T17:19:58.277191Z INFO spiral_temp_test: │
│ input=Identifier("VIg9c6oksW3x") │
│ 2024-04-04T17:19:58.277256Z INFO spiral_temp_test: │
│ input=Identifier("Qk2vfAH23bqm7") │
│ 2024-04-04T17:19:58.277302Z INFO spiral_temp_test: │
│ input=Integer(-3545987548372945467) │
│ 2024-04-04T17:19:58.277378Z INFO spiral_temp_test: │
│ input=Identifier("asaMxc093c5Nmp946JMjj7TLJ") │
│ 2024-04-04T17:19:58.277448Z INFO spiral_temp_test: │
│ input=Identifier("P4VK2axgv3Gag5qCzFgIP1") │
│ 2024-04-04T17:19:58.277497Z INFO spiral_temp_test: │
│ input=Identifier("V") │
│ 2024-04-04T17:19:58.277588Z INFO spiral_temp_test: │
│ input=Comment("[U!An^KN3E*5#Bo:B*&^l*D%a%'D$") │
│ 2024-04-04T17:19:58.277643Z INFO spiral_temp_test: │
│ input=Integer(8176117705665431521) │
│ 2024-04-04T17:19:58.277774Z INFO spiral_temp_test: │
│ input=Integer(-5542947333977521551) │
│ 2024-04-04T17:19:58.277852Z INFO spiral_temp_test: │
│ input=Integer(7355526287246059500) │
│ 2024-04-04T17:19:58.277902Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.277987Z INFO spiral_temp_test: │
│ input=Comment("eU/ng5bm>\":r%aGg%$D$Gi") │
│ 2024-04-04T17:19:58.278093Z INFO spiral_temp_test: │
│ input=StringLiteral("W;") │
│ 2024-04-04T17:19:58.278188Z INFO spiral_temp_test: │
│ input=Identifier("CRk") │
│ 2024-04-04T17:19:58.278269Z INFO spiral_temp_test: │
│ input=StringLiteral("HT") │
│ 2024-04-04T17:19:58.278325Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.278405Z INFO spiral_temp_test: │
│ input=StringLiteral("<2i}5LuM}b:&9v:JeGBG") │
│ 2024-04-04T17:19:58.278503Z INFO spiral_temp_test: │
│ input=StringLiteral(",xfd)e/{*.?M *(*q<'?C.Z`{v,hF") │
│ 2024-04-04T17:19:58.278614Z INFO spiral_temp_test: │
│ input=Integer(-6450845794335325893) │
│ 2024-04-04T17:19:58.278724Z INFO spiral_temp_test: │
│ input=StringLiteral(".c8VfPX/`") │
│ 2024-04-04T17:19:58.278783Z INFO spiral_temp_test: │
│ input=Integer(1379967787451054202) │
│ 2024-04-04T17:19:58.278829Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.278882Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.278942Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.279049Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.279145Z INFO spiral_temp_test: │
│ input=StringLiteral("5~q`B:U%Sso{Te<P.3:aHhO8") │
│ 2024-04-04T17:19:58.279207Z INFO spiral_temp_test: │
│ input=Comment("o#[") │
│ 2024-04-04T17:19:58.279278Z INFO spiral_temp_test: │
│ input=Identifier("zSHHJ57Ga82FD4fD9o8rxF9") │
│ 2024-04-04T17:19:58.279342Z INFO spiral_temp_test: │
│ input=StringLiteral("^b{o*wA|`~=") │
│ 2024-04-04T17:19:58.279413Z INFO spiral_temp_test: │
│ input=StringLiteral("R,cW`") │
│ 2024-04-04T17:19:58.279456Z INFO spiral_temp_test: │
│ input=Integer(8878845034916764755) │
│ 2024-04-04T17:19:58.279514Z INFO spiral_temp_test: │
│ input=StringLiteral("$nM") │
│ 2024-04-04T17:19:58.279565Z INFO spiral_temp_test: │
│ input=Integer(-3391257679886898488) │
│ 2024-04-04T17:19:58.279616Z INFO spiral_temp_test: │
│ input=StringLiteral("{:%>%W") │
│ 2024-04-04T17:19:58.279702Z INFO spiral_temp_test: │
│ input=Identifier("R7aFOkeX1x555zgF2IeUCZ25Oif6HpIHT") │
│ 2024-04-04T17:19:58.279755Z INFO spiral_temp_test: │
│ input=Integer(-2640456448521637901) │
│ 2024-04-04T17:19:58.279837Z INFO spiral_temp_test: │
│ input=Identifier("KtJYqtP0H14UgSpf96vTkQDcdlpfNji5") │
│ 2024-04-04T17:19:58.279911Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.280004Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.280113Z INFO spiral_temp_test: │
│ input=Comment(":*Za2%(x{Xm*<WOu =1\\") │
│ 2024-04-04T17:19:58.280162Z INFO spiral_temp_test: │
│ input=Integer(7157847848824944035) │
│ 2024-04-04T17:19:58.280234Z INFO spiral_temp_test: │
│ input=Identifier("TfPSP04HIeF7Hupk7") │
│ 2024-04-04T17:19:58.280289Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-04-04T17:19:58.280340Z INFO spiral_temp_test: │
│ input=Integer(-9092383336196138666) │
│ 2024-04-04T17:19:58.280390Z INFO spiral_temp_test: │
│ input=Integer(155638065846966855) │
│ 2024-04-04T17:19:58.280445Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.280492Z INFO spiral_temp_test: │
│ input=Integer(2321797238434538428) │
│ 2024-04-04T17:19:58.280567Z INFO spiral_temp_test: │
│ input=Comment("Q\\\\t_\"l2DDxCSpP0\"$:$/") │
│ 2024-04-04T17:19:58.280654Z INFO spiral_temp_test: │
│ input=Identifier("PM7McH2D") │
│ 2024-04-04T17:19:58.280702Z INFO spiral_temp_test: │
│ input=Identifier("qRW") │
│ 2024-04-04T17:19:58.280782Z INFO spiral_temp_test: │
│ input=Identifier("OelPWX8324hEsuPawYbaZVp") │
│ 2024-04-04T17:19:58.280849Z INFO spiral_temp_test: │
│ input=Operator("+") │
│ 2024-04-04T17:19:58.280945Z INFO spiral_temp_test: │
│ input=Integer(-5562085103657707075) │
│ 2024-04-04T17:19:58.281047Z INFO spiral_temp_test: │
│ input=Identifier("KkIxF6k5MJgp") │
│ 2024-04-04T17:19:58.281099Z INFO spiral_temp_test: │
│ input=Operator(")") │
│ 2024-04-04T17:19:58.281149Z INFO spiral_temp_test: │
│ input=Integer(5951760595459993253) │
│ 2024-04-04T17:19:58.281207Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.281317Z INFO spiral_temp_test: │
│ input=Comment("}v1s/G-:*\\'9/`") │
│ 2024-04-04T17:19:58.281400Z INFO spiral_temp_test: │
│ input=Comment("0:Jx&7Dk<!") │
│ 2024-04-04T17:19:58.281482Z INFO spiral_temp_test: │
│ input=Operator("*") │
│ 2024-04-04T17:19:58.281654Z INFO spiral_temp_test: │
│ input=Comment("3efU'.i6_") │
│ 2024-04-04T17:19:58.281730Z INFO spiral_temp_test: │
│ input=Identifier("Z5NVuPWxn0v2WQ8q5C2f2U1AnZz6f") │
│ 2024-04-04T17:19:58.281784Z INFO spiral_temp_test: │
│ input=Integer(5678757571398169227) │
│ 2024-04-04T17:19:58.281863Z INFO spiral_temp_test: │
│ input=Comment(".'=}q16/T[uH$/.~&\\0O`0.{# e'") │
│ 2024-04-04T17:19:58.281914Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ 2024-04-04T17:19:58.281988Z INFO spiral_temp_test: │
│ input=Identifier("H34BZ3TPM3NhtBufGjpM6lQcTN4") │
│ 2024-04-04T17:19:58.282056Z INFO spiral_temp_test: │
│ input=StringLiteral("{:d=)F8;D`.z9[&SPB*&'%sL") │
│ 2024-04-04T17:19:58.282123Z INFO spiral_temp_test: │
│ input=Operator("=") │
│ 2024-04-04T17:19:58.282186Z INFO spiral_temp_test: │
│ input=Comment("X::O\"*/ /{hE") │
│ 2024-04-04T17:19:58.282253Z INFO spiral_temp_test: │
│ input=Identifier("LkyJrrG00zMmJRTY1") │
│ 2024-04-04T17:19:58.282350Z INFO spiral_temp_test: │
│ input=StringLiteral("pl*<^?5c<.Bg2+Lvfbk*[K$$d#h") │
│ 2024-04-04T17:19:58.282410Z INFO spiral_temp_test: │
│ input=Operator("/") │
│ test prop_parse_format_idempotent ... ok │
│ test │
│ adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... │
│ ok │
│ │
│ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; │
│ finished in 0.18s │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── pwsh ────────────────────────────────────────────────────────────────────────
{ . $ScriptDir/../../../../target/release/spiral_temp_test$(GetExecutableSuffix)
} | Invoke-Block
╭─[ 87.88ms - stdout ]─────────────────────────────────────────────────────────╮
│ app=test │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook build.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 364493 bytes to build.dib.html
In [ ]:
{ . "$ScriptDir/../apps/perf/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60
00:00:00 #2 [Debug] executeAsync / options: { Command =
"dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = Some <fun:main@438-47> }
00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\perf
00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release
00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805
00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500
00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0
00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:
00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0
00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805
00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Perf.dib""
WorkingDirectory = None
CancellationToken = Some System.Threading.CancellationToken
OnLine = None }
00:00:04 #12 [Verbose] >
00:00:04 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:04 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:04 #15 [Verbose] > │ ## Perf (Polyglot) │
00:00:04 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:04 #17 [Verbose] >
00:00:04 #18 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:04 #19 [Verbose] > // // test
00:00:04 #20 [Verbose] >
00:00:04 #21 [Verbose] > open testing
00:00:04 #22 [Verbose] > open benchmark
00:00:08 #23 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-0997-9741-9b0b5642ef02\main.spi
00:00:12 #24 [Verbose] >
00:00:12 #25 [Verbose] > ╭─[ 7.54s - stdout ]───────────────────────────────────────────────────────────╮
00:00:12 #26 [Verbose] > │ () │
00:00:12 #27 [Verbose] > │ │
00:00:12 #28 [Verbose] > │ │
00:00:12 #29 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:12 #30 [Verbose] >
00:00:12 #31 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:12 #32 [Verbose] > #!import ../../lib/spiral/common.fsx
00:00:12 #33 [Verbose] > #!import ../../lib/spiral/sm.fsx
00:00:12 #34 [Verbose] > #!import ../../lib/spiral/date_time.fsx
00:00:12 #35 [Verbose] > #!import ../../lib/spiral/file_system.fsx
00:00:12 #36 [Verbose] > #!import ../../lib/spiral/lib.fsx
00:00:12 #37 [Verbose] >
00:00:12 #38 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:12 #39 [Verbose] > #r
00:00:12 #40 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
00:00:12 #41 [Verbose] > spNetCore.Html.Abstractions.dll"
00:00:12 #42 [Verbose] > #r
00:00:12 #43 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:12 #44 [Verbose] > otNet.Interactive.dll"
00:00:12 #45 [Verbose] > #r
00:00:12 #46 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:12 #47 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:12 #48 [Verbose] > #r
00:00:12 #49 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:12 #50 [Verbose] > otNet.Interactive.Formatting.dll"
00:00:12 #51 [Verbose] > open System
00:00:12 #52 [Verbose] > open System.IO
00:00:12 #53 [Verbose] > open System.Text
00:00:12 #54 [Verbose] > open Microsoft.DotNet.Interactive.Formatting
00:00:14 #55 [Verbose] >
00:00:14 #56 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:14 #57 [Verbose] > #r
00:00:14 #58 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:14 #59 [Verbose] > otNet.Interactive.FSharp.dll"
00:00:14 #60 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
00:00:14 #61 [Verbose] > #r
00:00:14 #62 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
00:00:14 #63 [Verbose] > otNet.Interactive.dll"
00:00:14 #64 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel
00:00:14 #65 [Verbose] >
00:00:14 #66 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:14 #67 [Verbose] > type [[<Struct>]] US0 =
00:00:14 #68 [Verbose] > | US0_0
00:00:14 #69 [Verbose] > | US0_1
00:00:14 #70 [Verbose] > | US0_2
00:00:14 #71 [Verbose] > | US0_3
00:00:14 #72 [Verbose] > and [[<Struct>]] US1 =
00:00:14 #73 [Verbose] > | US1_0 of f0_0 : US0
00:00:14 #74 [Verbose] > | US1_1 of f1_0 : US0
00:00:14 #75 [Verbose] > and [[<Struct>]] US2 =
00:00:14 #76 [Verbose] > | US2_0
00:00:14 #77 [Verbose] > | US2_1
00:00:14 #78 [Verbose] > and [[<Struct>]] US3 =
00:00:14 #79 [Verbose] > | US3_0 of f0_0 : US2
00:00:14 #80 [Verbose] > | US3_1
00:00:14 #81 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
00:00:14 #82 [Verbose] > let v1 : System.IDisposable option = None
00:00:14 #83 [Verbose] > let mutable _v1 = v1
00:00:14 #84 [Verbose] > #if FABLE_COMPILER_RUST && !WASM && !CONTRACT
00:00:14 #85 [Verbose] > let v2 : US0 = US0_0
00:00:14 #86 [Verbose] > let v3 : US1 = US1_0(v2)
00:00:14 #87 [Verbose] > let v4 : string = $"new_disposable / target: {v3}"
00:00:14 #88 [Verbose] > let v5 : System.IDisposable = failwith<System.IDisposable> v4
00:00:14 #89 [Verbose] > v5
00:00:14 #90 [Verbose] > #endif
00:00:14 #91 [Verbose] > #if FABLE_COMPILER_RUST && WASM
00:00:14 #92 [Verbose] > let v6 : US0 = US0_2
00:00:14 #93 [Verbose] > let v7 : US1 = US1_0(v6)
00:00:14 #94 [Verbose] > let v8 : string = $"new_dispos...
00:00:15 #95 [Verbose] >
00:00:15 #96 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:15 #97 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}
00:00:15 #98 [Verbose] > and Mut1 = {mutable l0 : int32}
00:00:15 #99 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =
00:00:15 #100 [Verbose] > let v2 : bool = v1.Contains v0
00:00:15 #101 [Verbose] > v2
00:00:15 #102 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =
00:00:15 #103 [Verbose] > closure1(v0)
00:00:15 #104 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =
00:00:15 #105 [Verbose] > let v2 : bool = v1.EndsWith v0
00:00:15 #106 [Verbose] > v2
00:00:15 #107 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =
00:00:15 #108 [Verbose] > closure3(v0)
00:00:15 #109 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
00:00:15 #110 [Verbose] > let v3 : string = v2.PadLeft (v0, v1)
00:00:15 #111 [Verbose] > v3
00:00:15 #112 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =
00:00:15 #113 [Verbose] > closure6(v0, v1)
00:00:15 #114 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =
00:00:15 #115 [Verbose] > closure5(v0)
00:00:15 #116 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =
00:00:15 #117 [Verbose] > let v2 : stri...
00:00:16 #118 [Verbose] >
00:00:16 #119 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:16 #120 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
00:00:16 #121 [Verbose] > let v2 : (System.Guid -> string) = _.ToString()
00:00:16 #122 [Verbose] > let v3 : string = v2 v0
00:00:16 #123 [Verbose] > let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
00:00:16 #124 [Verbose] > let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
00:00:16 #125 [Verbose] > v5
00:00:16 #126 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
00:00:16 #127 [Verbose] > closure1(v0)
00:00:16 #128 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =
00:00:16 #129 [Verbose] > let v3 : string = v2.Replace (v0, v1)
00:00:16 #130 [Verbose] > v3
00:00:16 #131 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =
00:00:16 #132 [Verbose] > closure5(v0, v1)
00:00:16 #133 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =
00:00:16 #134 [Verbose] > closure4(v0)
00:00:16 #135 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =
00:00:16 #136 [Verbose] > closure3()
00:00:16 #137 [Verbose] > and closure2 (...
00:00:16 #138 [Verbose] >
00:00:16 #139 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:16 #140 [Verbose] > #if FABLE_COMPILER // file_system.types
00:00:16 #141 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
00:00:16 #142 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
00:00:16 #143 [Verbose] > base64_DecodeError = class end
00:00:16 #144 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
00:00:16 #145 [Verbose] > = class end
00:00:16 #146 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
00:00:16 #147 [Verbose] > = class end
00:00:16 #148 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
00:00:16 #149 [Verbose] > serde_json_Error = class end
00:00:16 #150 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
00:00:16 #151 [Verbose] > serde_json_Value = class end
00:00:16 #152 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
00:00:16 #153 [Verbose] > serde_wasm_bindgen_Error = class end
00:00:16 #154 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
00:00:17 #155 [Verbose] >
00:00:17 #156 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────
00:00:17 #157 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER
00:00:17 #158 [Verbose] > module SpiralDateTime =
00:00:17 #159 [Verbose] > let format x =
00:00:17 #160 [Verbose] > #if !INTERACTIVE
00:00:17 #161 [Verbose] > Date_time.format x
00:00:17 #162 [Verbose] > #else
00:00:17 #163 [Verbose] > format x
00:00:17 #164 [Verbose] > #endif
00:00:17 #165 [Verbose] >
00:00:17 #166 [Verbose] > let format_iso8601 x =
00:00:17 #167 [Verbose] > #if !INTERACTIVE
00:00:17 #168 [Verbose] > Date_time.format_iso8601 x
00:00:17 #169 [Verbose] > #else
00:00:17 #170 [Verbose] > format_iso8601 x
00:00:17 #171 [Verbose] > #endif
00:00:17 #172 [Verbose] >
00:00:17 #173 [Verbose] > let new_guid_from_date_time x =
00:00:17 #174 [Verbose] > #if !INTERACTIVE
00:00:17 #175 [Verbose] > Date_time.new_guid_from_date_time x
00:00:17 #176 [Verbose] > #else
00:00:17 #177 [Verbose] > new_guid_from_date_time x
00:00:17 #178 [Verbose] > #endif
00:00:17 #179 [Verbose] >
00:00:17 #180 [Verbose] > #endif
00:00:17 #181 [Verbose] >
00:00:17 #182 [Verbose] > module SpiralSm =
00:00:17 #183 [Verbose] > let concat x =
00:00:17 #184 [Verbose] > #if !INTERACTIVE
00:00:17 #185 [Verbose] > Sm.concat x
00:00:17 #186 [Verbose] > #else
00:00:17 #187 [Verbose] > concat x
00:00:17 #188 [Verbose] > #endif
00:00:17 #189 [Verbose] >
00:00:17 #190 [Verbose] > let contains x =
00:00:17 #191 [Verbose] > #if !INTERACTIVE
00:00:17 #192 [Verbose] > Sm.contains x
00:00:17 #193 [Verbose] > #else
00:00:17 #194 [Verbose] > contains x
00:00:17 #195 [Verbose] > #endif
00:00:17 #196 [Verbose] >
00:00:17 #197 [Verbose] > let ellipsis x =
00:00:17 #198 [Verbose] > #if !INTERACTIVE
00:00:17 #199 [Verbose] > Sm.ellipsis x
00:00:17 #200 [Verbose] > #else
00:00:17 #201 [Verbose] > ellipsis x
00:00:17 #202 [Verbose] > #endif
00:00:17 #203 [Verbose] >
00:00:17 #204 [Verbose] > let ellipsis_end x =
00:00:17 #205 [Verbose] > #if...
00:00:17 #206 [Verbose] >
00:00:17 #207 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 #208 [Verbose] > #if !INTERACTIVE
00:00:17 #209 [Verbose] > open Lib
00:00:17 #210 [Verbose] > #endif
00:00:17 #211 [Verbose] >
00:00:17 #212 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:17 #213 [Verbose] > inl (/@) x = listm'.(/@) x
00:00:17 #214 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-2016-1653-1eecd39f11ec\main.spi
00:00:17 #215 [Verbose] >
00:00:17 #216 [Verbose] > ╭─[ 328.78ms - stdout ]────────────────────────────────────────────────────────╮
00:00:17 #217 [Verbose] > │ () │
00:00:17 #218 [Verbose] > │ │
00:00:17 #219 [Verbose] > │ │
00:00:17 #220 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #221 [Verbose] >
00:00:17 #222 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 #223 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:17 #224 [Verbose] > │ ## TestCaseResult │
00:00:17 #225 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #226 [Verbose] >
00:00:17 #227 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 #228 [Verbose] > type TestCaseResult =
00:00:17 #229 [Verbose] > {
00:00:17 #230 [Verbose] > Input: string
00:00:17 #231 [Verbose] > Expected: string
00:00:17 #232 [Verbose] > Result: string
00:00:17 #233 [Verbose] > TimeList: int64 list
00:00:17 #234 [Verbose] > }
00:00:17 #235 [Verbose] >
00:00:17 #236 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 #237 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:17 #238 [Verbose] > │ ## run │
00:00:17 #239 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #240 [Verbose] >
00:00:17 #241 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 #242 [Verbose] > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input,
00:00:17 #243 [Verbose] > expected) =
00:00:17 #244 [Verbose] > let inputStr =
00:00:17 #245 [Verbose] > match box input with
00:00:17 #246 [Verbose] > | :? System.Collections.ICollection as input ->
00:00:17 #247 [Verbose] > System.Linq.Enumerable.Cast<obj> input
00:00:17 #248 [Verbose] > |> Seq.map string
00:00:17 #249 [Verbose] > |> SpiralSm.concat ","
00:00:17 #250 [Verbose] > | _ -> input.ToString ()
00:00:17 #251 [Verbose] >
00:00:17 #252 [Verbose] > printfn ""
00:00:17 #253 [Verbose] > printfn $"Solution: {inputStr} "
00:00:17 #254 [Verbose] >
00:00:17 #255 [Verbose] > let performanceInvoke (fn: unit -> 'T) =
00:00:17 #256 [Verbose] > GC.Collect ()
00:00:17 #257 [Verbose] > let stopwatch = System.Diagnostics.Stopwatch ()
00:00:17 #258 [Verbose] > stopwatch.Start ()
00:00:17 #259 [Verbose] > let time1 = stopwatch.ElapsedMilliseconds
00:00:17 #260 [Verbose] >
00:00:17 #261 [Verbose] > let result =
00:00:17 #262 [Verbose] > [[| 0 .. count |]]
00:00:17 #263 [Verbose] > |> Array.Parallel.map (fun _ ->
00:00:17 #264 [Verbose] > fn ()
00:00:17 #265 [Verbose] > )
00:00:17 #266 [Verbose] > |> Array.last
00:00:17 #267 [Verbose] >
00:00:17 #268 [Verbose] > let time2 = stopwatch.ElapsedMilliseconds - time1
00:00:17 #269 [Verbose] >
00:00:17 #270 [Verbose] > result, time2
00:00:17 #271 [Verbose] >
00:00:17 #272 [Verbose] > let resultsWithTime =
00:00:17 #273 [Verbose] > solutions
00:00:17 #274 [Verbose] > |> List.mapi (fun i (testName, solution) ->
00:00:17 #275 [Verbose] > let result, time = performanceInvoke (fun () -> solution input)
00:00:17 #276 [Verbose] > printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time} "
00:00:17 #277 [Verbose] > result, time
00:00:17 #278 [Verbose] > )
00:00:17 #279 [Verbose] >
00:00:17 #280 [Verbose] >
00:00:17 #281 [Verbose] > match resultsWithTime |> List.map fst with
00:00:17 #282 [Verbose] > | ([[]] | [[ _ ]]) -> ()
00:00:17 #283 [Verbose] > | (head :: tail) when tail |> List.forall ((=) head) -> ()
00:00:17 #284 [Verbose] > | results -> failwithf $"Challenge error: %A{results}"
00:00:17 #285 [Verbose] >
00:00:17 #286 [Verbose] > {
00:00:17 #287 [Verbose] > Input = inputStr
00:00:17 #288 [Verbose] > Expected = expected.ToString ()
00:00:17 #289 [Verbose] > Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString()
00:00:17 #290 [Verbose] > TimeList = resultsWithTime |> List.map snd
00:00:17 #291 [Verbose] > }
00:00:17 #292 [Verbose] >
00:00:17 #293 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 #294 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:17 #295 [Verbose] > │ ## runAll │
00:00:17 #296 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #297 [Verbose] >
00:00:17 #298 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 #299 [Verbose] > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list)
00:00:17 #300 [Verbose] > testCases =
00:00:17 #301 [Verbose] > printfn ""
00:00:17 #302 [Verbose] > printfn ""
00:00:17 #303 [Verbose] > printfn $"Test: {testName}"
00:00:17 #304 [Verbose] > testCases
00:00:17 #305 [Verbose] > |> Seq.map (run count solutions)
00:00:17 #306 [Verbose] > |> Seq.toList
00:00:17 #307 [Verbose] >
00:00:17 #308 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:17 #309 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:17 #310 [Verbose] > │ ## sortResultList │
00:00:17 #311 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:17 #312 [Verbose] >
00:00:17 #313 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:17 #314 [Verbose] > let sortResultList resultList =
00:00:17 #315 [Verbose] > let table =
00:00:17 #316 [Verbose] > let rows =
00:00:17 #317 [Verbose] > resultList
00:00:17 #318 [Verbose] > |> List.map (fun result ->
00:00:17 #319 [Verbose] > let best =
00:00:17 #320 [Verbose] > result.TimeList
00:00:17 #321 [Verbose] > |> List.mapi (fun i time ->
00:00:17 #322 [Verbose] > i + 1, time
00:00:17 #323 [Verbose] > )
00:00:17 #324 [Verbose] > |> List.sortBy snd
00:00:17 #325 [Verbose] > |> List.head
00:00:17 #326 [Verbose] > |> _.ToString()
00:00:17 #327 [Verbose] > let row =
00:00:17 #328 [Verbose] > [[
00:00:17 #329 [Verbose] > result.Input
00:00:17 #330 [Verbose] > result.Expected
00:00:17 #331 [Verbose] > result.Result
00:00:17 #332 [Verbose] > best
00:00:17 #333 [Verbose] > ]]
00:00:17 #334 [Verbose] > let color =
00:00:17 #335 [Verbose] > match result.Expected = result.Result with
00:00:17 #336 [Verbose] > | true -> Some ConsoleColor.DarkGreen
00:00:17 #337 [Verbose] > | false -> Some ConsoleColor.DarkRed
00:00:17 #338 [Verbose] > row, color
00:00:17 #339 [Verbose] > )
00:00:17 #340 [Verbose] > let header =
00:00:17 #341 [Verbose] > [[
00:00:17 #342 [Verbose] > [[
00:00:17 #343 [Verbose] > "Input"
00:00:17 #344 [Verbose] > "Expected"
00:00:17 #345 [Verbose] > "Result"
00:00:17 #346 [Verbose] > "Best"
00:00:17 #347 [Verbose] > ]]
00:00:17 #348 [Verbose] > [[
00:00:17 #349 [Verbose] > "---"
00:00:17 #350 [Verbose] > "---"
00:00:17 #351 [Verbose] > "---"
00:00:17 #352 [Verbose] > "---"
00:00:17 #353 [Verbose] > ]]
00:00:17 #354 [Verbose] > ]]
00:00:17 #355 [Verbose] > |> List.map (fun row -> row, None)
00:00:17 #356 [Verbose] > header @ rows
00:00:17 #357 [Verbose] >
00:00:17 #358 [Verbose] > let formattedTable =
00:00:17 #359 [Verbose] > let lengthMap =
00:00:17 #360 [Verbose] > table
00:00:17 #361 [Verbose] > |> List.map fst
00:00:17 #362 [Verbose] > |> List.transpose
00:00:17 #363 [Verbose] > |> List.map (fun column ->
00:00:17 #364 [Verbose] > column
00:00:17 #365 [Verbose] > |> List.map String.length
00:00:17 #366 [Verbose] > |> List.sortDescending
00:00:17 #367 [Verbose] > |> List.tryHead
00:00:17 #368 [Verbose] > |> Option.defaultValue 0
00:00:17 #369 [Verbose] > )
00:00:17 #370 [Verbose] > |> List.indexed
00:00:17 #371 [Verbose] > |> Map.ofList
00:00:17 #372 [Verbose] > table
00:00:17 #373 [Verbose] > |> List.map (fun (row, color) ->
00:00:17 #374 [Verbose] > let newRow =
00:00:17 #375 [Verbose] > row
00:00:17 #376 [Verbose] > |> List.mapi (fun i cell ->
00:00:17 #377 [Verbose] > cell.PadRight lengthMap.[[i]]
00:00:17 #378 [Verbose] > )
00:00:17 #379 [Verbose] > newRow, color
00:00:17 #380 [Verbose] > )
00:00:17 #381 [Verbose] >
00:00:17 #382 [Verbose] > printfn ""
00:00:17 #383 [Verbose] > formattedTable
00:00:17 #384 [Verbose] > |> List.iter (fun (row, color) ->
00:00:17 #385 [Verbose] > match color with
00:00:17 #386 [Verbose] > | Some color -> Console.ForegroundColor <- color
00:00:17 #387 [Verbose] > | None -> Console.ResetColor ()
00:00:17 #388 [Verbose] >
00:00:17 #389 [Verbose] > printfn "%s" (String.Join ("\t| ", row))
00:00:17 #390 [Verbose] >
00:00:17 #391 [Verbose] > Console.ResetColor ()
00:00:17 #392 [Verbose] > )
00:00:17 #393 [Verbose] >
00:00:17 #394 [Verbose] > let averages =
00:00:17 #395 [Verbose] > resultList
00:00:17 #396 [Verbose] > |> List.map (fun result -> result.TimeList |> List.map float)
00:00:17 #397 [Verbose] > |> List.transpose
00:00:17 #398 [Verbose] > |> List.map List.average
00:00:17 #399 [Verbose] > |> List.map int64
00:00:17 #400 [Verbose] > |> List.indexed
00:00:17 #401 [Verbose] >
00:00:17 #402 [Verbose] > printfn ""
00:00:17 #403 [Verbose] > printfn "Average Ranking "
00:00:17 #404 [Verbose] > averages
00:00:17 #405 [Verbose] > |> List.sortBy snd
00:00:17 #406 [Verbose] > |> List.iter (fun (i, avg) ->
00:00:17 #407 [Verbose] > printfn $"Test case %d{i + 1}. Average Time: %A{avg} "
00:00:17 #408 [Verbose] > )
00:00:18 #409 [Verbose] >
00:00:18 #410 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 #411 [Verbose] > let mutable _count =
00:00:18 #412 [Verbose] > if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}")
00:00:18 #413 [Verbose] > <> "<null>"
00:00:18 #414 [Verbose] > then 2000000
00:00:18 #415 [Verbose] > else 2000
00:00:18 #416 [Verbose] >
00:00:18 #417 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:18 #418 [Verbose] > inl is_fast () =
00:00:18 #419 [Verbose] > false
00:00:18 #420 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-2093-9317-92fb7cdc5a52\main.spi
00:00:18 #421 [Verbose] >
00:00:18 #422 [Verbose] > ╭─[ 323.17ms - stdout ]────────────────────────────────────────────────────────╮
00:00:18 #423 [Verbose] > │ () │
00:00:18 #424 [Verbose] > │ │
00:00:18 #425 [Verbose] > │ │
00:00:18 #426 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #427 [Verbose] >
00:00:18 #428 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #429 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #430 [Verbose] > │ ## empty3Tests │
00:00:18 #431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #432 [Verbose] >
00:00:18 #433 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #434 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #435 [Verbose] > │ Test: Empty3 │
00:00:18 #436 [Verbose] > │ │
00:00:18 #437 [Verbose] > │ Solution: (a, a) │
00:00:18 #438 [Verbose] > │ Test case 1. A. Time: 91L │
00:00:18 #439 [Verbose] > │ │
00:00:18 #440 [Verbose] > │ Solution: (a, a) │
00:00:18 #441 [Verbose] > │ Test case 1. A. Time: 56L │
00:00:18 #442 [Verbose] > │ │
00:00:18 #443 [Verbose] > │ Input | Expected | Result | Best │
00:00:18 #444 [Verbose] > │ --- | --- | --- | --- │
00:00:18 #445 [Verbose] > │ (a, a) | a | a | (1, 91) │
00:00:18 #446 [Verbose] > │ (a, a) | a | a | (1, 56) │
00:00:18 #447 [Verbose] > │ │
00:00:18 #448 [Verbose] > │ Averages │
00:00:18 #449 [Verbose] > │ Test case 1. Average Time: 73L │
00:00:18 #450 [Verbose] > │ │
00:00:18 #451 [Verbose] > │ Ranking │
00:00:18 #452 [Verbose] > │ Test case 1. Average Time: 73L │
00:00:18 #453 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #454 [Verbose] >
00:00:18 #455 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 #456 [Verbose] > //// test
00:00:18 #457 [Verbose] >
00:00:18 #458 [Verbose] > let solutions = [[
00:00:18 #459 [Verbose] > "A",
00:00:18 #460 [Verbose] > fun (a, _b) ->
00:00:18 #461 [Verbose] > a
00:00:18 #462 [Verbose] > ]]
00:00:18 #463 [Verbose] > let testCases = seq {
00:00:18 #464 [Verbose] > ("a", "a"), "a"
00:00:18 #465 [Verbose] > ("a", "a"), "a"
00:00:18 #466 [Verbose] > }
00:00:18 #467 [Verbose] > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases
00:00:18 #468 [Verbose] > empty3Tests
00:00:18 #469 [Verbose] > |> sortResultList
00:00:18 #470 [Verbose] >
00:00:18 #471 [Verbose] > ╭─[ 410.24ms - stdout ]────────────────────────────────────────────────────────╮
00:00:18 #472 [Verbose] > │ │
00:00:18 #473 [Verbose] > │ │
00:00:18 #474 [Verbose] > │ Test: empty3Tests │
00:00:18 #475 [Verbose] > │ │
00:00:18 #476 [Verbose] > │ Solution: (a, a) │
00:00:18 #477 [Verbose] > │ Test case 1. A. Time: 1L │
00:00:18 #478 [Verbose] > │ │
00:00:18 #479 [Verbose] > │ Solution: (a, a) │
00:00:18 #480 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:18 #481 [Verbose] > │ │
00:00:18 #482 [Verbose] > │ Input | Expected | Result | Best │
00:00:18 #483 [Verbose] > │ --- | --- | --- | --- │
00:00:18 #484 [Verbose] > │ (a, a) | a | a | (1, 1) │
00:00:18 #485 [Verbose] > │ (a, a) | a | a | (1, 0) │
00:00:18 #486 [Verbose] > │ │
00:00:18 #487 [Verbose] > │ Average Ranking │
00:00:18 #488 [Verbose] > │ Test case 1. Average Time: 0L │
00:00:18 #489 [Verbose] > │ │
00:00:18 #490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #491 [Verbose] >
00:00:18 #492 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #493 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #494 [Verbose] > │ ## empty2Tests │
00:00:18 #495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #496 [Verbose] >
00:00:18 #497 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:18 #498 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:18 #499 [Verbose] > │ Test: Empty2 │
00:00:18 #500 [Verbose] > │ │
00:00:18 #501 [Verbose] > │ Solution: (a, a) │
00:00:18 #502 [Verbose] > │ Test case 1. A. Time: 59L │
00:00:18 #503 [Verbose] > │ │
00:00:18 #504 [Verbose] > │ Solution: (a, a) │
00:00:18 #505 [Verbose] > │ Test case 1. A. Time: 53L │
00:00:18 #506 [Verbose] > │ │
00:00:18 #507 [Verbose] > │ Input | Expected | Result | Best │
00:00:18 #508 [Verbose] > │ --- | --- | --- | --- │
00:00:18 #509 [Verbose] > │ (a, a) | a | a | (1, 59) │
00:00:18 #510 [Verbose] > │ (a, a) | a | a | (1, 53) │
00:00:18 #511 [Verbose] > │ │
00:00:18 #512 [Verbose] > │ Averages │
00:00:18 #513 [Verbose] > │ Test case 1. Average Time: 56L │
00:00:18 #514 [Verbose] > │ │
00:00:18 #515 [Verbose] > │ Ranking │
00:00:18 #516 [Verbose] > │ Test case 1. Average Time: 56L │
00:00:18 #517 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:18 #518 [Verbose] >
00:00:18 #519 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:18 #520 [Verbose] > //// test
00:00:18 #521 [Verbose] >
00:00:18 #522 [Verbose] > let solutions = [[
00:00:18 #523 [Verbose] > "A",
00:00:18 #524 [Verbose] > fun (a, _b) ->
00:00:18 #525 [Verbose] > a
00:00:18 #526 [Verbose] > ]]
00:00:18 #527 [Verbose] > let testCases = seq {
00:00:18 #528 [Verbose] > ("a", "a"), "a"
00:00:18 #529 [Verbose] > ("a", "a"), "a"
00:00:18 #530 [Verbose] > }
00:00:18 #531 [Verbose] > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases
00:00:18 #532 [Verbose] > empty2Tests
00:00:18 #533 [Verbose] > |> sortResultList
00:00:19 #534 [Verbose] >
00:00:19 #535 [Verbose] > ╭─[ 393.35ms - stdout ]────────────────────────────────────────────────────────╮
00:00:19 #536 [Verbose] > │ │
00:00:19 #537 [Verbose] > │ │
00:00:19 #538 [Verbose] > │ Test: empty2Tests │
00:00:19 #539 [Verbose] > │ │
00:00:19 #540 [Verbose] > │ Solution: (a, a) │
00:00:19 #541 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:19 #542 [Verbose] > │ │
00:00:19 #543 [Verbose] > │ Solution: (a, a) │
00:00:19 #544 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:19 #545 [Verbose] > │ │
00:00:19 #546 [Verbose] > │ Input | Expected | Result | Best │
00:00:19 #547 [Verbose] > │ --- | --- | --- | --- │
00:00:19 #548 [Verbose] > │ (a, a) | a | a | (1, 0) │
00:00:19 #549 [Verbose] > │ (a, a) | a | a | (1, 0) │
00:00:19 #550 [Verbose] > │ │
00:00:19 #551 [Verbose] > │ Average Ranking │
00:00:19 #552 [Verbose] > │ Test case 1. Average Time: 0L │
00:00:19 #553 [Verbose] > │ │
00:00:19 #554 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #555 [Verbose] >
00:00:19 #556 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:19 #557 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:19 #558 [Verbose] > │ ## emptyTests │
00:00:19 #559 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #560 [Verbose] >
00:00:19 #561 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:19 #562 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:19 #563 [Verbose] > │ Test: Empty │
00:00:19 #564 [Verbose] > │ │
00:00:19 #565 [Verbose] > │ Solution: 0 │
00:00:19 #566 [Verbose] > │ Test case 1. A. Time: 61L │
00:00:19 #567 [Verbose] > │ │
00:00:19 #568 [Verbose] > │ Solution: 2 │
00:00:19 #569 [Verbose] > │ Test case 1. A. Time: 62L │
00:00:19 #570 [Verbose] > │ │
00:00:19 #571 [Verbose] > │ Solution: 5 │
00:00:19 #572 [Verbose] > │ Test case 1. A. Time: 70L │
00:00:19 #573 [Verbose] > │ │
00:00:19 #574 [Verbose] > │ Input | Expected | Result | Best │
00:00:19 #575 [Verbose] > │ --- | --- | --- | --- │
00:00:19 #576 [Verbose] > │ 0 | 0 | 0 | (1, 61) │
00:00:19 #577 [Verbose] > │ 2 | 2 | 2 | (1, 62) │
00:00:19 #578 [Verbose] > │ 5 | 5 | 5 | (1, 70) │
00:00:19 #579 [Verbose] > │ │
00:00:19 #580 [Verbose] > │ Averages │
00:00:19 #581 [Verbose] > │ Test case 1. Average Time: 64L │
00:00:19 #582 [Verbose] > │ │
00:00:19 #583 [Verbose] > │ Ranking │
00:00:19 #584 [Verbose] > │ Test case 1. Average Time: 64L │
00:00:19 #585 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #586 [Verbose] >
00:00:19 #587 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:19 #588 [Verbose] > //// test
00:00:19 #589 [Verbose] >
00:00:19 #590 [Verbose] > let solutions = [[
00:00:19 #591 [Verbose] > "A",
00:00:19 #592 [Verbose] > fun n ->
00:00:19 #593 [Verbose] > n + 0
00:00:19 #594 [Verbose] > ]]
00:00:19 #595 [Verbose] > let testCases = seq {
00:00:19 #596 [Verbose] > 0, 0
00:00:19 #597 [Verbose] > 2, 2
00:00:19 #598 [Verbose] > 5, 5
00:00:19 #599 [Verbose] > }
00:00:19 #600 [Verbose] > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases
00:00:19 #601 [Verbose] > emptyTests
00:00:19 #602 [Verbose] > |> sortResultList
00:00:19 #603 [Verbose] >
00:00:19 #604 [Verbose] > ╭─[ 483.58ms - stdout ]────────────────────────────────────────────────────────╮
00:00:19 #605 [Verbose] > │ │
00:00:19 #606 [Verbose] > │ │
00:00:19 #607 [Verbose] > │ Test: emptyTests │
00:00:19 #608 [Verbose] > │ │
00:00:19 #609 [Verbose] > │ Solution: 0 │
00:00:19 #610 [Verbose] > │ Test case 1. A. Time: 3L │
00:00:19 #611 [Verbose] > │ │
00:00:19 #612 [Verbose] > │ Solution: 2 │
00:00:19 #613 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:19 #614 [Verbose] > │ │
00:00:19 #615 [Verbose] > │ Solution: 5 │
00:00:19 #616 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:19 #617 [Verbose] > │ │
00:00:19 #618 [Verbose] > │ Input | Expected | Result | Best │
00:00:19 #619 [Verbose] > │ --- | --- | --- | --- │
00:00:19 #620 [Verbose] > │ 0 | 0 | 0 | (1, 3) │
00:00:19 #621 [Verbose] > │ 2 | 2 | 2 | (1, 0) │
00:00:19 #622 [Verbose] > │ 5 | 5 | 5 | (1, 0) │
00:00:19 #623 [Verbose] > │ │
00:00:19 #624 [Verbose] > │ Average Ranking │
00:00:19 #625 [Verbose] > │ Test case 1. Average Time: 1L │
00:00:19 #626 [Verbose] > │ │
00:00:19 #627 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #628 [Verbose] >
00:00:19 #629 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:19 #630 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:19 #631 [Verbose] > │ ## uniqueLettersTests │
00:00:19 #632 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #633 [Verbose] >
00:00:19 #634 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:19 #635 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:19 #636 [Verbose] > │ Test: UniqueLetters │
00:00:19 #637 [Verbose] > │ │
00:00:19 #638 [Verbose] > │ Solution: abc │
00:00:19 #639 [Verbose] > │ Test case 1. A. Time: 1512L │
00:00:19 #640 [Verbose] > │ Test case 2. B. Time: 1947L │
00:00:19 #641 [Verbose] > │ Test case 3. C. Time: 2023L │
00:00:19 #642 [Verbose] > │ Test case 4. D. Time: 1358L │
00:00:19 #643 [Verbose] > │ Test case 5. E. Time: 1321L │
00:00:19 #644 [Verbose] > │ Test case 6. F. Time: 1346L │
00:00:19 #645 [Verbose] > │ Test case 7. G. Time: 1304L │
00:00:19 #646 [Verbose] > │ Test case 8. H. Time: 1383L │
00:00:19 #647 [Verbose] > │ Test case 9. I. Time: 1495L │
00:00:19 #648 [Verbose] > │ Test case 10. J. Time: 1245L │
00:00:19 #649 [Verbose] > │ Test case 11. K. Time: 1219L │
00:00:19 #650 [Verbose] > │ │
00:00:19 #651 [Verbose] > │ Solution: accabb │
00:00:19 #652 [Verbose] > │ Test case 1. A. Time: 1648L │
00:00:19 #653 [Verbose] > │ Test case 2. B. Time: 2061L │
00:00:19 #654 [Verbose] > │ Test case 3. C. Time: 2413L │
00:00:19 #655 [Verbose] > │ Test case 4. D. Time: 1561L │
00:00:19 #656 [Verbose] > │ Test case 5. E. Time: 1593L │
00:00:19 #657 [Verbose] > │ Test case 6. F. Time: 1518L │
00:00:19 #658 [Verbose] > │ Test case 7. G. Time: 1415L │
00:00:19 #659 [Verbose] > │ Test case 8. H. Time: 1510L │
00:00:19 #660 [Verbose] > │ Test case 9. I. Time: 1445L │
00:00:19 #661 [Verbose] > │ Test case 10. J. Time: 1636L │
00:00:19 #662 [Verbose] > │ Test case 11. K. Time: 1317L │
00:00:19 #663 [Verbose] > │ │
00:00:19 #664 [Verbose] > │ Solution: pprrqqpp │
00:00:19 #665 [Verbose] > │ Test case 1. A. Time: 2255L │
00:00:19 #666 [Verbose] > │ Test case 2. B. Time: 2408L │
00:00:19 #667 [Verbose] > │ Test case 3. C. Time: 2393L │
00:00:19 #668 [Verbose] > │ Test case 4. D. Time: 1675L │
00:00:19 #669 [Verbose] > │ Test case 5. E. Time: 1911L │
00:00:19 #670 [Verbose] > │ Test case 6. F. Time: 2126L │
00:00:19 #671 [Verbose] > │ Test case 7. G. Time: 1504L │
00:00:19 #672 [Verbose] > │ Test case 8. H. Time: 1715L │
00:00:19 #673 [Verbose] > │ Test case 9. I. Time: 1537L │
00:00:19 #674 [Verbose] > │ Test case 10. J. Time: 1522L │
00:00:19 #675 [Verbose] > │ Test case 11. K. Time: 1322L │
00:00:19 #676 [Verbose] > │ │
00:00:19 #677 [Verbose] > │ Solution: │
00:00:19 #678 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:19 #679 [Verbose] > │ bbb │
00:00:19 #680 [Verbose] > │ Test case 1. A. Time: 13073L │
00:00:19 #681 [Verbose] > │ Test case 2. B. Time: 11519L │
00:00:19 #682 [Verbose] > │ Test case 3. C. Time: 8373L │
00:00:19 #683 [Verbose] > │ Test case 4. D. Time: 5860L │
00:00:19 #684 [Verbose] > │ Test case 5. E. Time: 6490L │
00:00:19 #685 [Verbose] > │ Test case 6. F. Time: 6325L │
00:00:19 #686 [Verbose] > │ Test case 7. G. Time: 5799L │
00:00:19 #687 [Verbose] > │ Test case 8. H. Time: 7099L │
00:00:19 #688 [Verbose] > │ Test case 9. I. Time: 6133L │
00:00:19 #689 [Verbose] > │ Test case 10. J. Time: 5993L │
00:00:19 #690 [Verbose] > │ Test case 11. K. Time: 2040L │
00:00:19 #691 [Verbose] > │ │
00:00:19 #692 [Verbose] > │ Input │
00:00:19 #693 [Verbose] > │ | Expected | Result | Best │
00:00:19 #694 [Verbose] > │ --- │
00:00:19 #695 [Verbose] > │ │
00:00:19 #696 [Verbose] > │ | --- | --- | --- │
00:00:19 #697 [Verbose] > │ abc │
00:00:19 #698 [Verbose] > │ │
00:00:19 #699 [Verbose] > │ | abc | abc | (11, 1219) │
00:00:19 #700 [Verbose] > │ accabb │
00:00:19 #701 [Verbose] > │ | acb | acb | (11, 1317) │
00:00:19 #702 [Verbose] > │ pprrqqpp │
00:00:19 #703 [Verbose] > │ | prq | prq | (11, 1322) │
00:00:19 #704 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:19 #705 [Verbose] > │ bbb | acb | acb | (11, 2040) │
00:00:19 #706 [Verbose] > │ │
00:00:19 #707 [Verbose] > │ Averages │
00:00:19 #708 [Verbose] > │ Test case 1. Average Time: 4622L │
00:00:19 #709 [Verbose] > │ Test case 2. Average Time: 4483L │
00:00:19 #710 [Verbose] > │ Test case 3. Average Time: 3800L │
00:00:19 #711 [Verbose] > │ Test case 4. Average Time: 2613L │
00:00:19 #712 [Verbose] > │ Test case 5. Average Time: 2828L │
00:00:19 #713 [Verbose] > │ Test case 6. Average Time: 2828L │
00:00:19 #714 [Verbose] > │ Test case 7. Average Time: 2505L │
00:00:19 #715 [Verbose] > │ Test case 8. Average Time: 2926L │
00:00:19 #716 [Verbose] > │ Test case 9. Average Time: 2652L │
00:00:19 #717 [Verbose] > │ Test case 10. Average Time: 2599L │
00:00:19 #718 [Verbose] > │ Test case 11. Average Time: 1474L │
00:00:19 #719 [Verbose] > │ │
00:00:19 #720 [Verbose] > │ Ranking │
00:00:19 #721 [Verbose] > │ Test case 1. Average Time: 4622L │
00:00:19 #722 [Verbose] > │ Test case 2. Average Time: 4483L │
00:00:19 #723 [Verbose] > │ Test case 3. Average Time: 3800L │
00:00:19 #724 [Verbose] > │ Test case 8. Average Time: 2926L │
00:00:19 #725 [Verbose] > │ Test case 5. Average Time: 2828L │
00:00:19 #726 [Verbose] > │ Test case 6. Average Time: 2828L │
00:00:19 #727 [Verbose] > │ Test case 9. Average Time: 2652L │
00:00:19 #728 [Verbose] > │ Test case 4. Average Time: 2613L │
00:00:19 #729 [Verbose] > │ Test case 10. Average Time: 2599L │
00:00:19 #730 [Verbose] > │ Test case 7. Average Time: 2505L │
00:00:19 #731 [Verbose] > │ Test case 11. Average Time: 1474L │
00:00:19 #732 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:19 #733 [Verbose] >
00:00:19 #734 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:19 #735 [Verbose] > //// test
00:00:19 #736 [Verbose] >
00:00:19 #737 [Verbose] > let solutions = [[
00:00:19 #738 [Verbose] > "A",
00:00:19 #739 [Verbose] > fun input ->
00:00:19 #740 [Verbose] > input
00:00:19 #741 [Verbose] > |> Seq.toList
00:00:19 #742 [Verbose] > |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[
00:00:19 #743 [Verbose] > x ]]) [[]]
00:00:19 #744 [Verbose] > |> Seq.toArray
00:00:19 #745 [Verbose] > |> String
00:00:19 #746 [Verbose] >
00:00:19 #747 [Verbose] > "B",
00:00:19 #748 [Verbose] > fun input ->
00:00:19 #749 [Verbose] > input
00:00:19 #750 [Verbose] > |> Seq.rev
00:00:19 #751 [Verbose] > |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then
00:00:19 #752 [Verbose] > acc else x :: acc) list [[]]
00:00:19 #753 [Verbose] > |> Seq.rev
00:00:19 #754 [Verbose] > |> Seq.toArray
00:00:19 #755 [Verbose] > |> String
00:00:19 #756 [Verbose] >
00:00:19 #757 [Verbose] > "C",
00:00:19 #758 [Verbose] > fun input ->
00:00:19 #759 [Verbose] > input
00:00:19 #760 [Verbose] > |> Seq.rev
00:00:19 #761 [Verbose] > |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set
00:00:19 #762 [Verbose] > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]])
00:00:19 #763 [Verbose] > |> snd
00:00:19 #764 [Verbose] > |> Seq.rev
00:00:19 #765 [Verbose] > |> Seq.toArray
00:00:19 #766 [Verbose] > |> String
00:00:19 #767 [Verbose] >
00:00:19 #768 [Verbose] > "D",
00:00:19 #769 [Verbose] > fun input ->
00:00:19 #770 [Verbose] > input
00:00:19 #771 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:19 #772 [Verbose] > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]])
00:00:19 #773 [Verbose] > |> snd
00:00:19 #774 [Verbose] > |> String
00:00:19 #775 [Verbose] >
00:00:19 #776 [Verbose] > "E",
00:00:19 #777 [Verbose] > fun input ->
00:00:19 #778 [Verbose] > input
00:00:19 #779 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:19 #780 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:19 #781 [Verbose] > |> snd
00:00:19 #782 [Verbose] > |> List.rev
00:00:19 #783 [Verbose] > |> List.toArray
00:00:19 #784 [Verbose] > |> String
00:00:19 #785 [Verbose] >
00:00:19 #786 [Verbose] > "F",
00:00:19 #787 [Verbose] > fun input ->
00:00:19 #788 [Verbose] > input
00:00:19 #789 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:19 #790 [Verbose] > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])
00:00:19 #791 [Verbose] > |> snd
00:00:19 #792 [Verbose] > |> List.toArray
00:00:19 #793 [Verbose] > |> String
00:00:19 #794 [Verbose] >
00:00:19 #795 [Verbose] > "G",
00:00:19 #796 [Verbose] > fun input ->
00:00:19 #797 [Verbose] > input
00:00:19 #798 [Verbose] > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc
00:00:19 #799 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])
00:00:19 #800 [Verbose] > |> snd
00:00:19 #801 [Verbose] > |> List.toArray
00:00:19 #802 [Verbose] > |> Array.rev
00:00:19 #803 [Verbose] > |> String
00:00:19 #804 [Verbose] >
00:00:19 #805 [Verbose] > "H",
00:00:19 #806 [Verbose] > fun input ->
00:00:19 #807 [Verbose] > input
00:00:19 #808 [Verbose] > |> Seq.toList
00:00:19 #809 [Verbose] > |> fun list ->
00:00:19 #810 [Verbose] > let rec loop set = function
00:00:19 #811 [Verbose] > | head :: tail when Set.contains head set -> loop set tail
00:00:19 #812 [Verbose] > | head :: tail -> (loop (set.Add head) tail) @ [[ head ]]
00:00:19 #813 [Verbose] > | [[]] -> [[]]
00:00:19 #814 [Verbose] > loop Set.empty list
00:00:19 #815 [Verbose] > |> List.rev
00:00:19 #816 [Verbose] > |> List.toArray
00:00:19 #817 [Verbose] > |> String
00:00:19 #818 [Verbose] >
00:00:19 #819 [Verbose] > "I",
00:00:19 #820 [Verbose] > fun input ->
00:00:19 #821 [Verbose] > input
00:00:19 #822 [Verbose] > |> Seq.toList
00:00:19 #823 [Verbose] > |> fun list ->
00:00:19 #824 [Verbose] > let rec loop set = function
00:00:19 #825 [Verbose] > | head :: tail when Set.contains head set -> loop set tail
00:00:19 #826 [Verbose] > | head :: tail -> loop (set.Add head) tail |> Array.append [[|
00:00:19 #827 [Verbose] > head |]]
00:00:19 #828 [Verbose] > | [[]] -> [[||]]
00:00:19 #829 [Verbose] > loop Set.empty list
00:00:19 #830 [Verbose] > |> String
00:00:19 #831 [Verbose] >
00:00:19 #832 [Verbose] > "J",
00:00:19 #833 [Verbose] > fun input ->
00:00:19 #834 [Verbose] > input
00:00:19 #835 [Verbose] > |> Seq.toList
00:00:19 #836 [Verbose] > |> fun list ->
00:00:19 #837 [Verbose] > let rec loop set = function
00:00:19 #838 [Verbose] > | head :: tail when Set.contains head set -> loop set tail
00:00:19 #839 [Verbose] > | head :: tail -> head :: loop (set.Add head) tail
00:00:19 #840 [Verbose] > | [[]] -> [[]]
00:00:19 #841 [Verbose] > loop Set.empty list
00:00:19 #842 [Verbose] > |> List.toArray
00:00:19 #843 [Verbose] > |> String
00:00:19 #844 [Verbose] >
00:00:19 #845 [Verbose] > "K",
00:00:19 #846 [Verbose] > fun input ->
00:00:19 #847 [Verbose] > input
00:00:19 #848 [Verbose] > |> Seq.distinct
00:00:19 #849 [Verbose] > |> Seq.toArray
00:00:19 #850 [Verbose] > |> String
00:00:19 #851 [Verbose] > ]]
00:00:19 #852 [Verbose] > let testCases = seq {
00:00:19 #853 [Verbose] > "abc", "abc"
00:00:19 #854 [Verbose] > "accabb", "acb"
00:00:19 #855 [Verbose] > "pprrqqpp", "prq"
00:00:19 #856 [Verbose] >
00:00:19 #857 [Verbose] > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb
00:00:19 #858 [Verbose] > ", "acb"
00:00:19 #859 [Verbose] > }
00:00:19 #860 [Verbose] > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions
00:00:19 #861 [Verbose] > testCases
00:00:19 #862 [Verbose] > uniqueLettersTests
00:00:19 #863 [Verbose] > |> sortResultList
00:00:26 #864 [Verbose] >
00:00:26 #865 [Verbose] > ╭─[ 6.96s - stdout ]───────────────────────────────────────────────────────────╮
00:00:26 #866 [Verbose] > │ │
00:00:26 #867 [Verbose] > │ │
00:00:26 #868 [Verbose] > │ Test: uniqueLettersTests │
00:00:26 #869 [Verbose] > │ │
00:00:26 #870 [Verbose] > │ Solution: abc │
00:00:26 #871 [Verbose] > │ Test case 1. A. Time: 6L │
00:00:26 #872 [Verbose] > │ Test case 2. B. Time: 6L │
00:00:26 #873 [Verbose] > │ Test case 3. C. Time: 5L │
00:00:26 #874 [Verbose] > │ Test case 4. D. Time: 2L │
00:00:26 #875 [Verbose] > │ Test case 5. E. Time: 2L │
00:00:26 #876 [Verbose] > │ Test case 6. F. Time: 2L │
00:00:26 #877 [Verbose] > │ Test case 7. G. Time: 1L │
00:00:26 #878 [Verbose] > │ Test case 8. H. Time: 2L │
00:00:26 #879 [Verbose] > │ Test case 9. I. Time: 3L │
00:00:26 #880 [Verbose] > │ Test case 10. J. Time: 2L │
00:00:26 #881 [Verbose] > │ Test case 11. K. Time: 5L │
00:00:26 #882 [Verbose] > │ │
00:00:26 #883 [Verbose] > │ Solution: accabb │
00:00:26 #884 [Verbose] > │ Test case 1. A. Time: 1L │
00:00:26 #885 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:26 #886 [Verbose] > │ Test case 3. C. Time: 1L │
00:00:26 #887 [Verbose] > │ Test case 4. D. Time: 1L │
00:00:26 #888 [Verbose] > │ Test case 5. E. Time: 1L │
00:00:26 #889 [Verbose] > │ Test case 6. F. Time: 1L │
00:00:26 #890 [Verbose] > │ Test case 7. G. Time: 0L │
00:00:26 #891 [Verbose] > │ Test case 8. H. Time: 0L │
00:00:26 #892 [Verbose] > │ Test case 9. I. Time: 0L │
00:00:26 #893 [Verbose] > │ Test case 10. J. Time: 0L │
00:00:26 #894 [Verbose] > │ Test case 11. K. Time: 1L │
00:00:26 #895 [Verbose] > │ │
00:00:26 #896 [Verbose] > │ Solution: pprrqqpp │
00:00:26 #897 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:26 #898 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:26 #899 [Verbose] > │ Test case 3. C. Time: 1L │
00:00:26 #900 [Verbose] > │ Test case 4. D. Time: 0L │
00:00:26 #901 [Verbose] > │ Test case 5. E. Time: 1L │
00:00:26 #902 [Verbose] > │ Test case 6. F. Time: 1L │
00:00:26 #903 [Verbose] > │ Test case 7. G. Time: 1L │
00:00:26 #904 [Verbose] > │ Test case 8. H. Time: 1L │
00:00:26 #905 [Verbose] > │ Test case 9. I. Time: 1L │
00:00:26 #906 [Verbose] > │ Test case 10. J. Time: 1L │
00:00:26 #907 [Verbose] > │ Test case 11. K. Time: 1L │
00:00:26 #908 [Verbose] > │ │
00:00:26 #909 [Verbose] > │ Solution: │
00:00:26 #910 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:26 #911 [Verbose] > │ bbb │
00:00:26 #912 [Verbose] > │ Test case 1. A. Time: 12L │
00:00:26 #913 [Verbose] > │ Test case 2. B. Time: 10L │
00:00:26 #914 [Verbose] > │ Test case 3. C. Time: 13L │
00:00:26 #915 [Verbose] > │ Test case 4. D. Time: 9L │
00:00:26 #916 [Verbose] > │ Test case 5. E. Time: 8L │
00:00:26 #917 [Verbose] > │ Test case 6. F. Time: 8L │
00:00:26 #918 [Verbose] > │ Test case 7. G. Time: 8L │
00:00:26 #919 [Verbose] > │ Test case 8. H. Time: 8L │
00:00:26 #920 [Verbose] > │ Test case 9. I. Time: 7L │
00:00:26 #921 [Verbose] > │ Test case 10. J. Time: 7L │
00:00:26 #922 [Verbose] > │ Test case 11. K. Time: 3L │
00:00:26 #923 [Verbose] > │ │
00:00:26 #924 [Verbose] > │ Input │
00:00:26 #925 [Verbose] > │ | Expected | Result | Best │
00:00:26 #926 [Verbose] > │ --- │
00:00:26 #927 [Verbose] > │ | --- | --- | --- │
00:00:26 #928 [Verbose] > │ abc │
00:00:26 #929 [Verbose] > │ | abc | abc | (7, 1) │
00:00:26 #930 [Verbose] > │ accabb │
00:00:26 #931 [Verbose] > │ | acb | acb | (7, 0) │
00:00:26 #932 [Verbose] > │ pprrqqpp │
00:00:26 #933 [Verbose] > │ | prq | prq | (1, 0) │
00:00:26 #934 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │
00:00:26 #935 [Verbose] > │ bbb | acb | acb | (11, 3) │
00:00:26 #936 [Verbose] > │ │
00:00:26 #937 [Verbose] > │ Average Ranking │
00:00:26 #938 [Verbose] > │ Test case 7. Average Time: 2L │
00:00:26 #939 [Verbose] > │ Test case 8. Average Time: 2L │
00:00:26 #940 [Verbose] > │ Test case 9. Average Time: 2L │
00:00:26 #941 [Verbose] > │ Test case 10. Average Time: 2L │
00:00:26 #942 [Verbose] > │ Test case 11. Average Time: 2L │
00:00:26 #943 [Verbose] > │ Test case 4. Average Time: 3L │
00:00:26 #944 [Verbose] > │ Test case 5. Average Time: 3L │
00:00:26 #945 [Verbose] > │ Test case 6. Average Time: 3L │
00:00:26 #946 [Verbose] > │ Test case 1. Average Time: 4L │
00:00:26 #947 [Verbose] > │ Test case 2. Average Time: 4L │
00:00:26 #948 [Verbose] > │ Test case 3. Average Time: 5L │
00:00:26 #949 [Verbose] > │ │
00:00:26 #950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #951 [Verbose] >
00:00:26 #952 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 #953 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:26 #954 [Verbose] > │ ## rotateStringsTests │
00:00:26 #955 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #956 [Verbose] >
00:00:26 #957 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:26 #958 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:26 #959 [Verbose] > │ https://www.hackerrank.com/challenges/rotate-string/forum │
00:00:26 #960 [Verbose] > │ │
00:00:26 #961 [Verbose] > │ Test: RotateStrings │
00:00:26 #962 [Verbose] > │ │
00:00:26 #963 [Verbose] > │ Solution: abc │
00:00:26 #964 [Verbose] > │ Test case 1. A. Time: 1842L │
00:00:26 #965 [Verbose] > │ Test case 2. B. Time: 1846L │
00:00:26 #966 [Verbose] > │ Test case 3. C. Time: 1936L │
00:00:26 #967 [Verbose] > │ Test case 4. CA. Time: 2224L │
00:00:26 #968 [Verbose] > │ Test case 5. CB. Time: 2329L │
00:00:26 #969 [Verbose] > │ Test case 6. D. Time: 2474L │
00:00:26 #970 [Verbose] > │ Test case 7. E. Time: 1664L │
00:00:26 #971 [Verbose] > │ Test case 8. F. Time: 1517L │
00:00:26 #972 [Verbose] > │ Test case 9. FA. Time: 1651L │
00:00:26 #973 [Verbose] > │ Test case 10. FB. Time: 3764L │
00:00:26 #974 [Verbose] > │ Test case 11. FC. Time: 5415L │
00:00:26 #975 [Verbose] > │ │
00:00:26 #976 [Verbose] > │ Solution: abcde │
00:00:26 #977 [Verbose] > │ Test case 1. A. Time: 3356L │
00:00:26 #978 [Verbose] > │ Test case 2. B. Time: 2592L │
00:00:26 #979 [Verbose] > │ Test case 3. C. Time: 2346L │
00:00:26 #980 [Verbose] > │ Test case 4. CA. Time: 2997L │
00:00:26 #981 [Verbose] > │ Test case 5. CB. Time: 3061L │
00:00:26 #982 [Verbose] > │ Test case 6. D. Time: 4051L │
00:00:26 #983 [Verbose] > │ Test case 7. E. Time: 1905L │
00:00:26 #984 [Verbose] > │ Test case 8. F. Time: 1771L │
00:00:26 #985 [Verbose] > │ Test case 9. FA. Time: 2175L │
00:00:26 #986 [Verbose] > │ Test case 10. FB. Time: 3275L │
00:00:26 #987 [Verbose] > │ Test case 11. FC. Time: 5266L │
00:00:26 #988 [Verbose] > │ │
00:00:26 #989 [Verbose] > │ Solution: abcdefghi │
00:00:26 #990 [Verbose] > │ Test case 1. A. Time: 4492L │
00:00:26 #991 [Verbose] > │ Test case 2. B. Time: 3526L │
00:00:26 #992 [Verbose] > │ Test case 3. C. Time: 3583L │
00:00:26 #993 [Verbose] > │ Test case 4. CA. Time: 3711L │
00:00:26 #994 [Verbose] > │ Test case 5. CB. Time: 4783L │
00:00:26 #995 [Verbose] > │ Test case 6. D. Time: 7557L │
00:00:26 #996 [Verbose] > │ Test case 7. E. Time: 3452L │
00:00:26 #997 [Verbose] > │ Test case 8. F. Time: 3050L │
00:00:26 #998 [Verbose] > │ Test case 9. FA. Time: 3275L │
00:00:26 #999 [Verbose] > │ Test case 10. FB. Time: 4635L │
00:00:26 #1000 [Verbose] > │ Test case 11. FC. Time: 5616L │
00:00:26 #1001 [Verbose] > │ │
00:00:26 #1002 [Verbose] > │ Solution: abab │
00:00:26 #1003 [Verbose] > │ Test case 1. A. Time: 2093L │
00:00:26 #1004 [Verbose] > │ Test case 2. B. Time: 1843L │
00:00:26 #1005 [Verbose] > │ Test case 3. C. Time: 1746L │
00:00:26 #1006 [Verbose] > │ Test case 4. CA. Time: 2085L │
00:00:26 #1007 [Verbose] > │ Test case 5. CB. Time: 2139L │
00:00:26 #1008 [Verbose] > │ Test case 6. D. Time: 2095L │
00:00:26 #1009 [Verbose] > │ Test case 7. E. Time: 1723L │
00:00:26 #1010 [Verbose] > │ Test case 8. F. Time: 1558L │
00:00:26 #1011 [Verbose] > │ Test case 9. FA. Time: 1620L │
00:00:26 #1012 [Verbose] > │ Test case 10. FB. Time: 2319L │
00:00:26 #1013 [Verbose] > │ Test case 11. FC. Time: 3918L │
00:00:26 #1014 [Verbose] > │ │
00:00:26 #1015 [Verbose] > │ Solution: aa │
00:00:26 #1016 [Verbose] > │ Test case 1. A. Time: 1107L │
00:00:26 #1017 [Verbose] > │ Test case 2. B. Time: 1241L │
00:00:26 #1018 [Verbose] > │ Test case 3. C. Time: 1183L │
00:00:26 #1019 [Verbose] > │ Test case 4. CA. Time: 1563L │
00:00:26 #1020 [Verbose] > │ Test case 5. CB. Time: 1525L │
00:00:26 #1021 [Verbose] > │ Test case 6. D. Time: 1591L │
00:00:26 #1022 [Verbose] > │ Test case 7. E. Time: 1327L │
00:00:26 #1023 [Verbose] > │ Test case 8. F. Time: 1151L │
00:00:26 #1024 [Verbose] > │ Test case 9. FA. Time: 1180L │
00:00:26 #1025 [Verbose] > │ Test case 10. FB. Time: 1733L │
00:00:26 #1026 [Verbose] > │ Test case 11. FC. Time: 2817L │
00:00:26 #1027 [Verbose] > │ │
00:00:26 #1028 [Verbose] > │ Solution: z │
00:00:26 #1029 [Verbose] > │ Test case 1. A. Time: 816L │
00:00:26 #1030 [Verbose] > │ Test case 2. B. Time: 745L │
00:00:26 #1031 [Verbose] > │ Test case 3. C. Time: 928L │
00:00:26 #1032 [Verbose] > │ Test case 4. CA. Time: 1375L │
00:00:26 #1033 [Verbose] > │ Test case 5. CB. Time: 1029L │
00:00:26 #1034 [Verbose] > │ Test case 6. D. Time: 852L │
00:00:26 #1035 [Verbose] > │ Test case 7. E. Time: 712L │
00:00:26 #1036 [Verbose] > │ Test case 8. F. Time: 263L │
00:00:26 #1037 [Verbose] > │ Test case 9. FA. Time: 232L │
00:00:26 #1038 [Verbose] > │ Test case 10. FB. Time: 773L │
00:00:26 #1039 [Verbose] > │ Test case 11. FC. Time: 1789L │
00:00:26 #1040 [Verbose] > │ │
00:00:26 #1041 [Verbose] > │ Input | Expected │
00:00:26 #1042 [Verbose] > │ │
00:00:26 #1043 [Verbose] > │ | Result │
00:00:26 #1044 [Verbose] > │ │
00:00:26 #1045 [Verbose] > │ | Best │
00:00:26 #1046 [Verbose] > │ --- | --- │
00:00:26 #1047 [Verbose] > │ │
00:00:26 #1048 [Verbose] > │ | --- │
00:00:26 #1049 [Verbose] > │ │
00:00:26 #1050 [Verbose] > │ | --- │
00:00:26 #1051 [Verbose] > │ abc | bca cab abc │
00:00:26 #1052 [Verbose] > │ │
00:00:26 #1053 [Verbose] > │ | bca cab abc │
00:00:26 #1054 [Verbose] > │ │
00:00:26 #1055 [Verbose] > │ | (8, 1517) │
00:00:26 #1056 [Verbose] > │ abcde | bcdea cdeab deabc eabcd abcde │
00:00:26 #1057 [Verbose] > │ | bcdea cdeab deabc eabcd abcde │
00:00:26 #1058 [Verbose] > │ | (8, 1771) │
00:00:26 #1059 [Verbose] > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde │
00:00:26 #1060 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab │
00:00:26 #1061 [Verbose] > │ defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi │
00:00:26 #1062 [Verbose] > │ | (8, 3050) │
00:00:26 #1063 [Verbose] > │ abab | baba abab baba abab │
00:00:26 #1064 [Verbose] > │ │
00:00:26 #1065 [Verbose] > │ | baba abab baba abab │
00:00:26 #1066 [Verbose] > │ │
00:00:26 #1067 [Verbose] > │ | (8, 1558) │
00:00:26 #1068 [Verbose] > │ aa | aa aa │
00:00:26 #1069 [Verbose] > │ │
00:00:26 #1070 [Verbose] > │ | aa aa │
00:00:26 #1071 [Verbose] > │ │
00:00:26 #1072 [Verbose] > │ | (1, 1107) │
00:00:26 #1073 [Verbose] > │ z | z │
00:00:26 #1074 [Verbose] > │ │
00:00:26 #1075 [Verbose] > │ | z │
00:00:26 #1076 [Verbose] > │ │
00:00:26 #1077 [Verbose] > │ | (9, 232) │
00:00:26 #1078 [Verbose] > │ │
00:00:26 #1079 [Verbose] > │ Averages │
00:00:26 #1080 [Verbose] > │ Test case 1. Average Time: 2284L │
00:00:26 #1081 [Verbose] > │ Test case 2. Average Time: 1965L │
00:00:26 #1082 [Verbose] > │ Test case 3. Average Time: 1953L │
00:00:26 #1083 [Verbose] > │ Test case 4. Average Time: 2325L │
00:00:26 #1084 [Verbose] > │ Test case 5. Average Time: 2477L │
00:00:26 #1085 [Verbose] > │ Test case 6. Average Time: 3103L │
00:00:26 #1086 [Verbose] > │ Test case 7. Average Time: 1797L │
00:00:26 #1087 [Verbose] > │ Test case 8. Average Time: 1551L │
00:00:26 #1088 [Verbose] > │ Test case 9. Average Time: 1688L │
00:00:26 #1089 [Verbose] > │ Test case 10. Average Time: 2749L │
00:00:26 #1090 [Verbose] > │ Test case 11. Average Time: 4136L │
00:00:26 #1091 [Verbose] > │ │
00:00:26 #1092 [Verbose] > │ Ranking │
00:00:26 #1093 [Verbose] > │ Test case 11. Average Time: 4136L │
00:00:26 #1094 [Verbose] > │ Test case 6. Average Time: 3103L │
00:00:26 #1095 [Verbose] > │ Test case 10. Average Time: 2749L │
00:00:26 #1096 [Verbose] > │ Test case 5. Average Time: 2477L │
00:00:26 #1097 [Verbose] > │ Test case 4. Average Time: 2325L │
00:00:26 #1098 [Verbose] > │ Test case 1. Average Time: 2284L │
00:00:26 #1099 [Verbose] > │ Test case 2. Average Time: 1965L │
00:00:26 #1100 [Verbose] > │ Test case 3. Average Time: 1953L │
00:00:26 #1101 [Verbose] > │ Test case 7. Average Time: 1797L │
00:00:26 #1102 [Verbose] > │ Test case 9. Average Time: 1688L │
00:00:26 #1103 [Verbose] > │ Test case 8. Average Time: 1551L │
00:00:26 #1104 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:26 #1105 [Verbose] >
00:00:26 #1106 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:00:26 #1107 [Verbose] > //// test
00:00:26 #1108 [Verbose] >
00:00:26 #1109 [Verbose] > let solutions = [[
00:00:26 #1110 [Verbose] > "A",
00:00:26 #1111 [Verbose] > fun (input: string) ->
00:00:26 #1112 [Verbose] > let resultList =
00:00:26 #1113 [Verbose] > List.fold (fun acc x ->
00:00:26 #1114 [Verbose] > let rotate (text: string) (letter: string) = (text |>
00:00:26 #1115 [Verbose] > SpiralSm.slice 1 (input.Length - 1)) + letter
00:00:26 #1116 [Verbose] > [[ rotate (if acc.IsEmpty then input else acc.Head) (string x)
00:00:26 #1117 [Verbose] > ]] @ acc
00:00:26 #1118 [Verbose] > ) [[]] (Seq.toList input)
00:00:26 #1119 [Verbose] >
00:00:26 #1120 [Verbose] > (resultList, "")
00:00:26 #1121 [Verbose] > ||> List.foldBack (fun acc x -> x + acc + " ")
00:00:26 #1122 [Verbose] > |> _.TrimEnd()
00:00:26 #1123 [Verbose] >
00:00:26 #1124 [Verbose] > "B",
00:00:26 #1125 [Verbose] > fun input ->
00:00:26 #1126 [Verbose] > input
00:00:26 #1127 [Verbose] > |> Seq.toList
00:00:26 #1128 [Verbose] > |> List.fold (fun (acc: string list) letter ->
00:00:26 #1129 [Verbose] > let last =
00:00:26 #1130 [Verbose] > if acc.IsEmpty
00:00:26 #1131 [Verbose] > then input
00:00:26 #1132 [Verbose] > else acc.Head
00:00:26 #1133 [Verbose] >
00:00:26 #1134 [Verbose] > let item = last.[[1 .. input.Length - 1]] + string letter
00:00:26 #1135 [Verbose] >
00:00:26 #1136 [Verbose] > item :: acc
00:00:26 #1137 [Verbose] > ) [[]]
00:00:26 #1138 [Verbose] > |> List.rev
00:00:26 #1139 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1140 [Verbose] >
00:00:26 #1141 [Verbose] > "C",
00:00:26 #1142 [Verbose] > fun input ->
00:00:26 #1143 [Verbose] > input
00:00:26 #1144 [Verbose] > |> Seq.toList
00:00:26 #1145 [Verbose] > |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:00:26 #1146 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:26 #1147 [Verbose] > |> List.rev
00:00:26 #1148 [Verbose] > |> List.skip 1
00:00:26 #1149 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1150 [Verbose] >
00:00:26 #1151 [Verbose] > "CA",
00:00:26 #1152 [Verbose] > fun input ->
00:00:26 #1153 [Verbose] > input
00:00:26 #1154 [Verbose] > |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..
00:00:26 #1155 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:26 #1156 [Verbose] > |> Seq.rev
00:00:26 #1157 [Verbose] > |> Seq.skip 1
00:00:26 #1158 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1159 [Verbose] >
00:00:26 #1160 [Verbose] > "CB",
00:00:26 #1161 [Verbose] > fun input ->
00:00:26 #1162 [Verbose] > input
00:00:26 #1163 [Verbose] > |> Seq.toArray
00:00:26 #1164 [Verbose] > |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[|
00:00:26 #1165 [Verbose] > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]]
00:00:26 #1166 [Verbose] > |> Array.rev
00:00:26 #1167 [Verbose] > |> Array.skip 1
00:00:26 #1168 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1169 [Verbose] >
00:00:26 #1170 [Verbose] > "D",
00:00:26 #1171 [Verbose] > fun input ->
00:00:26 #1172 [Verbose] > input
00:00:26 #1173 [Verbose] > |> Seq.toList
00:00:26 #1174 [Verbose] > |> fun list ->
00:00:26 #1175 [Verbose] > let rec loop (acc: char list list) = function
00:00:26 #1176 [Verbose] > | _ when acc.Length = list.Length -> acc
00:00:26 #1177 [Verbose] > | head :: tail ->
00:00:26 #1178 [Verbose] > let item = tail @ [[ head ]]
00:00:26 #1179 [Verbose] > loop (item :: acc) item
00:00:26 #1180 [Verbose] > | [[]] -> [[]]
00:00:26 #1181 [Verbose] > loop [[]] list
00:00:26 #1182 [Verbose] > |> List.rev
00:00:26 #1183 [Verbose] > |> List.map (List.toArray >> String)
00:00:26 #1184 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1185 [Verbose] >
00:00:26 #1186 [Verbose] > "E",
00:00:26 #1187 [Verbose] > fun input ->
00:00:26 #1188 [Verbose] > input
00:00:26 #1189 [Verbose] > |> Seq.toList
00:00:26 #1190 [Verbose] > |> fun list ->
00:00:26 #1191 [Verbose] > let rec loop (last: string) = function
00:00:26 #1192 [Verbose] > | head :: tail ->
00:00:26 #1193 [Verbose] > let item = last.[[1 .. input.Length - 1]] + string head
00:00:26 #1194 [Verbose] > item :: loop item tail
00:00:26 #1195 [Verbose] > | [[]] -> [[]]
00:00:26 #1196 [Verbose] > loop input list
00:00:26 #1197 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1198 [Verbose] >
00:00:26 #1199 [Verbose] > "F",
00:00:26 #1200 [Verbose] > fun input ->
00:00:26 #1201 [Verbose] > Array.singleton 0
00:00:26 #1202 [Verbose] > |> Array.append [[| 1 .. input.Length - 1 |]]
00:00:26 #1203 [Verbose] > |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:26 #1204 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1205 [Verbose] >
00:00:26 #1206 [Verbose] > "FA",
00:00:26 #1207 [Verbose] > fun input ->
00:00:26 #1208 [Verbose] > List.singleton 0
00:00:26 #1209 [Verbose] > |> List.append [[ 1 .. input.Length - 1 ]]
00:00:26 #1210 [Verbose] > |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:26 #1211 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1212 [Verbose] >
00:00:26 #1213 [Verbose] > "FB",
00:00:26 #1214 [Verbose] > fun input ->
00:00:26 #1215 [Verbose] > Seq.singleton 0
00:00:26 #1216 [Verbose] > |> Seq.append (seq { 1 .. input.Length - 1 })
00:00:26 #1217 [Verbose] > |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:26 #1218 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1219 [Verbose] >
00:00:26 #1220 [Verbose] > "FC",
00:00:26 #1221 [Verbose] > fun input ->
00:00:26 #1222 [Verbose] > Array.singleton 0
00:00:26 #1223 [Verbose] > |> Array.append [[| 1 .. input.Length - 1 |]]
00:00:26 #1224 [Verbose] > |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:26 #1225 [Verbose] > |> SpiralSm.concat " "
00:00:26 #1226 [Verbose] > ]]
00:00:26 #1227 [Verbose] > let testCases = seq {
00:00:26 #1228 [Verbose] > "abc", "bca cab abc"
00:00:26 #1229 [Verbose] > "abcde", "bcdea cdeab deabc eabcd abcde"
00:00:26 #1230 [Verbose] > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef
00:00:26 #1231 [Verbose] > hiabcdefg iabcdefgh abcdefghi"
00:00:26 #1232 [Verbose] > "abab", "baba abab baba abab"
00:00:26 #1233 [Verbose] > "aa", "aa aa"
00:00:26 #1234 [Verbose] > "z", "z"
00:00:26 #1235 [Verbose] > }
00:00:26 #1236 [Verbose] > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions
00:00:26 #1237 [Verbose] > testCases
00:00:26 #1238 [Verbose] > rotateStringsTests
00:00:26 #1239 [Verbose] > |> sortResultList
00:00:36 #1240 [Verbose] >
00:00:36 #1241 [Verbose] > ╭─[ 9.50s - stdout ]───────────────────────────────────────────────────────────╮
00:00:36 #1242 [Verbose] > │ │
00:00:36 #1243 [Verbose] > │ │
00:00:36 #1244 [Verbose] > │ Test: rotateStringsTests │
00:00:36 #1245 [Verbose] > │ │
00:00:36 #1246 [Verbose] > │ Solution: abc │
00:00:36 #1247 [Verbose] > │ Test case 1. A. Time: 2L │
00:00:36 #1248 [Verbose] > │ Test case 2. B. Time: 2L │
00:00:36 #1249 [Verbose] > │ Test case 3. C. Time: 1L │
00:00:36 #1250 [Verbose] > │ Test case 4. CA. Time: 3L │
00:00:36 #1251 [Verbose] > │ Test case 5. CB. Time: 2L │
00:00:36 #1252 [Verbose] > │ Test case 6. D. Time: 3L │
00:00:36 #1253 [Verbose] > │ Test case 7. E. Time: 1L │
00:00:36 #1254 [Verbose] > │ Test case 8. F. Time: 2L │
00:00:36 #1255 [Verbose] > │ Test case 9. FA. Time: 2L │
00:00:36 #1256 [Verbose] > │ Test case 10. FB. Time: 7L │
00:00:36 #1257 [Verbose] > │ Test case 11. FC. Time: 6L │
00:00:36 #1258 [Verbose] > │ │
00:00:36 #1259 [Verbose] > │ Solution: abcde │
00:00:36 #1260 [Verbose] > │ Test case 1. A. Time: 3L │
00:00:36 #1261 [Verbose] > │ Test case 2. B. Time: 0L │
00:00:36 #1262 [Verbose] > │ Test case 3. C. Time: 1L │
00:00:36 #1263 [Verbose] > │ Test case 4. CA. Time: 1L │
00:00:36 #1264 [Verbose] > │ Test case 5. CB. Time: 1L │
00:00:36 #1265 [Verbose] > │ Test case 6. D. Time: 4L │
00:00:36 #1266 [Verbose] > │ Test case 7. E. Time: 1L │
00:00:36 #1267 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:36 #1268 [Verbose] > │ Test case 9. FA. Time: 1L │
00:00:36 #1269 [Verbose] > │ Test case 10. FB. Time: 4L │
00:00:36 #1270 [Verbose] > │ Test case 11. FC. Time: 5L │
00:00:36 #1271 [Verbose] > │ │
00:00:36 #1272 [Verbose] > │ Solution: abcdefghi │
00:00:36 #1273 [Verbose] > │ Test case 1. A. Time: 5L │
00:00:36 #1274 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:36 #1275 [Verbose] > │ Test case 3. C. Time: 3L │
00:00:36 #1276 [Verbose] > │ Test case 4. CA. Time: 3L │
00:00:36 #1277 [Verbose] > │ Test case 5. CB. Time: 5L │
00:00:36 #1278 [Verbose] > │ Test case 6. D. Time: 7L │
00:00:36 #1279 [Verbose] > │ Test case 7. E. Time: 3L │
00:00:36 #1280 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:36 #1281 [Verbose] > │ Test case 9. FA. Time: 4L │
00:00:36 #1282 [Verbose] > │ Test case 10. FB. Time: 2L │
00:00:36 #1283 [Verbose] > │ Test case 11. FC. Time: 7L │
00:00:36 #1284 [Verbose] > │ │
00:00:36 #1285 [Verbose] > │ Solution: abab │
00:00:36 #1286 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:36 #1287 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:36 #1288 [Verbose] > │ Test case 3. C. Time: 1L │
00:00:36 #1289 [Verbose] > │ Test case 4. CA. Time: 1L │
00:00:36 #1290 [Verbose] > │ Test case 5. CB. Time: 1L │
00:00:36 #1291 [Verbose] > │ Test case 6. D. Time: 1L │
00:00:36 #1292 [Verbose] > │ Test case 7. E. Time: 0L │
00:00:36 #1293 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:36 #1294 [Verbose] > │ Test case 9. FA. Time: 1L │
00:00:36 #1295 [Verbose] > │ Test case 10. FB. Time: 1L │
00:00:36 #1296 [Verbose] > │ Test case 11. FC. Time: 4L │
00:00:36 #1297 [Verbose] > │ │
00:00:36 #1298 [Verbose] > │ Solution: aa │
00:00:36 #1299 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:36 #1300 [Verbose] > │ Test case 2. B. Time: 1L │
00:00:36 #1301 [Verbose] > │ Test case 3. C. Time: 0L │
00:00:36 #1302 [Verbose] > │ Test case 4. CA. Time: 0L │
00:00:36 #1303 [Verbose] > │ Test case 5. CB. Time: 0L │
00:00:36 #1304 [Verbose] > │ Test case 6. D. Time: 0L │
00:00:36 #1305 [Verbose] > │ Test case 7. E. Time: 0L │
00:00:36 #1306 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:36 #1307 [Verbose] > │ Test case 9. FA. Time: 0L │
00:00:36 #1308 [Verbose] > │ Test case 10. FB. Time: 0L │
00:00:36 #1309 [Verbose] > │ Test case 11. FC. Time: 4L │
00:00:36 #1310 [Verbose] > │ │
00:00:36 #1311 [Verbose] > │ Solution: z │
00:00:36 #1312 [Verbose] > │ Test case 1. A. Time: 0L │
00:00:36 #1313 [Verbose] > │ Test case 2. B. Time: 0L │
00:00:36 #1314 [Verbose] > │ Test case 3. C. Time: 0L │
00:00:36 #1315 [Verbose] > │ Test case 4. CA. Time: 0L │
00:00:36 #1316 [Verbose] > │ Test case 5. CB. Time: 0L │
00:00:36 #1317 [Verbose] > │ Test case 6. D. Time: 0L │
00:00:36 #1318 [Verbose] > │ Test case 7. E. Time: 0L │
00:00:36 #1319 [Verbose] > │ Test case 8. F. Time: 0L │
00:00:36 #1320 [Verbose] > │ Test case 9. FA. Time: 0L │
00:00:36 #1321 [Verbose] > │ Test case 10. FB. Time: 1L │
00:00:36 #1322 [Verbose] > │ Test case 11. FC. Time: 5L │
00:00:36 #1323 [Verbose] > │ │
00:00:36 #1324 [Verbose] > │ Input | Expected │
00:00:36 #1325 [Verbose] > │ │
00:00:36 #1326 [Verbose] > │ | Result │
00:00:36 #1327 [Verbose] > │ │
00:00:36 #1328 [Verbose] > │ | Best │
00:00:36 #1329 [Verbose] > │ --- | --- │
00:00:36 #1330 [Verbose] > │ │
00:00:36 #1331 [Verbose] > │ | --- │
00:00:36 #1332 [Verbose] > │ │
00:00:36 #1333 [Verbose] > │ | --- │
00:00:36 #1334 [Verbose] > │ abc | bca cab abc │
00:00:36 #1335 [Verbose] > │ │
00:00:36 #1336 [Verbose] > │ | bca cab abc │
00:00:36 #1337 [Verbose] > │ │
00:00:36 #1338 [Verbose] > │ | (3, 1) │
00:00:36 #1339 [Verbose] > │ abcde | bcdea cdeab deabc eabcd abcde │
00:00:36 #1340 [Verbose] > │ | bcdea cdeab deabc eabcd abcde │
00:00:36 #1341 [Verbose] > │ | (2, 0) │
00:00:36 #1342 [Verbose] > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef │
00:00:36 #1343 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd │
00:00:36 #1344 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | (8, 0) │
00:00:36 #1345 [Verbose] > │ abab | baba abab baba abab │
00:00:36 #1346 [Verbose] > │ | baba abab baba abab │
00:00:36 #1347 [Verbose] > │ | (1, 0) │
00:00:36 #1348 [Verbose] > │ aa | aa aa │
00:00:36 #1349 [Verbose] > │ │
00:00:36 #1350 [Verbose] > │ | aa aa │
00:00:36 #1351 [Verbose] > │ │
00:00:36 #1352 [Verbose] > │ | (1, 0) │
00:00:36 #1353 [Verbose] > │ z | z │
00:00:36 #1354 [Verbose] > │ │
00:00:36 #1355 [Verbose] > │ | z │
00:00:36 #1356 [Verbose] > │ │
00:00:36 #1357 [Verbose] > │ | (1, 0) │
00:00:36 #1358 [Verbose] > │ │
00:00:36 #1359 [Verbose] > │ Average Ranking │
00:00:36 #1360 [Verbose] > │ Test case 2. Average Time: 0L │
00:00:36 #1361 [Verbose] > │ Test case 7. Average Time: 0L │
00:00:36 #1362 [Verbose] > │ Test case 8. Average Time: 0L │
00:00:36 #1363 [Verbose] > │ Test case 1. Average Time: 1L │
00:00:36 #1364 [Verbose] > │ Test case 3. Average Time: 1L │
00:00:36 #1365 [Verbose] > │ Test case 4. Average Time: 1L │
00:00:36 #1366 [Verbose] > │ Test case 5. Average Time: 1L │
00:00:36 #1367 [Verbose] > │ Test case 9. Average Time: 1L │
00:00:36 #1368 [Verbose] > │ Test case 6. Average Time: 2L │
00:00:36 #1369 [Verbose] > │ Test case 10. Average Time: 2L │
00:00:36 #1370 [Verbose] > │ Test case 11. Average Time: 5L │
00:00:36 #1371 [Verbose] > │ │
00:00:36 #1372 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #1373 [Verbose] >
00:00:36 #1374 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:00:36 #1375 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:00:36 #1376 [Verbose] > │ ## rotate_strings_tests │
00:00:36 #1377 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:00:36 #1378 [Verbose] >
00:00:36 #1379 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:00:36 #1380 [Verbose] > // // test
00:00:36 #1381 [Verbose] > // // timeout=60000
00:00:36 #1382 [Verbose] > // // print_code=true
00:00:36 #1383 [Verbose] >
00:00:36 #1384 [Verbose] > inl get_solutions () =
00:00:36 #1385 [Verbose] > [[
00:00:36 #1386 [Verbose] > // "A",
00:00:36 #1387 [Verbose] > // fun (input : string) =>
00:00:36 #1388 [Verbose] > // let resultList =
00:00:36 #1389 [Verbose] > // List.fold (fun acc x =>
00:00:36 #1390 [Verbose] > // let rotate (text : string) (letter : string) =
00:00:36 #1391 [Verbose] > text.Substring (1, input.Length - 1) + letter
00:00:36 #1392 [Verbose] > // [[ rotate (if acc.IsEmpty then input else acc.Head)
00:00:36 #1393 [Verbose] > (string x) ]] /@ acc
00:00:36 #1394 [Verbose] > // ) [[]] (Seq.toList input)
00:00:36 #1395 [Verbose] >
00:00:36 #1396 [Verbose] > // List.foldBack (fun acc x => x + acc + " ") resultList ""
00:00:36 #1397 [Verbose] > // |> fun x => x.TrimEnd ()
00:00:36 #1398 [Verbose] >
00:00:36 #1399 [Verbose] > // "B",
00:00:36 #1400 [Verbose] > // fun input =>
00:00:36 #1401 [Verbose] > // input
00:00:36 #1402 [Verbose] > // |> Seq.toList
00:00:36 #1403 [Verbose] > // |> List.fold (fun (acc : string list) letter =>
00:00:36 #1404 [Verbose] > // let last =
00:00:36 #1405 [Verbose] > // if acc.IsEmpty
00:00:36 #1406 [Verbose] > // then input
00:00:36 #1407 [Verbose] > // else acc.Head
00:00:36 #1408 [Verbose] >
00:00:36 #1409 [Verbose] > // let item = last.[[1 .. input.Length - 1]] + string letter
00:00:36 #1410 [Verbose] >
00:00:36 #1411 [Verbose] > // item :: acc
00:00:36 #1412 [Verbose] > // ) [[]]
00:00:36 #1413 [Verbose] > // |> List.rev
00:00:36 #1414 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1415 [Verbose] >
00:00:36 #1416 [Verbose] > // "C",
00:00:36 #1417 [Verbose] > // fun input =>
00:00:36 #1418 [Verbose] > // input
00:00:36 #1419 [Verbose] > // |> Seq.toList
00:00:36 #1420 [Verbose] > // |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:00:36 #1421 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:36 #1422 [Verbose] > // |> List.rev
00:00:36 #1423 [Verbose] > // |> List.skip 1
00:00:36 #1424 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1425 [Verbose] >
00:00:36 #1426 [Verbose] > // "CA",
00:00:36 #1427 [Verbose] > // fun input =>
00:00:36 #1428 [Verbose] > // input
00:00:36 #1429 [Verbose] > // |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..
00:00:36 #1430 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]
00:00:36 #1431 [Verbose] > // |> Seq.rev
00:00:36 #1432 [Verbose] > // |> Seq.skip 1
00:00:36 #1433 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1434 [Verbose] >
00:00:36 #1435 [Verbose] > // "CB",
00:00:36 #1436 [Verbose] > // fun input =>
00:00:36 #1437 [Verbose] > // input
00:00:36 #1438 [Verbose] > // |> Seq.toArray
00:00:36 #1439 [Verbose] > // |> Array.fold (fun (acc : a _ string) letter => acc |>
00:00:36 #1440 [Verbose] > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]]))
00:00:36 #1441 [Verbose] > (a ;[[ input ]])
00:00:36 #1442 [Verbose] > // |> Array.rev
00:00:36 #1443 [Verbose] > // |> Array.skip 1
00:00:36 #1444 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1445 [Verbose] >
00:00:36 #1446 [Verbose] > // "D",
00:00:36 #1447 [Verbose] > // fun input =>
00:00:36 #1448 [Verbose] > // input
00:00:36 #1449 [Verbose] > // |> Seq.toList
00:00:36 #1450 [Verbose] > // |> fun list =>
00:00:36 #1451 [Verbose] > // let rec loop (acc : list (list char)) = function
00:00:36 #1452 [Verbose] > // | _ when acc.Length = list.Length => acc
00:00:36 #1453 [Verbose] > // | head :: tail =>
00:00:36 #1454 [Verbose] > // let item = tail /@ [[ head ]]
00:00:36 #1455 [Verbose] > // loop (item :: acc) item
00:00:36 #1456 [Verbose] > // | [[]] => [[]]
00:00:36 #1457 [Verbose] > // loop [[]] list
00:00:36 #1458 [Verbose] > // |> List.rev
00:00:36 #1459 [Verbose] > // |> List.map (List.toArray >> String)
00:00:36 #1460 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1461 [Verbose] >
00:00:36 #1462 [Verbose] > // "E",
00:00:36 #1463 [Verbose] > // fun input =>
00:00:36 #1464 [Verbose] > // input
00:00:36 #1465 [Verbose] > // |> Seq.toList
00:00:36 #1466 [Verbose] > // |> fun list =>
00:00:36 #1467 [Verbose] > // let rec loop (last : string) = function
00:00:36 #1468 [Verbose] > // | head :: tail =>
00:00:36 #1469 [Verbose] > // let item = last.[[1 .. input.Length - 1]] + string
00:00:36 #1470 [Verbose] > head
00:00:36 #1471 [Verbose] > // item :: loop item tail
00:00:36 #1472 [Verbose] > // | [[]] => [[]]
00:00:36 #1473 [Verbose] > // loop input list
00:00:36 #1474 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1475 [Verbose] >
00:00:36 #1476 [Verbose] > "F",
00:00:36 #1477 [Verbose] > fun input =>
00:00:36 #1478 [Verbose] > // Array.singleton 0
00:00:36 #1479 [Verbose] > // |> Array.append [[| 1 .. input.Length - 1 |]]
00:00:36 #1480 [Verbose] > // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:36 #1481 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1482 [Verbose] > inl input_length = input |> sm.length
00:00:36 #1483 [Verbose] > am.singleton 0i32
00:00:36 #1484 [Verbose] > |> am.append (am'.init_series 1 (input_length - 1) 1)
00:00:36 #1485 [Verbose] > |> am.map (fun i =>
00:00:36 #1486 [Verbose] > inl a = input |> sm'.slice i (input_length - 1)
00:00:36 #1487 [Verbose] > inl b = input |> sm'.slice 0 (i - 1)
00:00:36 #1488 [Verbose] > $"!a + !b" : string
00:00:36 #1489 [Verbose] > )
00:00:36 #1490 [Verbose] > |> seq.of_array
00:00:36 #1491 [Verbose] > |> sm'.concat " "
00:00:36 #1492 [Verbose] >
00:00:36 #1493 [Verbose] > "FA",
00:00:36 #1494 [Verbose] > fun input =>
00:00:36 #1495 [Verbose] > // List.singleton 0
00:00:36 #1496 [Verbose] > // |> List.append [[ 1 .. input.Length - 1 ]]
00:00:36 #1497 [Verbose] > // // |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:36 #1498 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1499 [Verbose] > inl input_length = input |> sm.length
00:00:36 #1500 [Verbose] > listm.singleton 0i32
00:00:36 #1501 [Verbose] > |> listm.append (listm'.init_series 1 (input_length - 1) 1)
00:00:36 #1502 [Verbose] > |> listm.map (fun i =>
00:00:36 #1503 [Verbose] > inl a = input |> sm'.slice i (input_length - 1)
00:00:36 #1504 [Verbose] > inl b = if i = 0 then "" else input |> sm'.slice 0 (i - 1)
00:00:36 #1505 [Verbose] > $"!a + !b" : string
00:00:36 #1506 [Verbose] > )
00:00:36 #1507 [Verbose] > |> listm.toArray
00:00:36 #1508 [Verbose] > |> fun x => x : a i32 _
00:00:36 #1509 [Verbose] > |> seq.of_array
00:00:36 #1510 [Verbose] > |> sm'.concat " "
00:00:36 #1511 [Verbose] >
00:00:36 #1512 [Verbose] > // "FB",
00:00:36 #1513 [Verbose] > // fun input =>
00:00:36 #1514 [Verbose] > // Seq.singleton 0
00:00:36 #1515 [Verbose] > // // |> Seq.append (seq { 1 .. input.Length - 1 })
00:00:36 #1516 [Verbose] > // // |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])
00:00:36 #1517 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1518 [Verbose] >
00:00:36 #1519 [Verbose] > // "FC",
00:00:36 #1520 [Verbose] > // fun input =>
00:00:36 #1521 [Verbose] > // Array.singleton 0
00:00:36 #1522 [Verbose] > // |> Array.append (a ;[[ 1 .. input.Length - 1 ]])
00:00:36 #1523 [Verbose] > // // |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ ..
00:00:36 #1524 [Verbose] > i - 1 ]])
00:00:36 #1525 [Verbose] > // |> SpiralSm.concat " "
00:00:36 #1526 [Verbose] > ]]
00:00:36 #1527 [Verbose] >
00:00:36 #1528 [Verbose] > inl rec rotate_strings_tests () =
00:00:36 #1529 [Verbose] > inl test_cases = [[
00:00:36 #1530 [Verbose] > "abc", "bca cab abc"
00:00:36 #1531 [Verbose] > "abcde", "bcdea cdeab deabc eabcd abcde"
00:00:36 #1532 [Verbose] > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde
00:00:36 #1533 [Verbose] > ghiabcdef hiabcdefg iabcdefgh abcdefghi"
00:00:36 #1534 [Verbose] > "abab", "baba abab baba abab"
00:00:36 #1535 [Verbose] > "aa", "aa aa"
00:00:36 #1536 [Verbose] > "z", "z"
00:00:36 #1537 [Verbose] > ]]
00:00:36 #1538 [Verbose] >
00:00:36 #1539 [Verbose] > inl solutions = get_solutions ()
00:00:36 #1540 [Verbose] >
00:00:36 #1541 [Verbose] > // inl is_fast () = true
00:00:36 #1542 [Verbose] >
00:00:36 #1543 [Verbose] > inl count =
00:00:36 #1544 [Verbose] > if is_fast ()
00:00:36 #1545 [Verbose] > then 1000i32
00:00:36 #1546 [Verbose] > else 2000000i32
00:00:36 #1547 [Verbose] >
00:00:36 #1548 [Verbose] > run_all (nameof rotate_strings_tests) count solutions test_cases
00:00:36 #1549 [Verbose] > |> sort_result_list
00:00:36 #1550 [Verbose] >
00:00:36 #1551 [Verbose] > rotate_strings_tests ()
00:00:36 #1552 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-3943-4368-40caa688cdd2\main.spi
00:01:02 #1553 [Verbose] >
00:01:02 #1554 [Verbose] > ╭─[ 26.15s - stdout ]──────────────────────────────────────────────────────────╮
00:01:02 #1555 [Verbose] > │ type UH0 = │
00:01:02 #1556 [Verbose] > │ | UH0_0 │
00:01:02 #1557 [Verbose] > │ | UH0_1 of string * string * UH0 │
00:01:02 #1558 [Verbose] > │ and Mut0 = {mutable l0 : uint64} │
00:01:02 #1559 [Verbose] > │ and Mut1 = {mutable l0 : int32} │
00:01:02 #1560 [Verbose] > │ and UH1 = │
00:01:02 #1561 [Verbose] > │ | UH1_0 │
00:01:02 #1562 [Verbose] > │ | UH1_1 of int32 * UH1 │
00:01:02 #1563 [Verbose] > │ and UH2 = │
00:01:02 #1564 [Verbose] > │ | UH2_0 │
00:01:02 #1565 [Verbose] > │ | UH2_1 of string * UH2 │
00:01:02 #1566 [Verbose] > │ and UH3 = │
00:01:02 #1567 [Verbose] > │ | UH3_0 │
00:01:02 #1568 [Verbose] > │ | UH3_1 of int32 * string * (string -> string) * UH3 │
00:01:02 #1569 [Verbose] > │ and [<Struct>] US0 = │
00:01:02 #1570 [Verbose] > │ | US0_0 of f0_0 : System.ConsoleColor │
00:01:02 #1571 [Verbose] > │ | US0_1 │
00:01:02 #1572 [Verbose] > │ and UH4 = │
00:01:02 #1573 [Verbose] > │ | UH4_0 │
00:01:02 #1574 [Verbose] > │ | UH4_1 of int64 * int64 * UH4 │
00:01:02 #1575 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH4; mutable l2 : int64} │
00:01:02 #1576 [Verbose] > │ and UH5 = │
00:01:02 #1577 [Verbose] > │ | UH5_0 │
00:01:02 #1578 [Verbose] > │ | UH5_1 of UH2 * US0 * UH5 │
00:01:02 #1579 [Verbose] > │ and [<Struct>] US1 = │
00:01:02 #1580 [Verbose] > │ | US1_0 of f0_0 : int64 │
00:01:02 #1581 [Verbose] > │ | US1_1 │
00:01:02 #1582 [Verbose] > │ and UH6 = │
00:01:02 #1583 [Verbose] > │ | UH6_0 │
00:01:02 #1584 [Verbose] > │ | UH6_1 of int32 * int64 * UH6 │
00:01:02 #1585 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH6; mutable l2 : int32} │
00:01:02 #1586 [Verbose] > │ and UH7 = │
00:01:02 #1587 [Verbose] > │ | UH7_0 │
00:01:02 #1588 [Verbose] > │ | UH7_1 of int32 * string * UH7 │
00:01:02 #1589 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 = │
00:01:02 #1590 [Verbose] > │ match v0 with │
00:01:02 #1591 [Verbose] > │ | UH0_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1592 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:01:02 #1593 [Verbose] > │ method2(v4, v5) │
00:01:02 #1594 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:01:02 #1595 [Verbose] > │ v1 │
00:01:02 #1596 [Verbose] > │ and method3 (v0 : (struct (string * string) []), v1 : UH0, v2 : uint64) : │
00:01:02 #1597 [Verbose] > │ uint64 = │
00:01:02 #1598 [Verbose] > │ match v1 with │
00:01:02 #1599 [Verbose] > │ | UH0_1(v3, v4, v5) -> (* Cons *) │
00:01:02 #1600 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:02 #1601 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:01:02 #1602 [Verbose] > │ method3(v0, v5, v6) │
00:01:02 #1603 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:01:02 #1604 [Verbose] > │ v2 │
00:01:02 #1605 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string) []) = │
00:01:02 #1606 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:02 #1607 [Verbose] > │ let v2 : uint64 = method2(v0, v1) │
00:01:02 #1608 [Verbose] > │ let v3 : (struct (string * string) []) = Array.zeroCreate<struct (string │
00:01:02 #1609 [Verbose] > │ * string)> (System.Convert.ToInt32(v2)) │
00:01:02 #1610 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:02 #1611 [Verbose] > │ let v5 : uint64 = method3(v3, v0, v4) │
00:01:02 #1612 [Verbose] > │ v3 │
00:01:02 #1613 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool = │
00:01:02 #1614 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:02 #1615 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:02 #1616 [Verbose] > │ v3 │
00:01:02 #1617 [Verbose] > │ and method5 (v0 : int32, v1 : Mut1) : bool = │
00:01:02 #1618 [Verbose] > │ let v2 : int32 = v1.l0 │
00:01:02 #1619 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:02 #1620 [Verbose] > │ v3 │
00:01:02 #1621 [Verbose] > │ and closure1 () (v0 : string) : string = │
00:01:02 #1622 [Verbose] > │ let v1 : int32 = v0.Length │
00:01:02 #1623 [Verbose] > │ let v2 : (int32 []) = Array.zeroCreate<int32> (1) │
00:01:02 #1624 [Verbose] > │ v2.[int 0] <- 0 │
00:01:02 #1625 [Verbose] > │ let v3 : int32 = v1 - 1 │
00:01:02 #1626 [Verbose] > │ let v4 : int32 = v3 - 1 │
00:01:02 #1627 [Verbose] > │ let v5 : int32 = v4 + 1 │
00:01:02 #1628 [Verbose] > │ let v6 : (int32 []) = Array.zeroCreate<int32> (v5) │
00:01:02 #1629 [Verbose] > │ let v7 : Mut1 = {l0 = 0} : Mut1 │
00:01:02 #1630 [Verbose] > │ while method5(v5, v7) do │
00:01:02 #1631 [Verbose] > │ let v9 : int32 = v7.l0 │
00:01:02 #1632 [Verbose] > │ let v10 : int32 = 1 + v9 │
00:01:02 #1633 [Verbose] > │ v6.[int v9] <- v10 │
00:01:02 #1634 [Verbose] > │ let v11 : int32 = v9 + 1 │
00:01:02 #1635 [Verbose] > │ v7.l0 <- v11 │
00:01:02 #1636 [Verbose] > │ () │
00:01:02 #1637 [Verbose] > │ let v12 : int32 = v6.Length │
00:01:02 #1638 [Verbose] > │ let v13 : int32 = v2.Length │
00:01:02 #1639 [Verbose] > │ let v14 : int32 = v12 + v13 │
00:01:02 #1640 [Verbose] > │ let v15 : (int32 []) = Array.zeroCreate<int32> (v14) │
00:01:02 #1641 [Verbose] > │ let v16 : Mut1 = {l0 = 0} : Mut1 │
00:01:02 #1642 [Verbose] > │ while method5(v14, v16) do │
00:01:02 #1643 [Verbose] > │ let v18 : int32 = v16.l0 │
00:01:02 #1644 [Verbose] > │ let v19 : bool = v18 < v12 │
00:01:02 #1645 [Verbose] > │ let v23 : int32 = │
00:01:02 #1646 [Verbose] > │ if v19 then │
00:01:02 #1647 [Verbose] > │ let v20 : int32 = v6.[int v18] │
00:01:02 #1648 [Verbose] > │ v20 │
00:01:02 #1649 [Verbose] > │ else │
00:01:02 #1650 [Verbose] > │ let v21 : int32 = v18 - v12 │
00:01:02 #1651 [Verbose] > │ let v22 : int32 = v2.[int v21] │
00:01:02 #1652 [Verbose] > │ v22 │
00:01:02 #1653 [Verbose] > │ v15.[int v18] <- v23 │
00:01:02 #1654 [Verbose] > │ let v24 : int32 = v18 + 1 │
00:01:02 #1655 [Verbose] > │ v16.l0 <- v24 │
00:01:02 #1656 [Verbose] > │ () │
00:01:02 #1657 [Verbose] > │ let v25 : int32 = v15.Length │
00:01:02 #1658 [Verbose] > │ let v26 : (string []) = Array.zeroCreate<string> (v25) │
00:01:02 #1659 [Verbose] > │ let v27 : Mut1 = {l0 = 0} : Mut1 │
00:01:02 #1660 [Verbose] > │ while method5(v25, v27) do │
00:01:02 #1661 [Verbose] > │ let v29 : int32 = v27.l0 │
00:01:02 #1662 [Verbose] > │ let v30 : int32 = v15.[int v29] │
00:01:02 #1663 [Verbose] > │ let v31 : string = v0.[int v30..int v3] │
00:01:02 #1664 [Verbose] > │ let v32 : int32 = v30 - 1 │
00:01:02 #1665 [Verbose] > │ let v33 : string = v0.[int 0..int v32] │
00:01:02 #1666 [Verbose] > │ let v34 : string = v31 + v33 │
00:01:02 #1667 [Verbose] > │ v26.[int v29] <- v34 │
00:01:02 #1668 [Verbose] > │ let v35 : int32 = v29 + 1 │
00:01:02 #1669 [Verbose] > │ v27.l0 <- v35 │
00:01:02 #1670 [Verbose] > │ () │
00:01:02 #1671 [Verbose] > │ let v36 : ((string []) -> string seq) = Seq.ofArray │
00:01:02 #1672 [Verbose] > │ let v37 : string seq = v36 v26 │
00:01:02 #1673 [Verbose] > │ let v38 : string = " " │
00:01:02 #1674 [Verbose] > │ let v39 : string = v37 |> String.concat v38 │
00:01:02 #1675 [Verbose] > │ v39 │
00:01:02 #1676 [Verbose] > │ and method6 (v0 : float, v1 : float) : UH1 = │
00:01:02 #1677 [Verbose] > │ let v2 : bool = v1 < v0 │
00:01:02 #1678 [Verbose] > │ if v2 then │
00:01:02 #1679 [Verbose] > │ let v3 : int32 = int32 v1 │
00:01:02 #1680 [Verbose] > │ let v4 : int32 = 1 + v3 │
00:01:02 #1681 [Verbose] > │ let v5 : float = v1 + 1.0 │
00:01:02 #1682 [Verbose] > │ let v6 : UH1 = method6(v0, v5) │
00:01:02 #1683 [Verbose] > │ UH1_1(v4, v6) │
00:01:02 #1684 [Verbose] > │ else │
00:01:02 #1685 [Verbose] > │ UH1_0 │
00:01:02 #1686 [Verbose] > │ and method7 (v0 : UH1, v1 : UH1) : UH1 = │
00:01:02 #1687 [Verbose] > │ match v0 with │
00:01:02 #1688 [Verbose] > │ | UH1_1(v2, v3) -> (* Cons *) │
00:01:02 #1689 [Verbose] > │ let v4 : UH1 = method7(v3, v1) │
00:01:02 #1690 [Verbose] > │ UH1_1(v2, v4) │
00:01:02 #1691 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:01:02 #1692 [Verbose] > │ v1 │
00:01:02 #1693 [Verbose] > │ and method8 (v0 : string, v1 : int32, v2 : UH1, v3 : UH2) : UH2 = │
00:01:02 #1694 [Verbose] > │ match v2 with │
00:01:02 #1695 [Verbose] > │ | UH1_1(v4, v5) -> (* Cons *) │
00:01:02 #1696 [Verbose] > │ let v6 : UH2 = method8(v0, v1, v5, v3) │
00:01:02 #1697 [Verbose] > │ let v7 : int32 = v1 - 1 │
00:01:02 #1698 [Verbose] > │ let v8 : string = v0.[int v4..int v7] │
00:01:02 #1699 [Verbose] > │ let v9 : bool = v4 = 0 │
00:01:02 #1700 [Verbose] > │ let v13 : string = │
00:01:02 #1701 [Verbose] > │ if v9 then │
00:01:02 #1702 [Verbose] > │ let v10 : string = "" │
00:01:02 #1703 [Verbose] > │ v10 │
00:01:02 #1704 [Verbose] > │ else │
00:01:02 #1705 [Verbose] > │ let v11 : int32 = v4 - 1 │
00:01:02 #1706 [Verbose] > │ let v12 : string = v0.[int 0..int v11] │
00:01:02 #1707 [Verbose] > │ v12 │
00:01:02 #1708 [Verbose] > │ let v14 : string = v8 + v13 │
00:01:02 #1709 [Verbose] > │ UH2_1(v14, v6) │
00:01:02 #1710 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:01:02 #1711 [Verbose] > │ v3 │
00:01:02 #1712 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 = │
00:01:02 #1713 [Verbose] > │ match v0 with │
00:01:02 #1714 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:01:02 #1715 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:01:02 #1716 [Verbose] > │ method10(v3, v4) │
00:01:02 #1717 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:02 #1718 [Verbose] > │ v1 │
00:01:02 #1719 [Verbose] > │ and method11 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:01:02 #1720 [Verbose] > │ match v1 with │
00:01:02 #1721 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:01:02 #1722 [Verbose] > │ v0.[int v2] <- v3 │
00:01:02 #1723 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:01:02 #1724 [Verbose] > │ method11(v0, v4, v5) │
00:01:02 #1725 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:02 #1726 [Verbose] > │ v2 │
00:01:02 #1727 [Verbose] > │ and method9 (v0 : UH2) : (string []) = │
00:01:02 #1728 [Verbose] > │ let v1 : int32 = 0 │
00:01:02 #1729 [Verbose] > │ let v2 : int32 = method10(v0, v1) │
00:01:02 #1730 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:01:02 #1731 [Verbose] > │ let v4 : int32 = 0 │
00:01:02 #1732 [Verbose] > │ let v5 : int32 = method11(v3, v0, v4) │
00:01:02 #1733 [Verbose] > │ v3 │
00:01:02 #1734 [Verbose] > │ and closure2 () (v0 : string) : string = │
00:01:02 #1735 [Verbose] > │ let v1 : int32 = v0.Length │
00:01:02 #1736 [Verbose] > │ let v2 : int32 = v1 - 1 │
00:01:02 #1737 [Verbose] > │ let v3 : int32 = v2 - 1 │
00:01:02 #1738 [Verbose] > │ let v4 : float = float v3 │
00:01:02 #1739 [Verbose] > │ let v5 : float = v4 + 1.0 │
00:01:02 #1740 [Verbose] > │ let v6 : float = 0.0 │
00:01:02 #1741 [Verbose] > │ let v7 : UH1 = method6(v5, v6) │
00:01:02 #1742 [Verbose] > │ let v8 : int32 = 0 │
00:01:02 #1743 [Verbose] > │ let v9 : UH1 = UH1_0 │
00:01:02 #1744 [Verbose] > │ let v10 : UH1 = UH1_1(v8, v9) │
00:01:02 #1745 [Verbose] > │ let v11 : UH1 = method7(v7, v10) │
00:01:02 #1746 [Verbose] > │ let v12 : UH2 = UH2_0 │
00:01:02 #1747 [Verbose] > │ let v13 : UH2 = method8(v0, v1, v11, v12) │
00:01:02 #1748 [Verbose] > │ let v14 : (string []) = method9(v13) │
00:01:02 #1749 [Verbose] > │ let v15 : ((string []) -> string seq) = Seq.ofArray │
00:01:02 #1750 [Verbose] > │ let v16 : string seq = v15 v14 │
00:01:02 #1751 [Verbose] > │ let v17 : string = " " │
00:01:02 #1752 [Verbose] > │ let v18 : string = v16 |> String.concat v17 │
00:01:02 #1753 [Verbose] > │ v18 │
00:01:02 #1754 [Verbose] > │ and method13 (v0 : UH3, v1 : uint64) : uint64 = │
00:01:02 #1755 [Verbose] > │ match v0 with │
00:01:02 #1756 [Verbose] > │ | UH3_1(v2, v3, v4, v5) -> (* Cons *) │
00:01:02 #1757 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:01:02 #1758 [Verbose] > │ method13(v5, v6) │
00:01:02 #1759 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:01:02 #1760 [Verbose] > │ v1 │
00:01:02 #1761 [Verbose] > │ and method14 (v0 : (struct (int32 * string * (string -> string)) []), v1 : │
00:01:02 #1762 [Verbose] > │ UH3, v2 : uint64) : uint64 = │
00:01:02 #1763 [Verbose] > │ match v1 with │
00:01:02 #1764 [Verbose] > │ | UH3_1(v3, v4, v5, v6) -> (* Cons *) │
00:01:02 #1765 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:01:02 #1766 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:01:02 #1767 [Verbose] > │ method14(v0, v6, v7) │
00:01:02 #1768 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:01:02 #1769 [Verbose] > │ v2 │
00:01:02 #1770 [Verbose] > │ and method12 (v0 : UH3) : (struct (int32 * string * (string -> string)) []) │
00:01:02 #1771 [Verbose] > │ = │
00:01:02 #1772 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:02 #1773 [Verbose] > │ let v2 : uint64 = method13(v0, v1) │
00:01:02 #1774 [Verbose] > │ let v3 : (struct (int32 * string * (string -> string)) []) = │
00:01:02 #1775 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (string -> string))> │
00:01:02 #1776 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:02 #1777 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:02 #1778 [Verbose] > │ let v5 : uint64 = method14(v3, v0, v4) │
00:01:02 #1779 [Verbose] > │ v3 │
00:01:02 #1780 [Verbose] > │ and method15 (v0 : Mut1) : bool = │
00:01:02 #1781 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:02 #1782 [Verbose] > │ let v2 : bool = v1 < 2000001 │
00:01:02 #1783 [Verbose] > │ v2 │
00:01:02 #1784 [Verbose] > │ and closure3 (v0 : string, v1 : (string -> string)) (v2 : int32) : string = │
00:01:02 #1785 [Verbose] > │ v1 v0 │
00:01:02 #1786 [Verbose] > │ and method16 (v0 : string, v1 : (string []), v2 : uint64) : bool = │
00:01:02 #1787 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:01:02 #1788 [Verbose] > │ let v4 : bool = v2 < v3 │
00:01:02 #1789 [Verbose] > │ if v4 then │
00:01:02 #1790 [Verbose] > │ let v5 : string = v1.[int v2] │
00:01:02 #1791 [Verbose] > │ let v6 : bool = v0 = v5 │
00:01:02 #1792 [Verbose] > │ if v6 then │
00:01:02 #1793 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:01:02 #1794 [Verbose] > │ method16(v0, v1, v7) │
00:01:02 #1795 [Verbose] > │ else │
00:01:02 #1796 [Verbose] > │ false │
00:01:02 #1797 [Verbose] > │ else │
00:01:02 #1798 [Verbose] > │ true │
00:01:02 #1799 [Verbose] > │ and method17 (v0 : uint64, v1 : Mut2) : bool = │
00:01:02 #1800 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:02 #1801 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:02 #1802 [Verbose] > │ v3 │
00:01:02 #1803 [Verbose] > │ and method18 (v0 : UH4, v1 : UH4) : UH4 = │
00:01:02 #1804 [Verbose] > │ match v0 with │
00:01:02 #1805 [Verbose] > │ | UH4_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1806 [Verbose] > │ let v5 : UH4 = UH4_1(v2, v3, v1) │
00:01:02 #1807 [Verbose] > │ method18(v4, v5) │
00:01:02 #1808 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:01:02 #1809 [Verbose] > │ v1 │
00:01:02 #1810 [Verbose] > │ and method20 (v0 : UH4, v1 : int32) : int32 = │
00:01:02 #1811 [Verbose] > │ match v0 with │
00:01:02 #1812 [Verbose] > │ | UH4_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1813 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:01:02 #1814 [Verbose] > │ method20(v4, v5) │
00:01:02 #1815 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:01:02 #1816 [Verbose] > │ v1 │
00:01:02 #1817 [Verbose] > │ and method21 (v0 : (struct (int64 * int64) []), v1 : UH4, v2 : int32) : │
00:01:02 #1818 [Verbose] > │ int32 = │
00:01:02 #1819 [Verbose] > │ match v1 with │
00:01:02 #1820 [Verbose] > │ | UH4_1(v3, v4, v5) -> (* Cons *) │
00:01:02 #1821 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:02 #1822 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:01:02 #1823 [Verbose] > │ method21(v0, v5, v6) │
00:01:02 #1824 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:01:02 #1825 [Verbose] > │ v2 │
00:01:02 #1826 [Verbose] > │ and method19 (v0 : UH4) : (struct (int64 * int64) []) = │
00:01:02 #1827 [Verbose] > │ let v1 : int32 = 0 │
00:01:02 #1828 [Verbose] > │ let v2 : int32 = method20(v0, v1) │
00:01:02 #1829 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:01:02 #1830 [Verbose] > │ int64)> (v2) │
00:01:02 #1831 [Verbose] > │ let v4 : int32 = 0 │
00:01:02 #1832 [Verbose] > │ let v5 : int32 = method21(v3, v0, v4) │
00:01:02 #1833 [Verbose] > │ v3 │
00:01:02 #1834 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 = │
00:01:02 #1835 [Verbose] > │ v1 │
00:01:02 #1836 [Verbose] > │ and method23 (v0 : UH5, v1 : uint64) : uint64 = │
00:01:02 #1837 [Verbose] > │ match v0 with │
00:01:02 #1838 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1839 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:01:02 #1840 [Verbose] > │ method23(v4, v5) │
00:01:02 #1841 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:01:02 #1842 [Verbose] > │ v1 │
00:01:02 #1843 [Verbose] > │ and method24 (v0 : (struct (UH2 * US0) []), v1 : UH5, v2 : uint64) : uint64 │
00:01:02 #1844 [Verbose] > │ = │
00:01:02 #1845 [Verbose] > │ match v1 with │
00:01:02 #1846 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:01:02 #1847 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:02 #1848 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:01:02 #1849 [Verbose] > │ method24(v0, v5, v6) │
00:01:02 #1850 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:01:02 #1851 [Verbose] > │ v2 │
00:01:02 #1852 [Verbose] > │ and method22 (v0 : UH5) : (struct (UH2 * US0) []) = │
00:01:02 #1853 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:02 #1854 [Verbose] > │ let v2 : uint64 = method23(v0, v1) │
00:01:02 #1855 [Verbose] > │ let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │
00:01:02 #1856 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:02 #1857 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:02 #1858 [Verbose] > │ let v5 : uint64 = method24(v3, v0, v4) │
00:01:02 #1859 [Verbose] > │ v3 │
00:01:02 #1860 [Verbose] > │ and method26 (v0 : UH2, v1 : uint64) : uint64 = │
00:01:02 #1861 [Verbose] > │ match v0 with │
00:01:02 #1862 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:01:02 #1863 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:01:02 #1864 [Verbose] > │ method26(v3, v4) │
00:01:02 #1865 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:02 #1866 [Verbose] > │ v1 │
00:01:02 #1867 [Verbose] > │ and method27 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:01:02 #1868 [Verbose] > │ match v1 with │
00:01:02 #1869 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:01:02 #1870 [Verbose] > │ v0.[int v2] <- v3 │
00:01:02 #1871 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:01:02 #1872 [Verbose] > │ method27(v0, v4, v5) │
00:01:02 #1873 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:02 #1874 [Verbose] > │ v2 │
00:01:02 #1875 [Verbose] > │ and method25 (v0 : UH2) : (string []) = │
00:01:02 #1876 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:02 #1877 [Verbose] > │ let v2 : uint64 = method26(v0, v1) │
00:01:02 #1878 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:01:02 #1879 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:02 #1880 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:02 #1881 [Verbose] > │ let v5 : uint64 = method27(v3, v0, v4) │
00:01:02 #1882 [Verbose] > │ v3 │
00:01:02 #1883 [Verbose] > │ and closure5 () (v0 : int64) : US1 = │
00:01:02 #1884 [Verbose] > │ US1_0(v0) │
00:01:02 #1885 [Verbose] > │ and method28 () : (int64 -> US1) = │
00:01:02 #1886 [Verbose] > │ closure5() │
00:01:02 #1887 [Verbose] > │ and method29 (v0 : uint64, v1 : Mut3) : bool = │
00:01:02 #1888 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:02 #1889 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:02 #1890 [Verbose] > │ v3 │
00:01:02 #1891 [Verbose] > │ and method30 (v0 : UH6, v1 : UH6) : UH6 = │
00:01:02 #1892 [Verbose] > │ match v0 with │
00:01:02 #1893 [Verbose] > │ | UH6_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1894 [Verbose] > │ let v5 : UH6 = UH6_1(v2, v3, v1) │
00:01:02 #1895 [Verbose] > │ method30(v4, v5) │
00:01:02 #1896 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:01:02 #1897 [Verbose] > │ v1 │
00:01:02 #1898 [Verbose] > │ and method32 (v0 : UH6, v1 : int32) : int32 = │
00:01:02 #1899 [Verbose] > │ match v0 with │
00:01:02 #1900 [Verbose] > │ | UH6_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1901 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:01:02 #1902 [Verbose] > │ method32(v4, v5) │
00:01:02 #1903 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:01:02 #1904 [Verbose] > │ v1 │
00:01:02 #1905 [Verbose] > │ and method33 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : int32) : │
00:01:02 #1906 [Verbose] > │ int32 = │
00:01:02 #1907 [Verbose] > │ match v1 with │
00:01:02 #1908 [Verbose] > │ | UH6_1(v3, v4, v5) -> (* Cons *) │
00:01:02 #1909 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:02 #1910 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:01:02 #1911 [Verbose] > │ method33(v0, v5, v6) │
00:01:02 #1912 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:01:02 #1913 [Verbose] > │ v2 │
00:01:02 #1914 [Verbose] > │ and method31 (v0 : UH6) : (struct (int32 * int64) []) = │
00:01:02 #1915 [Verbose] > │ let v1 : int32 = 0 │
00:01:02 #1916 [Verbose] > │ let v2 : int32 = method32(v0, v1) │
00:01:02 #1917 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:01:02 #1918 [Verbose] > │ int64)> (v2) │
00:01:02 #1919 [Verbose] > │ let v4 : int32 = 0 │
00:01:02 #1920 [Verbose] > │ let v5 : int32 = method33(v3, v0, v4) │
00:01:02 #1921 [Verbose] > │ v3 │
00:01:02 #1922 [Verbose] > │ and method34 (v0 : UH2, v1 : UH7, v2 : int32) : struct (UH7 * int32) = │
00:01:02 #1923 [Verbose] > │ match v0 with │
00:01:02 #1924 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:01:02 #1925 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:01:02 #1926 [Verbose] > │ let v6 : UH7 = UH7_1(v2, v3, v1) │
00:01:02 #1927 [Verbose] > │ method34(v4, v6, v5) │
00:01:02 #1928 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:02 #1929 [Verbose] > │ struct (v1, v2) │
00:01:02 #1930 [Verbose] > │ and method35 (v0 : UH7, v1 : UH7) : UH7 = │
00:01:02 #1931 [Verbose] > │ match v0 with │
00:01:02 #1932 [Verbose] > │ | UH7_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1933 [Verbose] > │ let v5 : UH7 = UH7_1(v2, v3, v1) │
00:01:02 #1934 [Verbose] > │ method35(v4, v5) │
00:01:02 #1935 [Verbose] > │ | UH7_0 -> (* Nil *) │
00:01:02 #1936 [Verbose] > │ v1 │
00:01:02 #1937 [Verbose] > │ and method36 (v0 : Map<int32, int64>, v1 : UH7, v2 : UH2) : UH2 = │
00:01:02 #1938 [Verbose] > │ match v1 with │
00:01:02 #1939 [Verbose] > │ | UH7_1(v3, v4, v5) -> (* Cons *) │
00:01:02 #1940 [Verbose] > │ let v6 : UH2 = method36(v0, v5, v2) │
00:01:02 #1941 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:01:02 #1942 [Verbose] > │ let v8 : int32 = int32 v7 │
00:01:02 #1943 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:01:02 #1944 [Verbose] > │ UH2_1(v9, v6) │
00:01:02 #1945 [Verbose] > │ | UH7_0 -> (* Nil *) │
00:01:02 #1946 [Verbose] > │ v2 │
00:01:02 #1947 [Verbose] > │ and method38 (v0 : UH6, v1 : uint64) : uint64 = │
00:01:02 #1948 [Verbose] > │ match v0 with │
00:01:02 #1949 [Verbose] > │ | UH6_1(v2, v3, v4) -> (* Cons *) │
00:01:02 #1950 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:01:02 #1951 [Verbose] > │ method38(v4, v5) │
00:01:02 #1952 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:01:02 #1953 [Verbose] > │ v1 │
00:01:02 #1954 [Verbose] > │ and method39 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : uint64) : │
00:01:02 #1955 [Verbose] > │ uint64 = │
00:01:02 #1956 [Verbose] > │ match v1 with │
00:01:02 #1957 [Verbose] > │ | UH6_1(v3, v4, v5) -> (* Cons *) │
00:01:02 #1958 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:02 #1959 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:01:02 #1960 [Verbose] > │ method39(v0, v5, v6) │
00:01:02 #1961 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:01:02 #1962 [Verbose] > │ v2 │
00:01:02 #1963 [Verbose] > │ and method37 (v0 : UH6) : (struct (int32 * int64) []) = │
00:01:02 #1964 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:02 #1965 [Verbose] > │ let v2 : uint64 = method38(v0, v1) │
00:01:02 #1966 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:01:02 #1967 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:01:02 #1968 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:02 #1969 [Verbose] > │ let v5 : uint64 = method39(v3, v0, v4) │
00:01:02 #1970 [Verbose] > │ v3 │
00:01:02 #1971 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 = │
00:01:02 #1972 [Verbose] > │ v1 │
00:01:02 #1973 [Verbose] > │ and closure0 () () : unit = │
00:01:02 #1974 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:01:02 #1975 [Verbose] > │ let v1 : string = nameof v0 │
00:01:02 #1976 [Verbose] > │ let v2 : string = "" │
00:01:02 #1977 [Verbose] > │ System.Console.WriteLine v2 │
00:01:02 #1978 [Verbose] > │ System.Console.WriteLine v2 │
00:01:02 #1979 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:01:02 #1980 [Verbose] > │ System.Console.WriteLine v3 │
00:01:02 #1981 [Verbose] > │ let v4 : string = "abc" │
00:01:02 #1982 [Verbose] > │ let v5 : string = "bca cab abc" │
00:01:02 #1983 [Verbose] > │ let v6 : string = "abcde" │
00:01:02 #1984 [Verbose] > │ let v7 : string = "bcdea cdeab deabc eabcd abcde" │
00:01:02 #1985 [Verbose] > │ let v8 : string = "abcdefghi" │
00:01:02 #1986 [Verbose] > │ let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde │
00:01:02 #1987 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi" │
00:01:02 #1988 [Verbose] > │ let v10 : string = "abab" │
00:01:02 #1989 [Verbose] > │ let v11 : string = "baba abab baba abab" │
00:01:02 #1990 [Verbose] > │ let v12 : string = "aa" │
00:01:02 #1991 [Verbose] > │ let v13 : string = "aa aa" │
00:01:02 #1992 [Verbose] > │ let v14 : string = "z" │
00:01:02 #1993 [Verbose] > │ let v15 : UH0 = UH0_0 │
00:01:02 #1994 [Verbose] > │ let v16 : UH0 = UH0_1(v14, v14, v15) │
00:01:02 #1995 [Verbose] > │ let v17 : UH0 = UH0_1(v12, v13, v16) │
00:01:02 #1996 [Verbose] > │ let v18 : UH0 = UH0_1(v10, v11, v17) │
00:01:02 #1997 [Verbose] > │ let v19 : UH0 = UH0_1(v8, v9, v18) │
00:01:02 #1998 [Verbose] > │ let v20 : UH0 = UH0_1(v6, v7, v19) │
00:01:02 #1999 [Verbose] > │ let v21 : UH0 = UH0_1(v4, v5, v20) │
00:01:02 #2000 [Verbose] > │ let v22 : (struct (string * string) []) = method1(v21) │
00:01:02 #2001 [Verbose] > │ let v23 : uint64 = System.Convert.ToUInt64 v22.Length │
00:01:02 #2002 [Verbose] > │ let v24 : (struct (string * string * string * (int64 [])) []) = │
00:01:02 #2003 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:01:02 #2004 [Verbose] > │ (System.Convert.ToInt32(v23)) │
00:01:02 #2005 [Verbose] > │ let v25 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:02 #2006 [Verbose] > │ while method4(v23, v25) do │
00:01:02 #2007 [Verbose] > │ let v27 : uint64 = v25.l0 │
00:01:02 #2008 [Verbose] > │ let struct (v28 : string, v29 : string) = v22.[int v27] │
00:01:02 #2009 [Verbose] > │ let v30 : string = $"%A{v28}" │
00:01:02 #2010 [Verbose] > │ System.Console.WriteLine v2 │
00:01:02 #2011 [Verbose] > │ let v31 : string = $"Solution: {v30} " │
00:01:02 #2012 [Verbose] > │ System.Console.WriteLine v31 │
00:01:02 #2013 [Verbose] > │ let v32 : int32 = 0 │
00:01:02 #2014 [Verbose] > │ let v33 : string = "F" │
00:01:02 #2015 [Verbose] > │ let v34 : (string -> string) = closure1() │
00:01:02 #2016 [Verbose] > │ let v35 : int32 = 1 │
00:01:02 #2017 [Verbose] > │ let v36 : string = "FA" │
00:01:02 #2018 [Verbose] > │ let v37 : (string -> string) = closure2() │
00:01:02 #2019 [Verbose] > │ let v38 : UH3 = UH3_0 │
00:01:02 #2020 [Verbose] > │ let v39 : UH3 = UH3_1(v35, v36, v37, v38) │
00:01:02 #2021 [Verbose] > │ let v40 : UH3 = UH3_1(v32, v33, v34, v39) │
00:01:02 #2022 [Verbose] > │ let v41 : (struct (int32 * string * (string -> string)) []) = │
00:01:02 #2023 [Verbose] > │ method12(v40) │
00:01:02 #2024 [Verbose] > │ let v42 : uint64 = System.Convert.ToUInt64 v41.Length │
00:01:02 #2025 [Verbose] > │ let v43 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:01:02 #2026 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42)) │
00:01:02 #2027 [Verbose] > │ let v44 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:02 #2028 [Verbose] > │ while method4(v42, v44) do │
00:01:02 #2029 [Verbose] > │ let v46 : uint64 = v44.l0 │
00:01:02 #2030 [Verbose] > │ let struct (v47 : int32, v48 : string, v49 : (string -> string)) │
00:01:02 #2031 [Verbose] > │ = v41.[int v46] │
00:01:02 #2032 [Verbose] > │ let v50 : unit option = None │
00:01:02 #2033 [Verbose] > │ let mutable _v50 = v50 │
00:01:02 #2034 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:02 #2035 [Verbose] > │ () │
00:01:02 #2036 [Verbose] > │ #endif │
00:01:02 #2037 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:02 #2038 [Verbose] > │ () │
00:01:02 #2039 [Verbose] > │ #endif │
00:01:02 #2040 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:02 #2041 [Verbose] > │ () │
00:01:02 #2042 [Verbose] > │ #endif │
00:01:02 #2043 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:02 #2044 [Verbose] > │ System.GC.Collect () │
00:01:02 #2045 [Verbose] > │ () │
00:01:02 #2046 [Verbose] > │ #endif │
00:01:02 #2047 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:02 #2048 [Verbose] > │ System.GC.Collect () │
00:01:02 #2049 [Verbose] > │ () │
00:01:02 #2050 [Verbose] > │ #endif │
00:01:02 #2051 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:02 #2052 [Verbose] > │ System.GC.Collect () │
00:01:02 #2053 [Verbose] > │ () │
00:01:02 #2054 [Verbose] > │ #endif │
00:01:02 #2055 [Verbose] > │ |> fun x -> _v50 <- Some x │
00:01:02 #2056 [Verbose] > │ _v50 |> Option.get │
00:01:02 #2057 [Verbose] > │ let v51 : (unit -> System.Diagnostics.Stopwatch) = │
00:01:02 #2058 [Verbose] > │ System.Diagnostics.Stopwatch │
00:01:02 #2059 [Verbose] > │ let v52 : System.Diagnostics.Stopwatch = v51 () │
00:01:02 #2060 [Verbose] > │ v52.Start () │
00:01:02 #2061 [Verbose] > │ let v53 : int64 = v52.ElapsedMilliseconds │
00:01:02 #2062 [Verbose] > │ let v54 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:01:02 #2063 [Verbose] > │ let v55 : Mut1 = {l0 = 0} : Mut1 │
00:01:02 #2064 [Verbose] > │ while method15(v55) do │
00:01:02 #2065 [Verbose] > │ let v57 : int32 = v55.l0 │
00:01:02 #2066 [Verbose] > │ v54.[int v57] <- v57 │
00:01:02 #2067 [Verbose] > │ let v58 : int32 = v57 + 1 │
00:01:02 #2068 [Verbose] > │ v55.l0 <- v58 │
00:01:02 #2069 [Verbose] > │ () │
00:01:02 #2070 [Verbose] > │ let v59 : ((int32 -> string) -> ((int32 []) -> (string []))) = │
00:01:02 #2071 [Verbose] > │ Array.Parallel.map │
00:01:02 #2072 [Verbose] > │ let v60 : (int32 -> string) = closure3(v28, v49) │
00:01:02 #2073 [Verbose] > │ let v61 : ((int32 []) -> (string [])) = v59 v60 │
00:01:02 #2074 [Verbose] > │ let v62 : (string []) = v61 v54 │
00:01:02 #2075 [Verbose] > │ let v63 : int32 = v62.Length │
00:01:02 #2076 [Verbose] > │ let v64 : int32 = v63 - 1 │
00:01:02 #2077 [Verbose] > │ let v65 : string = v62.[int v64] │
00:01:02 #2078 [Verbose] > │ let v66 : int64 = v52.ElapsedMilliseconds │
00:01:02 #2079 [Verbose] > │ let v67 : int64 = v66 - v53 │
00:01:02 #2080 [Verbose] > │ let v68 : string = $"Test case {v47 + 1}. {v48}. Time: {v67} " │
00:01:02 #2081 [Verbose] > │ System.Console.WriteLine v68 │
00:01:02 #2082 [Verbose] > │ v43.[int v46] <- struct (v65, v67) │
00:01:02 #2083 [Verbose] > │ let v69 : uint64 = v46 + 1UL │
00:01:02 #2084 [Verbose] > │ v44.l0 <- v69 │
00:01:02 #2085 [Verbose] > │ () │
00:01:02 #2086 [Verbose] > │ let v70 : uint64 = System.Convert.ToUInt64 v43.Length │
00:01:02 #2087 [Verbose] > │ let v71 : (string []) = Array.zeroCreate<string> │
00:01:02 #2088 [Verbose] > │ (System.Convert.ToInt32(v70)) │
00:01:02 #2089 [Verbose] > │ let v72 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:02 #2090 [Verbose] > │ while method4(v70, v72) do │
00:01:02 #2091 [Verbose] > │ let v74 : uint64 = v72.l0 │
00:01:02 #2092 [Verbose] > │ let struct (v75 : string, v76 : int64) = v43.[int v74] │
00:01:02 #2093 [Verbose] > │ v71.[int v74] <- v75 │
00:01:02 #2094 [Verbose] > │ let v77 : uint64 = v74 + 1UL │
00:01:02 #2095 [Verbose] > │ v72.l0 <- v77 │
00:01:02 #2096 [Verbose] > │ () │
00:01:02 #2097 [Verbose] > │ let v78 : uint64 = System.Convert.ToUInt64 v71.Length │
00:01:02 #2098 [Verbose] > │ let v79 : bool = v78 <= 1UL │
00:01:02 #2099 [Verbose] > │ if v79 then │
00:01:02 #2100 [Verbose] > │ () │
00:01:02 #2101 [Verbose] > │ else │
00:01:02 #2102 [Verbose] > │ let v80 : string = v71.[int 0UL] │
00:01:02 #2103 [Verbose] > │ let v81 : uint64 = 0UL │
00:01:02 #2104 [Verbose] > │ let v82 : bool = method16(v80, v71, v81) │
00:01:02 #2105 [Verbose] > │ if v82 then │
00:01:02 #2106 [Verbose] > │ () │
00:01:02 #2107 [Verbose] > │ else │
00:01:02 #2108 [Verbose] > │ let v83 : string = $"Challenge error: {v71}" │
00:01:02 #2109 [Verbose] > │ failwith<unit> v83 │
00:01:02 #2110 [Verbose] > │ let v84 : string = $"%A{v29}" │
00:01:02 #2111 [Verbose] > │ let v85 : (string []) = Array.zeroCreate<string> │
00:01:02 #2112 [Verbose] > │ (System.Convert.ToInt32(v70)) │
00:01:02 #2113 [Verbose] > │ let v86 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:02 #2114 [Verbose] > │ while method4(v70, v86) do │
00:01:02 #2115 [Verbose] > │ let v88 : uint64 = v86.l0 │
00:01:02 #2116 [Verbose] > │ let struct (v89 : string, v90 : int64) = v43.[int v88] │
00:01:02 #2117 [Verbose] > │ v85.[int v88] <- v89 │
00:01:02 #2118 [Verbose] > │ let v91 : uint64 = v88 + 1UL │
00:01:02 #2119 [Verbose] > │ v86.l0 <- v91 │
00:01:02 #2120 [Verbose] > │ () │
00:01:02 #2121 [Verbose] > │ let v92 : string = v85.[int 0UL] │
00:01:02 #2122 [Verbose] > │ let v93 : string = $"%A{v92}" │
00:01:02 #2123 [Verbose] > │ let v94 : (int64 []) = Array.zeroCreate<int64> │
00:01:02 #2124 [Verbose] > │ (System.Convert.ToInt32(v70)) │
00:01:02 #2125 [Verbose] > │ let v95 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:02 #2126 [Verbose] > │ while method4(v70, v95) do │
00:01:02 #2127 [Verbose] > │ let v97 : uint64 = v95.l0 │
00:01:02 #2128 [Verbose] > │ let struct (v98 : string, v99 : int64) = v43.[int v97] │
00:01:02 #2129 [Verbose] > │ v94.[int v97] <- v99 │
00:01:02 #2130 [Verbose] > │ let v100 : uint64 = v97 + 1UL │
00:01:02 #2131 [Verbose] > │ v95.l0 <- v100 │
00:01:02 #2132 [Verbose] > │ () │
00:01:02 #2133 [Verbose] > │ v24.[int v27] <- struct (v84, v30, v93, v94) │
00:01:02 #2134 [Verbose] > │ let v101 : uint64 = v27 + 1UL │
00:01:03 #2135 [Verbose] > │ v25.l0 <- v101 │
00:01:03 #2136 [Verbose] > │ () │
00:01:03 #2137 [Verbose] > │ let v102 : uint64 = System.Convert.ToUInt64 v24.Length │
00:01:03 #2138 [Verbose] > │ let v103 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:01:03 #2139 [Verbose] > │ US0)> (System.Convert.ToInt32(v102)) │
00:01:03 #2140 [Verbose] > │ let v104 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2141 [Verbose] > │ while method4(v102, v104) do │
00:01:03 #2142 [Verbose] > │ let v106 : uint64 = v104.l0 │
00:01:03 #2143 [Verbose] > │ let struct (v107 : string, v108 : string, v109 : string, v110 : │
00:01:03 #2144 [Verbose] > │ (int64 [])) = v24.[int v106] │
00:01:03 #2145 [Verbose] > │ let v111 : uint64 = System.Convert.ToUInt64 v110.Length │
00:01:03 #2146 [Verbose] > │ let v112 : UH4 = UH4_0 │
00:01:03 #2147 [Verbose] > │ let v113 : Mut2 = {l0 = 0UL; l1 = v112; l2 = 0L} : Mut2 │
00:01:03 #2148 [Verbose] > │ while method17(v111, v113) do │
00:01:03 #2149 [Verbose] > │ let v115 : uint64 = v113.l0 │
00:01:03 #2150 [Verbose] > │ let struct (v116 : UH4, v117 : int64) = v113.l1, v113.l2 │
00:01:03 #2151 [Verbose] > │ let v118 : int64 = v110.[int v115] │
00:01:03 #2152 [Verbose] > │ let v119 : int64 = v117 + 1L │
00:01:03 #2153 [Verbose] > │ let v120 : uint64 = v115 + 1UL │
00:01:03 #2154 [Verbose] > │ let v121 : UH4 = UH4_1(v117, v118, v116) │
00:01:03 #2155 [Verbose] > │ v113.l0 <- v120 │
00:01:03 #2156 [Verbose] > │ v113.l1 <- v121 │
00:01:03 #2157 [Verbose] > │ v113.l2 <- v119 │
00:01:03 #2158 [Verbose] > │ () │
00:01:03 #2159 [Verbose] > │ let struct (v122 : UH4, v123 : int64) = v113.l1, v113.l2 │
00:01:03 #2160 [Verbose] > │ let v124 : UH4 = UH4_0 │
00:01:03 #2161 [Verbose] > │ let v125 : UH4 = method18(v122, v124) │
00:01:03 #2162 [Verbose] > │ let v126 : (struct (int64 * int64) []) = method19(v125) │
00:01:03 #2163 [Verbose] > │ let v127 : int32 = v126.Length │
00:01:03 #2164 [Verbose] > │ let v128 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:01:03 #2165 [Verbose] > │ (int64 * int64)> (v127) │
00:01:03 #2166 [Verbose] > │ let v129 : Mut1 = {l0 = 0} : Mut1 │
00:01:03 #2167 [Verbose] > │ while method5(v127, v129) do │
00:01:03 #2168 [Verbose] > │ let v131 : int32 = v129.l0 │
00:01:03 #2169 [Verbose] > │ let struct (v132 : int64, v133 : int64) = v126.[int v131] │
00:01:03 #2170 [Verbose] > │ let v134 : int64 = v132 + 1L │
00:01:03 #2171 [Verbose] > │ v128.[int v131] <- struct (v134, v133) │
00:01:03 #2172 [Verbose] > │ let v135 : int32 = v131 + 1 │
00:01:03 #2173 [Verbose] > │ v129.l0 <- v135 │
00:01:03 #2174 [Verbose] > │ () │
00:01:03 #2175 [Verbose] > │ let v136 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:01:03 #2176 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:01:03 #2177 [Verbose] > │ let v137 : (struct (int64 * int64) -> int64) = closure4() │
00:01:03 #2178 [Verbose] > │ let v138 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:01:03 #2179 [Verbose] > │ ])) = v136 v137 │
00:01:03 #2180 [Verbose] > │ let v139 : (struct (int64 * int64) []) = v138 v128 │
00:01:03 #2181 [Verbose] > │ let struct (v140 : int64, v141 : int64) = v139.[int 0] │
00:01:03 #2182 [Verbose] > │ let v142 : string = $"%A{struct (v140, v141)}" │
00:01:03 #2183 [Verbose] > │ let v143 : bool = v107 = v109 │
00:01:03 #2184 [Verbose] > │ let v148 : US0 = │
00:01:03 #2185 [Verbose] > │ if v143 then │
00:01:03 #2186 [Verbose] > │ let v144 : System.ConsoleColor = │
00:01:03 #2187 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:01:03 #2188 [Verbose] > │ US0_0(v144) │
00:01:03 #2189 [Verbose] > │ else │
00:01:03 #2190 [Verbose] > │ let v146 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:03 #2191 [Verbose] > │ US0_0(v146) │
00:01:03 #2192 [Verbose] > │ let v149 : UH2 = UH2_0 │
00:01:03 #2193 [Verbose] > │ let v150 : UH2 = UH2_1(v142, v149) │
00:01:03 #2194 [Verbose] > │ let v151 : UH2 = UH2_1(v109, v150) │
00:01:03 #2195 [Verbose] > │ let v152 : UH2 = UH2_1(v107, v151) │
00:01:03 #2196 [Verbose] > │ let v153 : UH2 = UH2_1(v108, v152) │
00:01:03 #2197 [Verbose] > │ v103.[int v106] <- struct (v153, v148) │
00:01:03 #2198 [Verbose] > │ let v154 : uint64 = v106 + 1UL │
00:01:03 #2199 [Verbose] > │ v104.l0 <- v154 │
00:01:03 #2200 [Verbose] > │ () │
00:01:03 #2201 [Verbose] > │ let v155 : string = "Input" │
00:01:03 #2202 [Verbose] > │ let v156 : string = "Expected" │
00:01:03 #2203 [Verbose] > │ let v157 : string = "Result" │
00:01:03 #2204 [Verbose] > │ let v158 : string = "Best" │
00:01:03 #2205 [Verbose] > │ let v159 : UH2 = UH2_0 │
00:01:03 #2206 [Verbose] > │ let v160 : UH2 = UH2_1(v158, v159) │
00:01:03 #2207 [Verbose] > │ let v161 : UH2 = UH2_1(v157, v160) │
00:01:03 #2208 [Verbose] > │ let v162 : UH2 = UH2_1(v156, v161) │
00:01:03 #2209 [Verbose] > │ let v163 : UH2 = UH2_1(v155, v162) │
00:01:03 #2210 [Verbose] > │ let v164 : US0 = US0_1 │
00:01:03 #2211 [Verbose] > │ let v165 : string = "---" │
00:01:03 #2212 [Verbose] > │ let v166 : UH2 = UH2_0 │
00:01:03 #2213 [Verbose] > │ let v167 : UH2 = UH2_1(v165, v166) │
00:01:03 #2214 [Verbose] > │ let v168 : UH2 = UH2_1(v165, v167) │
00:01:03 #2215 [Verbose] > │ let v169 : UH2 = UH2_1(v165, v168) │
00:01:03 #2216 [Verbose] > │ let v170 : UH2 = UH2_1(v165, v169) │
00:01:03 #2217 [Verbose] > │ let v171 : US0 = US0_1 │
00:01:03 #2218 [Verbose] > │ let v172 : UH5 = UH5_0 │
00:01:03 #2219 [Verbose] > │ let v173 : UH5 = UH5_1(v170, v171, v172) │
00:01:03 #2220 [Verbose] > │ let v174 : UH5 = UH5_1(v163, v164, v173) │
00:01:03 #2221 [Verbose] > │ let v175 : (struct (UH2 * US0) []) = method22(v174) │
00:01:03 #2222 [Verbose] > │ let v176 : uint64 = System.Convert.ToUInt64 v175.Length │
00:01:03 #2223 [Verbose] > │ let v177 : uint64 = System.Convert.ToUInt64 v103.Length │
00:01:03 #2224 [Verbose] > │ let v178 : uint64 = v176 + v177 │
00:01:03 #2225 [Verbose] > │ let v179 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:01:03 #2226 [Verbose] > │ US0)> (System.Convert.ToInt32(v178)) │
00:01:03 #2227 [Verbose] > │ let v180 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2228 [Verbose] > │ while method4(v178, v180) do │
00:01:03 #2229 [Verbose] > │ let v182 : uint64 = v180.l0 │
00:01:03 #2230 [Verbose] > │ let v183 : bool = v182 < v176 │
00:01:03 #2231 [Verbose] > │ let struct (v189 : UH2, v190 : US0) = │
00:01:03 #2232 [Verbose] > │ if v183 then │
00:01:03 #2233 [Verbose] > │ let struct (v184 : UH2, v185 : US0) = v175.[int v182] │
00:01:03 #2234 [Verbose] > │ struct (v184, v185) │
00:01:03 #2235 [Verbose] > │ else │
00:01:03 #2236 [Verbose] > │ let v186 : uint64 = v182 - v176 │
00:01:03 #2237 [Verbose] > │ let struct (v187 : UH2, v188 : US0) = v103.[int v186] │
00:01:03 #2238 [Verbose] > │ struct (v187, v188) │
00:01:03 #2239 [Verbose] > │ v179.[int v182] <- struct (v189, v190) │
00:01:03 #2240 [Verbose] > │ let v191 : uint64 = v182 + 1UL │
00:01:03 #2241 [Verbose] > │ v180.l0 <- v191 │
00:01:03 #2242 [Verbose] > │ () │
00:01:03 #2243 [Verbose] > │ let v192 : uint64 = System.Convert.ToUInt64 v179.Length │
00:01:03 #2244 [Verbose] > │ let v193 : ((string []) []) = Array.zeroCreate<(string [])> │
00:01:03 #2245 [Verbose] > │ (System.Convert.ToInt32(v192)) │
00:01:03 #2246 [Verbose] > │ let v194 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2247 [Verbose] > │ while method4(v192, v194) do │
00:01:03 #2248 [Verbose] > │ let v196 : uint64 = v194.l0 │
00:01:03 #2249 [Verbose] > │ let struct (v197 : UH2, v198 : US0) = v179.[int v196] │
00:01:03 #2250 [Verbose] > │ let v199 : (string []) = method25(v197) │
00:01:03 #2251 [Verbose] > │ v193.[int v196] <- v199 │
00:01:03 #2252 [Verbose] > │ let v200 : uint64 = v196 + 1UL │
00:01:03 #2253 [Verbose] > │ v194.l0 <- v200 │
00:01:03 #2254 [Verbose] > │ () │
00:01:03 #2255 [Verbose] > │ let v201 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:01:03 #2256 [Verbose] > │ let v202 : ((string []) []) = v201 v193 │
00:01:03 #2257 [Verbose] > │ let v203 : uint64 = System.Convert.ToUInt64 v202.Length │
00:01:03 #2258 [Verbose] > │ let v204 : (int64 []) = Array.zeroCreate<int64> │
00:01:03 #2259 [Verbose] > │ (System.Convert.ToInt32(v203)) │
00:01:03 #2260 [Verbose] > │ let v205 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2261 [Verbose] > │ while method4(v203, v205) do │
00:01:03 #2262 [Verbose] > │ let v207 : uint64 = v205.l0 │
00:01:03 #2263 [Verbose] > │ let v208 : (string []) = v202.[int v207] │
00:01:03 #2264 [Verbose] > │ let v209 : uint64 = System.Convert.ToUInt64 v208.Length │
00:01:03 #2265 [Verbose] > │ let v210 : (int64 []) = Array.zeroCreate<int64> │
00:01:03 #2266 [Verbose] > │ (System.Convert.ToInt32(v209)) │
00:01:03 #2267 [Verbose] > │ let v211 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2268 [Verbose] > │ while method4(v209, v211) do │
00:01:03 #2269 [Verbose] > │ let v213 : uint64 = v211.l0 │
00:01:03 #2270 [Verbose] > │ let v214 : string = v208.[int v213] │
00:01:03 #2271 [Verbose] > │ let v215 : int64 = System.Convert.ToInt64 v214.Length │
00:01:03 #2272 [Verbose] > │ v210.[int v213] <- v215 │
00:01:03 #2273 [Verbose] > │ let v216 : uint64 = v213 + 1UL │
00:01:03 #2274 [Verbose] > │ v211.l0 <- v216 │
00:01:03 #2275 [Verbose] > │ () │
00:01:03 #2276 [Verbose] > │ let v217 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:01:03 #2277 [Verbose] > │ let v218 : (int64 []) = v217 v210 │
00:01:03 #2278 [Verbose] > │ let v219 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:01:03 #2279 [Verbose] > │ let v220 : ((int64 []) -> int64 option) = v219 0 │
00:01:03 #2280 [Verbose] > │ let v221 : int64 option = v220 v218 │
00:01:03 #2281 [Verbose] > │ let v222 : (int64 -> US1) = method28() │
00:01:03 #2282 [Verbose] > │ let v223 : US1 = US1_1 │
00:01:03 #2283 [Verbose] > │ let v224 : US1 = v221 |> Option.map v222 |> Option.defaultValue v223 │
00:01:03 #2284 [Verbose] > │ let v227 : int64 = │
00:01:03 #2285 [Verbose] > │ match v224 with │
00:01:03 #2286 [Verbose] > │ | US1_1 -> (* None *) │
00:01:03 #2287 [Verbose] > │ 0L │
00:01:03 #2288 [Verbose] > │ | US1_0(v225) -> (* Some *) │
00:01:03 #2289 [Verbose] > │ v225 │
00:01:03 #2290 [Verbose] > │ v204.[int v207] <- v227 │
00:01:03 #2291 [Verbose] > │ let v228 : uint64 = v207 + 1UL │
00:01:03 #2292 [Verbose] > │ v205.l0 <- v228 │
00:01:03 #2293 [Verbose] > │ () │
00:01:03 #2294 [Verbose] > │ let v229 : uint64 = System.Convert.ToUInt64 v204.Length │
00:01:03 #2295 [Verbose] > │ let v230 : UH6 = UH6_0 │
00:01:03 #2296 [Verbose] > │ let v231 : Mut3 = {l0 = 0UL; l1 = v230; l2 = 0} : Mut3 │
00:01:03 #2297 [Verbose] > │ while method29(v229, v231) do │
00:01:03 #2298 [Verbose] > │ let v233 : uint64 = v231.l0 │
00:01:03 #2299 [Verbose] > │ let struct (v234 : UH6, v235 : int32) = v231.l1, v231.l2 │
00:01:03 #2300 [Verbose] > │ let v236 : int64 = v204.[int v233] │
00:01:03 #2301 [Verbose] > │ let v237 : int32 = v235 + 1 │
00:01:03 #2302 [Verbose] > │ let v238 : uint64 = v233 + 1UL │
00:01:03 #2303 [Verbose] > │ let v239 : UH6 = UH6_1(v235, v236, v234) │
00:01:03 #2304 [Verbose] > │ v231.l0 <- v238 │
00:01:03 #2305 [Verbose] > │ v231.l1 <- v239 │
00:01:03 #2306 [Verbose] > │ v231.l2 <- v237 │
00:01:03 #2307 [Verbose] > │ () │
00:01:03 #2308 [Verbose] > │ let struct (v240 : UH6, v241 : int32) = v231.l1, v231.l2 │
00:01:03 #2309 [Verbose] > │ let v242 : UH6 = UH6_0 │
00:01:03 #2310 [Verbose] > │ let v243 : UH6 = method30(v240, v242) │
00:01:03 #2311 [Verbose] > │ let v244 : (struct (int32 * int64) []) = method31(v243) │
00:01:03 #2312 [Verbose] > │ let v245 : Map<int32, int64> = v244 |> Array.map (fun (struct (a, b)) -> │
00:01:03 #2313 [Verbose] > │ a, b) |> Map.ofArray │
00:01:03 #2314 [Verbose] > │ let v246 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:01:03 #2315 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v192)) │
00:01:03 #2316 [Verbose] > │ let v247 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2317 [Verbose] > │ while method4(v192, v247) do │
00:01:03 #2318 [Verbose] > │ let v249 : uint64 = v247.l0 │
00:01:03 #2319 [Verbose] > │ let struct (v250 : UH2, v251 : US0) = v179.[int v249] │
00:01:03 #2320 [Verbose] > │ let v252 : UH7 = UH7_0 │
00:01:03 #2321 [Verbose] > │ let v253 : int32 = 0 │
00:01:03 #2322 [Verbose] > │ let struct (v254 : UH7, v255 : int32) = method34(v250, v252, v253) │
00:01:03 #2323 [Verbose] > │ let v256 : UH7 = UH7_0 │
00:01:03 #2324 [Verbose] > │ let v257 : UH7 = method35(v254, v256) │
00:01:03 #2325 [Verbose] > │ let v258 : UH2 = UH2_0 │
00:01:03 #2326 [Verbose] > │ let v259 : UH2 = method36(v245, v257, v258) │
00:01:03 #2327 [Verbose] > │ let v260 : (string []) = method9(v259) │
00:01:03 #2328 [Verbose] > │ v246.[int v249] <- struct (v260, v251) │
00:01:03 #2329 [Verbose] > │ let v261 : uint64 = v249 + 1UL │
00:01:03 #2330 [Verbose] > │ v247.l0 <- v261 │
00:01:03 #2331 [Verbose] > │ () │
00:01:03 #2332 [Verbose] > │ System.Console.WriteLine v2 │
00:01:03 #2333 [Verbose] > │ let v262 : uint64 = System.Convert.ToUInt64 v246.Length │
00:01:03 #2334 [Verbose] > │ let v263 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2335 [Verbose] > │ while method4(v262, v263) do │
00:01:03 #2336 [Verbose] > │ let v265 : uint64 = v263.l0 │
00:01:03 #2337 [Verbose] > │ let struct (v266 : (string []), v267 : US0) = v246.[int v265] │
00:01:03 #2338 [Verbose] > │ match v267 with │
00:01:03 #2339 [Verbose] > │ | US0_1 -> (* None *) │
00:01:03 #2340 [Verbose] > │ let v270 : unit option = None │
00:01:03 #2341 [Verbose] > │ let mutable _v270 = v270 │
00:01:03 #2342 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:03 #2343 [Verbose] > │ () │
00:01:03 #2344 [Verbose] > │ #endif │
00:01:03 #2345 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:03 #2346 [Verbose] > │ () │
00:01:03 #2347 [Verbose] > │ #endif │
00:01:03 #2348 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:03 #2349 [Verbose] > │ () │
00:01:03 #2350 [Verbose] > │ #endif │
00:01:03 #2351 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2352 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2353 [Verbose] > │ () │
00:01:03 #2354 [Verbose] > │ #endif │
00:01:03 #2355 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2356 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2357 [Verbose] > │ () │
00:01:03 #2358 [Verbose] > │ #endif │
00:01:03 #2359 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:03 #2360 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2361 [Verbose] > │ () │
00:01:03 #2362 [Verbose] > │ #endif │
00:01:03 #2363 [Verbose] > │ |> fun x -> _v270 <- Some x │
00:01:03 #2364 [Verbose] > │ _v270 |> Option.get │
00:01:03 #2365 [Verbose] > │ () │
00:01:03 #2366 [Verbose] > │ | US0_0(v268) -> (* Some *) │
00:01:03 #2367 [Verbose] > │ let v269 : unit option = None │
00:01:03 #2368 [Verbose] > │ let mutable _v269 = v269 │
00:01:03 #2369 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:03 #2370 [Verbose] > │ () │
00:01:03 #2371 [Verbose] > │ #endif │
00:01:03 #2372 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:03 #2373 [Verbose] > │ () │
00:01:03 #2374 [Verbose] > │ #endif │
00:01:03 #2375 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:03 #2376 [Verbose] > │ () │
00:01:03 #2377 [Verbose] > │ #endif │
00:01:03 #2378 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2379 [Verbose] > │ System.Console.ForegroundColor <- v268 │
00:01:03 #2380 [Verbose] > │ () │
00:01:03 #2381 [Verbose] > │ #endif │
00:01:03 #2382 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2383 [Verbose] > │ System.Console.ForegroundColor <- v268 │
00:01:03 #2384 [Verbose] > │ () │
00:01:03 #2385 [Verbose] > │ #endif │
00:01:03 #2386 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:03 #2387 [Verbose] > │ System.Console.ForegroundColor <- v268 │
00:01:03 #2388 [Verbose] > │ () │
00:01:03 #2389 [Verbose] > │ #endif │
00:01:03 #2390 [Verbose] > │ |> fun x -> _v269 <- Some x │
00:01:03 #2391 [Verbose] > │ _v269 |> Option.get │
00:01:03 #2392 [Verbose] > │ () │
00:01:03 #2393 [Verbose] > │ let v271 : string = "\t| " │
00:01:03 #2394 [Verbose] > │ let v272 : string = System.String.Join (v271, v266) │
00:01:03 #2395 [Verbose] > │ System.Console.WriteLine v272 │
00:01:03 #2396 [Verbose] > │ let v273 : unit option = None │
00:01:03 #2397 [Verbose] > │ let mutable _v273 = v273 │
00:01:03 #2398 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:03 #2399 [Verbose] > │ () │
00:01:03 #2400 [Verbose] > │ #endif │
00:01:03 #2401 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:03 #2402 [Verbose] > │ () │
00:01:03 #2403 [Verbose] > │ #endif │
00:01:03 #2404 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:03 #2405 [Verbose] > │ () │
00:01:03 #2406 [Verbose] > │ #endif │
00:01:03 #2407 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2408 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2409 [Verbose] > │ () │
00:01:03 #2410 [Verbose] > │ #endif │
00:01:03 #2411 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2412 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2413 [Verbose] > │ () │
00:01:03 #2414 [Verbose] > │ #endif │
00:01:03 #2415 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:03 #2416 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2417 [Verbose] > │ () │
00:01:03 #2418 [Verbose] > │ #endif │
00:01:03 #2419 [Verbose] > │ |> fun x -> _v273 <- Some x │
00:01:03 #2420 [Verbose] > │ _v273 |> Option.get │
00:01:03 #2421 [Verbose] > │ let v274 : uint64 = v265 + 1UL │
00:01:03 #2422 [Verbose] > │ v263.l0 <- v274 │
00:01:03 #2423 [Verbose] > │ () │
00:01:03 #2424 [Verbose] > │ let v275 : ((float []) []) = Array.zeroCreate<(float [])> │
00:01:03 #2425 [Verbose] > │ (System.Convert.ToInt32(v102)) │
00:01:03 #2426 [Verbose] > │ let v276 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2427 [Verbose] > │ while method4(v102, v276) do │
00:01:03 #2428 [Verbose] > │ let v278 : uint64 = v276.l0 │
00:01:03 #2429 [Verbose] > │ let struct (v279 : string, v280 : string, v281 : string, v282 : │
00:01:03 #2430 [Verbose] > │ (int64 [])) = v24.[int v278] │
00:01:03 #2431 [Verbose] > │ let v283 : (int64 -> float) = float │
00:01:03 #2432 [Verbose] > │ let v284 : uint64 = System.Convert.ToUInt64 v282.Length │
00:01:03 #2433 [Verbose] > │ let v285 : (float []) = Array.zeroCreate<float> │
00:01:03 #2434 [Verbose] > │ (System.Convert.ToInt32(v284)) │
00:01:03 #2435 [Verbose] > │ let v286 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2436 [Verbose] > │ while method4(v284, v286) do │
00:01:03 #2437 [Verbose] > │ let v288 : uint64 = v286.l0 │
00:01:03 #2438 [Verbose] > │ let v289 : int64 = v282.[int v288] │
00:01:03 #2439 [Verbose] > │ let v290 : float = v283 v289 │
00:01:03 #2440 [Verbose] > │ v285.[int v288] <- v290 │
00:01:03 #2441 [Verbose] > │ let v291 : uint64 = v288 + 1UL │
00:01:03 #2442 [Verbose] > │ v286.l0 <- v291 │
00:01:03 #2443 [Verbose] > │ () │
00:01:03 #2444 [Verbose] > │ v275.[int v278] <- v285 │
00:01:03 #2445 [Verbose] > │ let v292 : uint64 = v278 + 1UL │
00:01:03 #2446 [Verbose] > │ v276.l0 <- v292 │
00:01:03 #2447 [Verbose] > │ () │
00:01:03 #2448 [Verbose] > │ let v293 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:01:03 #2449 [Verbose] > │ let v294 : ((float []) []) = v293 v275 │
00:01:03 #2450 [Verbose] > │ let v295 : uint64 = System.Convert.ToUInt64 v294.Length │
00:01:03 #2451 [Verbose] > │ let v296 : (float []) = Array.zeroCreate<float> │
00:01:03 #2452 [Verbose] > │ (System.Convert.ToInt32(v295)) │
00:01:03 #2453 [Verbose] > │ let v297 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2454 [Verbose] > │ while method4(v295, v297) do │
00:01:03 #2455 [Verbose] > │ let v299 : uint64 = v297.l0 │
00:01:03 #2456 [Verbose] > │ let v300 : (float []) = v294.[int v299] │
00:01:03 #2457 [Verbose] > │ let v301 : ((float []) -> float) = Array.average │
00:01:03 #2458 [Verbose] > │ let v302 : float = v301 v300 │
00:01:03 #2459 [Verbose] > │ v296.[int v299] <- v302 │
00:01:03 #2460 [Verbose] > │ let v303 : uint64 = v299 + 1UL │
00:01:03 #2461 [Verbose] > │ v297.l0 <- v303 │
00:01:03 #2462 [Verbose] > │ () │
00:01:03 #2463 [Verbose] > │ let v304 : (float -> int64) = int64 │
00:01:03 #2464 [Verbose] > │ let v305 : uint64 = System.Convert.ToUInt64 v296.Length │
00:01:03 #2465 [Verbose] > │ let v306 : (int64 []) = Array.zeroCreate<int64> │
00:01:03 #2466 [Verbose] > │ (System.Convert.ToInt32(v305)) │
00:01:03 #2467 [Verbose] > │ let v307 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2468 [Verbose] > │ while method4(v305, v307) do │
00:01:03 #2469 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:01:03 #2470 [Verbose] > │ let v310 : float = v296.[int v309] │
00:01:03 #2471 [Verbose] > │ let v311 : int64 = v304 v310 │
00:01:03 #2472 [Verbose] > │ v306.[int v309] <- v311 │
00:01:03 #2473 [Verbose] > │ let v312 : uint64 = v309 + 1UL │
00:01:03 #2474 [Verbose] > │ v307.l0 <- v312 │
00:01:03 #2475 [Verbose] > │ () │
00:01:03 #2476 [Verbose] > │ let v313 : uint64 = System.Convert.ToUInt64 v306.Length │
00:01:03 #2477 [Verbose] > │ let v314 : UH6 = UH6_0 │
00:01:03 #2478 [Verbose] > │ let v315 : Mut3 = {l0 = 0UL; l1 = v314; l2 = 0} : Mut3 │
00:01:03 #2479 [Verbose] > │ while method29(v313, v315) do │
00:01:03 #2480 [Verbose] > │ let v317 : uint64 = v315.l0 │
00:01:03 #2481 [Verbose] > │ let struct (v318 : UH6, v319 : int32) = v315.l1, v315.l2 │
00:01:03 #2482 [Verbose] > │ let v320 : int64 = v306.[int v317] │
00:01:03 #2483 [Verbose] > │ let v321 : int32 = v319 + 1 │
00:01:03 #2484 [Verbose] > │ let v322 : uint64 = v317 + 1UL │
00:01:03 #2485 [Verbose] > │ let v323 : UH6 = UH6_1(v319, v320, v318) │
00:01:03 #2486 [Verbose] > │ v315.l0 <- v322 │
00:01:03 #2487 [Verbose] > │ v315.l1 <- v323 │
00:01:03 #2488 [Verbose] > │ v315.l2 <- v321 │
00:01:03 #2489 [Verbose] > │ () │
00:01:03 #2490 [Verbose] > │ let struct (v324 : UH6, v325 : int32) = v315.l1, v315.l2 │
00:01:03 #2491 [Verbose] > │ let v326 : UH6 = UH6_0 │
00:01:03 #2492 [Verbose] > │ let v327 : UH6 = method30(v324, v326) │
00:01:03 #2493 [Verbose] > │ let v328 : (struct (int32 * int64) []) = method37(v327) │
00:01:03 #2494 [Verbose] > │ System.Console.WriteLine v2 │
00:01:03 #2495 [Verbose] > │ let v329 : string = "Average Ranking " │
00:01:03 #2496 [Verbose] > │ System.Console.WriteLine v329 │
00:01:03 #2497 [Verbose] > │ let v330 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:01:03 #2498 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:01:03 #2499 [Verbose] > │ let v331 : (struct (int32 * int64) -> int64) = closure6() │
00:01:03 #2500 [Verbose] > │ let v332 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:01:03 #2501 [Verbose] > │ = v330 v331 │
00:01:03 #2502 [Verbose] > │ let v333 : (struct (int32 * int64) []) = v332 v328 │
00:01:03 #2503 [Verbose] > │ let v334 : uint64 = System.Convert.ToUInt64 v333.Length │
00:01:03 #2504 [Verbose] > │ let v335 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2505 [Verbose] > │ while method4(v334, v335) do │
00:01:03 #2506 [Verbose] > │ let v337 : uint64 = v335.l0 │
00:01:03 #2507 [Verbose] > │ let struct (v338 : int32, v339 : int64) = v333.[int v337] │
00:01:03 #2508 [Verbose] > │ let v340 : string = $"Test case %d{v338 + 1}. Average Time: %A{v339} │
00:01:03 #2509 [Verbose] > │ " │
00:01:03 #2510 [Verbose] > │ System.Console.WriteLine v340 │
00:01:03 #2511 [Verbose] > │ let v341 : uint64 = v337 + 1UL │
00:01:03 #2512 [Verbose] > │ v335.l0 <- v341 │
00:01:03 #2513 [Verbose] > │ () │
00:01:03 #2514 [Verbose] > │ () │
00:01:03 #2515 [Verbose] > │ and method0 () : unit = │
00:01:03 #2516 [Verbose] > │ let v0 : (unit -> unit) = closure0() │
00:01:03 #2517 [Verbose] > │ let v1 : string = nameof v0 │
00:01:03 #2518 [Verbose] > │ let v2 : string = "" │
00:01:03 #2519 [Verbose] > │ System.Console.WriteLine v2 │
00:01:03 #2520 [Verbose] > │ System.Console.WriteLine v2 │
00:01:03 #2521 [Verbose] > │ let v3 : string = $"Test: {v1}" │
00:01:03 #2522 [Verbose] > │ System.Console.WriteLine v3 │
00:01:03 #2523 [Verbose] > │ let v4 : string = "abc" │
00:01:03 #2524 [Verbose] > │ let v5 : string = "bca cab abc" │
00:01:03 #2525 [Verbose] > │ let v6 : string = "abcde" │
00:01:03 #2526 [Verbose] > │ let v7 : string = "bcdea cdeab deabc eabcd abcde" │
00:01:03 #2527 [Verbose] > │ let v8 : string = "abcdefghi" │
00:01:03 #2528 [Verbose] > │ let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde │
00:01:03 #2529 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi" │
00:01:03 #2530 [Verbose] > │ let v10 : string = "abab" │
00:01:03 #2531 [Verbose] > │ let v11 : string = "baba abab baba abab" │
00:01:03 #2532 [Verbose] > │ let v12 : string = "aa" │
00:01:03 #2533 [Verbose] > │ let v13 : string = "aa aa" │
00:01:03 #2534 [Verbose] > │ let v14 : string = "z" │
00:01:03 #2535 [Verbose] > │ let v15 : UH0 = UH0_0 │
00:01:03 #2536 [Verbose] > │ let v16 : UH0 = UH0_1(v14, v14, v15) │
00:01:03 #2537 [Verbose] > │ let v17 : UH0 = UH0_1(v12, v13, v16) │
00:01:03 #2538 [Verbose] > │ let v18 : UH0 = UH0_1(v10, v11, v17) │
00:01:03 #2539 [Verbose] > │ let v19 : UH0 = UH0_1(v8, v9, v18) │
00:01:03 #2540 [Verbose] > │ let v20 : UH0 = UH0_1(v6, v7, v19) │
00:01:03 #2541 [Verbose] > │ let v21 : UH0 = UH0_1(v4, v5, v20) │
00:01:03 #2542 [Verbose] > │ let v22 : (struct (string * string) []) = method1(v21) │
00:01:03 #2543 [Verbose] > │ let v23 : uint64 = System.Convert.ToUInt64 v22.Length │
00:01:03 #2544 [Verbose] > │ let v24 : (struct (string * string * string * (int64 [])) []) = │
00:01:03 #2545 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:01:03 #2546 [Verbose] > │ (System.Convert.ToInt32(v23)) │
00:01:03 #2547 [Verbose] > │ let v25 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2548 [Verbose] > │ while method4(v23, v25) do │
00:01:03 #2549 [Verbose] > │ let v27 : uint64 = v25.l0 │
00:01:03 #2550 [Verbose] > │ let struct (v28 : string, v29 : string) = v22.[int v27] │
00:01:03 #2551 [Verbose] > │ let v30 : string = $"%A{v28}" │
00:01:03 #2552 [Verbose] > │ System.Console.WriteLine v2 │
00:01:03 #2553 [Verbose] > │ let v31 : string = $"Solution: {v30} " │
00:01:03 #2554 [Verbose] > │ System.Console.WriteLine v31 │
00:01:03 #2555 [Verbose] > │ let v32 : int32 = 0 │
00:01:03 #2556 [Verbose] > │ let v33 : string = "F" │
00:01:03 #2557 [Verbose] > │ let v34 : (string -> string) = closure1() │
00:01:03 #2558 [Verbose] > │ let v35 : int32 = 1 │
00:01:03 #2559 [Verbose] > │ let v36 : string = "FA" │
00:01:03 #2560 [Verbose] > │ let v37 : (string -> string) = closure2() │
00:01:03 #2561 [Verbose] > │ let v38 : UH3 = UH3_0 │
00:01:03 #2562 [Verbose] > │ let v39 : UH3 = UH3_1(v35, v36, v37, v38) │
00:01:03 #2563 [Verbose] > │ let v40 : UH3 = UH3_1(v32, v33, v34, v39) │
00:01:03 #2564 [Verbose] > │ let v41 : (struct (int32 * string * (string -> string)) []) = │
00:01:03 #2565 [Verbose] > │ method12(v40) │
00:01:03 #2566 [Verbose] > │ let v42 : uint64 = System.Convert.ToUInt64 v41.Length │
00:01:03 #2567 [Verbose] > │ let v43 : (struct (string * int64) []) = Array.zeroCreate<struct │
00:01:03 #2568 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42)) │
00:01:03 #2569 [Verbose] > │ let v44 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2570 [Verbose] > │ while method4(v42, v44) do │
00:01:03 #2571 [Verbose] > │ let v46 : uint64 = v44.l0 │
00:01:03 #2572 [Verbose] > │ let struct (v47 : int32, v48 : string, v49 : (string -> string)) │
00:01:03 #2573 [Verbose] > │ = v41.[int v46] │
00:01:03 #2574 [Verbose] > │ let v50 : unit option = None │
00:01:03 #2575 [Verbose] > │ let mutable _v50 = v50 │
00:01:03 #2576 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:03 #2577 [Verbose] > │ () │
00:01:03 #2578 [Verbose] > │ #endif │
00:01:03 #2579 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:03 #2580 [Verbose] > │ () │
00:01:03 #2581 [Verbose] > │ #endif │
00:01:03 #2582 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:03 #2583 [Verbose] > │ () │
00:01:03 #2584 [Verbose] > │ #endif │
00:01:03 #2585 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2586 [Verbose] > │ System.GC.Collect () │
00:01:03 #2587 [Verbose] > │ () │
00:01:03 #2588 [Verbose] > │ #endif │
00:01:03 #2589 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2590 [Verbose] > │ System.GC.Collect () │
00:01:03 #2591 [Verbose] > │ () │
00:01:03 #2592 [Verbose] > │ #endif │
00:01:03 #2593 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:03 #2594 [Verbose] > │ System.GC.Collect () │
00:01:03 #2595 [Verbose] > │ () │
00:01:03 #2596 [Verbose] > │ #endif │
00:01:03 #2597 [Verbose] > │ |> fun x -> _v50 <- Some x │
00:01:03 #2598 [Verbose] > │ _v50 |> Option.get │
00:01:03 #2599 [Verbose] > │ let v51 : (unit -> System.Diagnostics.Stopwatch) = │
00:01:03 #2600 [Verbose] > │ System.Diagnostics.Stopwatch │
00:01:03 #2601 [Verbose] > │ let v52 : System.Diagnostics.Stopwatch = v51 () │
00:01:03 #2602 [Verbose] > │ v52.Start () │
00:01:03 #2603 [Verbose] > │ let v53 : int64 = v52.ElapsedMilliseconds │
00:01:03 #2604 [Verbose] > │ let v54 : (int32 []) = Array.zeroCreate<int32> (2000001) │
00:01:03 #2605 [Verbose] > │ let v55 : Mut1 = {l0 = 0} : Mut1 │
00:01:03 #2606 [Verbose] > │ while method15(v55) do │
00:01:03 #2607 [Verbose] > │ let v57 : int32 = v55.l0 │
00:01:03 #2608 [Verbose] > │ v54.[int v57] <- v57 │
00:01:03 #2609 [Verbose] > │ let v58 : int32 = v57 + 1 │
00:01:03 #2610 [Verbose] > │ v55.l0 <- v58 │
00:01:03 #2611 [Verbose] > │ () │
00:01:03 #2612 [Verbose] > │ let v59 : ((int32 -> string) -> ((int32 []) -> (string []))) = │
00:01:03 #2613 [Verbose] > │ Array.Parallel.map │
00:01:03 #2614 [Verbose] > │ let v60 : (int32 -> string) = closure3(v28, v49) │
00:01:03 #2615 [Verbose] > │ let v61 : ((int32 []) -> (string [])) = v59 v60 │
00:01:03 #2616 [Verbose] > │ let v62 : (string []) = v61 v54 │
00:01:03 #2617 [Verbose] > │ let v63 : int32 = v62.Length │
00:01:03 #2618 [Verbose] > │ let v64 : int32 = v63 - 1 │
00:01:03 #2619 [Verbose] > │ let v65 : string = v62.[int v64] │
00:01:03 #2620 [Verbose] > │ let v66 : int64 = v52.ElapsedMilliseconds │
00:01:03 #2621 [Verbose] > │ let v67 : int64 = v66 - v53 │
00:01:03 #2622 [Verbose] > │ let v68 : string = $"Test case {v47 + 1}. {v48}. Time: {v67} " │
00:01:03 #2623 [Verbose] > │ System.Console.WriteLine v68 │
00:01:03 #2624 [Verbose] > │ v43.[int v46] <- struct (v65, v67) │
00:01:03 #2625 [Verbose] > │ let v69 : uint64 = v46 + 1UL │
00:01:03 #2626 [Verbose] > │ v44.l0 <- v69 │
00:01:03 #2627 [Verbose] > │ () │
00:01:03 #2628 [Verbose] > │ let v70 : uint64 = System.Convert.ToUInt64 v43.Length │
00:01:03 #2629 [Verbose] > │ let v71 : (string []) = Array.zeroCreate<string> │
00:01:03 #2630 [Verbose] > │ (System.Convert.ToInt32(v70)) │
00:01:03 #2631 [Verbose] > │ let v72 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2632 [Verbose] > │ while method4(v70, v72) do │
00:01:03 #2633 [Verbose] > │ let v74 : uint64 = v72.l0 │
00:01:03 #2634 [Verbose] > │ let struct (v75 : string, v76 : int64) = v43.[int v74] │
00:01:03 #2635 [Verbose] > │ v71.[int v74] <- v75 │
00:01:03 #2636 [Verbose] > │ let v77 : uint64 = v74 + 1UL │
00:01:03 #2637 [Verbose] > │ v72.l0 <- v77 │
00:01:03 #2638 [Verbose] > │ () │
00:01:03 #2639 [Verbose] > │ let v78 : uint64 = System.Convert.ToUInt64 v71.Length │
00:01:03 #2640 [Verbose] > │ let v79 : bool = v78 <= 1UL │
00:01:03 #2641 [Verbose] > │ if v79 then │
00:01:03 #2642 [Verbose] > │ () │
00:01:03 #2643 [Verbose] > │ else │
00:01:03 #2644 [Verbose] > │ let v80 : string = v71.[int 0UL] │
00:01:03 #2645 [Verbose] > │ let v81 : uint64 = 0UL │
00:01:03 #2646 [Verbose] > │ let v82 : bool = method16(v80, v71, v81) │
00:01:03 #2647 [Verbose] > │ if v82 then │
00:01:03 #2648 [Verbose] > │ () │
00:01:03 #2649 [Verbose] > │ else │
00:01:03 #2650 [Verbose] > │ let v83 : string = $"Challenge error: {v71}" │
00:01:03 #2651 [Verbose] > │ failwith<unit> v83 │
00:01:03 #2652 [Verbose] > │ let v84 : string = $"%A{v29}" │
00:01:03 #2653 [Verbose] > │ let v85 : (string []) = Array.zeroCreate<string> │
00:01:03 #2654 [Verbose] > │ (System.Convert.ToInt32(v70)) │
00:01:03 #2655 [Verbose] > │ let v86 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2656 [Verbose] > │ while method4(v70, v86) do │
00:01:03 #2657 [Verbose] > │ let v88 : uint64 = v86.l0 │
00:01:03 #2658 [Verbose] > │ let struct (v89 : string, v90 : int64) = v43.[int v88] │
00:01:03 #2659 [Verbose] > │ v85.[int v88] <- v89 │
00:01:03 #2660 [Verbose] > │ let v91 : uint64 = v88 + 1UL │
00:01:03 #2661 [Verbose] > │ v86.l0 <- v91 │
00:01:03 #2662 [Verbose] > │ () │
00:01:03 #2663 [Verbose] > │ let v92 : string = v85.[int 0UL] │
00:01:03 #2664 [Verbose] > │ let v93 : string = $"%A{v92}" │
00:01:03 #2665 [Verbose] > │ let v94 : (int64 []) = Array.zeroCreate<int64> │
00:01:03 #2666 [Verbose] > │ (System.Convert.ToInt32(v70)) │
00:01:03 #2667 [Verbose] > │ let v95 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2668 [Verbose] > │ while method4(v70, v95) do │
00:01:03 #2669 [Verbose] > │ let v97 : uint64 = v95.l0 │
00:01:03 #2670 [Verbose] > │ let struct (v98 : string, v99 : int64) = v43.[int v97] │
00:01:03 #2671 [Verbose] > │ v94.[int v97] <- v99 │
00:01:03 #2672 [Verbose] > │ let v100 : uint64 = v97 + 1UL │
00:01:03 #2673 [Verbose] > │ v95.l0 <- v100 │
00:01:03 #2674 [Verbose] > │ () │
00:01:03 #2675 [Verbose] > │ v24.[int v27] <- struct (v84, v30, v93, v94) │
00:01:03 #2676 [Verbose] > │ let v101 : uint64 = v27 + 1UL │
00:01:03 #2677 [Verbose] > │ v25.l0 <- v101 │
00:01:03 #2678 [Verbose] > │ () │
00:01:03 #2679 [Verbose] > │ let v102 : uint64 = System.Convert.ToUInt64 v24.Length │
00:01:03 #2680 [Verbose] > │ let v103 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:01:03 #2681 [Verbose] > │ US0)> (System.Convert.ToInt32(v102)) │
00:01:03 #2682 [Verbose] > │ let v104 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2683 [Verbose] > │ while method4(v102, v104) do │
00:01:03 #2684 [Verbose] > │ let v106 : uint64 = v104.l0 │
00:01:03 #2685 [Verbose] > │ let struct (v107 : string, v108 : string, v109 : string, v110 : │
00:01:03 #2686 [Verbose] > │ (int64 [])) = v24.[int v106] │
00:01:03 #2687 [Verbose] > │ let v111 : uint64 = System.Convert.ToUInt64 v110.Length │
00:01:03 #2688 [Verbose] > │ let v112 : UH4 = UH4_0 │
00:01:03 #2689 [Verbose] > │ let v113 : Mut2 = {l0 = 0UL; l1 = v112; l2 = 0L} : Mut2 │
00:01:03 #2690 [Verbose] > │ while method17(v111, v113) do │
00:01:03 #2691 [Verbose] > │ let v115 : uint64 = v113.l0 │
00:01:03 #2692 [Verbose] > │ let struct (v116 : UH4, v117 : int64) = v113.l1, v113.l2 │
00:01:03 #2693 [Verbose] > │ let v118 : int64 = v110.[int v115] │
00:01:03 #2694 [Verbose] > │ let v119 : int64 = v117 + 1L │
00:01:03 #2695 [Verbose] > │ let v120 : uint64 = v115 + 1UL │
00:01:03 #2696 [Verbose] > │ let v121 : UH4 = UH4_1(v117, v118, v116) │
00:01:03 #2697 [Verbose] > │ v113.l0 <- v120 │
00:01:03 #2698 [Verbose] > │ v113.l1 <- v121 │
00:01:03 #2699 [Verbose] > │ v113.l2 <- v119 │
00:01:03 #2700 [Verbose] > │ () │
00:01:03 #2701 [Verbose] > │ let struct (v122 : UH4, v123 : int64) = v113.l1, v113.l2 │
00:01:03 #2702 [Verbose] > │ let v124 : UH4 = UH4_0 │
00:01:03 #2703 [Verbose] > │ let v125 : UH4 = method18(v122, v124) │
00:01:03 #2704 [Verbose] > │ let v126 : (struct (int64 * int64) []) = method19(v125) │
00:01:03 #2705 [Verbose] > │ let v127 : int32 = v126.Length │
00:01:03 #2706 [Verbose] > │ let v128 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:01:03 #2707 [Verbose] > │ (int64 * int64)> (v127) │
00:01:03 #2708 [Verbose] > │ let v129 : Mut1 = {l0 = 0} : Mut1 │
00:01:03 #2709 [Verbose] > │ while method5(v127, v129) do │
00:01:03 #2710 [Verbose] > │ let v131 : int32 = v129.l0 │
00:01:03 #2711 [Verbose] > │ let struct (v132 : int64, v133 : int64) = v126.[int v131] │
00:01:03 #2712 [Verbose] > │ let v134 : int64 = v132 + 1L │
00:01:03 #2713 [Verbose] > │ v128.[int v131] <- struct (v134, v133) │
00:01:03 #2714 [Verbose] > │ let v135 : int32 = v131 + 1 │
00:01:03 #2715 [Verbose] > │ v129.l0 <- v135 │
00:01:03 #2716 [Verbose] > │ () │
00:01:03 #2717 [Verbose] > │ let v136 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:01:03 #2718 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:01:03 #2719 [Verbose] > │ let v137 : (struct (int64 * int64) -> int64) = closure4() │
00:01:03 #2720 [Verbose] > │ let v138 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:01:03 #2721 [Verbose] > │ ])) = v136 v137 │
00:01:03 #2722 [Verbose] > │ let v139 : (struct (int64 * int64) []) = v138 v128 │
00:01:03 #2723 [Verbose] > │ let struct (v140 : int64, v141 : int64) = v139.[int 0] │
00:01:03 #2724 [Verbose] > │ let v142 : string = $"%A{struct (v140, v141)}" │
00:01:03 #2725 [Verbose] > │ let v143 : bool = v107 = v109 │
00:01:03 #2726 [Verbose] > │ let v148 : US0 = │
00:01:03 #2727 [Verbose] > │ if v143 then │
00:01:03 #2728 [Verbose] > │ let v144 : System.ConsoleColor = │
00:01:03 #2729 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:01:03 #2730 [Verbose] > │ US0_0(v144) │
00:01:03 #2731 [Verbose] > │ else │
00:01:03 #2732 [Verbose] > │ let v146 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:03 #2733 [Verbose] > │ US0_0(v146) │
00:01:03 #2734 [Verbose] > │ let v149 : UH2 = UH2_0 │
00:01:03 #2735 [Verbose] > │ let v150 : UH2 = UH2_1(v142, v149) │
00:01:03 #2736 [Verbose] > │ let v151 : UH2 = UH2_1(v109, v150) │
00:01:03 #2737 [Verbose] > │ let v152 : UH2 = UH2_1(v107, v151) │
00:01:03 #2738 [Verbose] > │ let v153 : UH2 = UH2_1(v108, v152) │
00:01:03 #2739 [Verbose] > │ v103.[int v106] <- struct (v153, v148) │
00:01:03 #2740 [Verbose] > │ let v154 : uint64 = v106 + 1UL │
00:01:03 #2741 [Verbose] > │ v104.l0 <- v154 │
00:01:03 #2742 [Verbose] > │ () │
00:01:03 #2743 [Verbose] > │ let v155 : string = "Input" │
00:01:03 #2744 [Verbose] > │ let v156 : string = "Expected" │
00:01:03 #2745 [Verbose] > │ let v157 : string = "Result" │
00:01:03 #2746 [Verbose] > │ let v158 : string = "Best" │
00:01:03 #2747 [Verbose] > │ let v159 : UH2 = UH2_0 │
00:01:03 #2748 [Verbose] > │ let v160 : UH2 = UH2_1(v158, v159) │
00:01:03 #2749 [Verbose] > │ let v161 : UH2 = UH2_1(v157, v160) │
00:01:03 #2750 [Verbose] > │ let v162 : UH2 = UH2_1(v156, v161) │
00:01:03 #2751 [Verbose] > │ let v163 : UH2 = UH2_1(v155, v162) │
00:01:03 #2752 [Verbose] > │ let v164 : US0 = US0_1 │
00:01:03 #2753 [Verbose] > │ let v165 : string = "---" │
00:01:03 #2754 [Verbose] > │ let v166 : UH2 = UH2_0 │
00:01:03 #2755 [Verbose] > │ let v167 : UH2 = UH2_1(v165, v166) │
00:01:03 #2756 [Verbose] > │ let v168 : UH2 = UH2_1(v165, v167) │
00:01:03 #2757 [Verbose] > │ let v169 : UH2 = UH2_1(v165, v168) │
00:01:03 #2758 [Verbose] > │ let v170 : UH2 = UH2_1(v165, v169) │
00:01:03 #2759 [Verbose] > │ let v171 : US0 = US0_1 │
00:01:03 #2760 [Verbose] > │ let v172 : UH5 = UH5_0 │
00:01:03 #2761 [Verbose] > │ let v173 : UH5 = UH5_1(v170, v171, v172) │
00:01:03 #2762 [Verbose] > │ let v174 : UH5 = UH5_1(v163, v164, v173) │
00:01:03 #2763 [Verbose] > │ let v175 : (struct (UH2 * US0) []) = method22(v174) │
00:01:03 #2764 [Verbose] > │ let v176 : uint64 = System.Convert.ToUInt64 v175.Length │
00:01:03 #2765 [Verbose] > │ let v177 : uint64 = System.Convert.ToUInt64 v103.Length │
00:01:03 #2766 [Verbose] > │ let v178 : uint64 = v176 + v177 │
00:01:03 #2767 [Verbose] > │ let v179 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * │
00:01:03 #2768 [Verbose] > │ US0)> (System.Convert.ToInt32(v178)) │
00:01:03 #2769 [Verbose] > │ let v180 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2770 [Verbose] > │ while method4(v178, v180) do │
00:01:03 #2771 [Verbose] > │ let v182 : uint64 = v180.l0 │
00:01:03 #2772 [Verbose] > │ let v183 : bool = v182 < v176 │
00:01:03 #2773 [Verbose] > │ let struct (v189 : UH2, v190 : US0) = │
00:01:03 #2774 [Verbose] > │ if v183 then │
00:01:03 #2775 [Verbose] > │ let struct (v184 : UH2, v185 : US0) = v175.[int v182] │
00:01:03 #2776 [Verbose] > │ struct (v184, v185) │
00:01:03 #2777 [Verbose] > │ else │
00:01:03 #2778 [Verbose] > │ let v186 : uint64 = v182 - v176 │
00:01:03 #2779 [Verbose] > │ let struct (v187 : UH2, v188 : US0) = v103.[int v186] │
00:01:03 #2780 [Verbose] > │ struct (v187, v188) │
00:01:03 #2781 [Verbose] > │ v179.[int v182] <- struct (v189, v190) │
00:01:03 #2782 [Verbose] > │ let v191 : uint64 = v182 + 1UL │
00:01:03 #2783 [Verbose] > │ v180.l0 <- v191 │
00:01:03 #2784 [Verbose] > │ () │
00:01:03 #2785 [Verbose] > │ let v192 : uint64 = System.Convert.ToUInt64 v179.Length │
00:01:03 #2786 [Verbose] > │ let v193 : ((string []) []) = Array.zeroCreate<(string [])> │
00:01:03 #2787 [Verbose] > │ (System.Convert.ToInt32(v192)) │
00:01:03 #2788 [Verbose] > │ let v194 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2789 [Verbose] > │ while method4(v192, v194) do │
00:01:03 #2790 [Verbose] > │ let v196 : uint64 = v194.l0 │
00:01:03 #2791 [Verbose] > │ let struct (v197 : UH2, v198 : US0) = v179.[int v196] │
00:01:03 #2792 [Verbose] > │ let v199 : (string []) = method25(v197) │
00:01:03 #2793 [Verbose] > │ v193.[int v196] <- v199 │
00:01:03 #2794 [Verbose] > │ let v200 : uint64 = v196 + 1UL │
00:01:03 #2795 [Verbose] > │ v194.l0 <- v200 │
00:01:03 #2796 [Verbose] > │ () │
00:01:03 #2797 [Verbose] > │ let v201 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:01:03 #2798 [Verbose] > │ let v202 : ((string []) []) = v201 v193 │
00:01:03 #2799 [Verbose] > │ let v203 : uint64 = System.Convert.ToUInt64 v202.Length │
00:01:03 #2800 [Verbose] > │ let v204 : (int64 []) = Array.zeroCreate<int64> │
00:01:03 #2801 [Verbose] > │ (System.Convert.ToInt32(v203)) │
00:01:03 #2802 [Verbose] > │ let v205 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2803 [Verbose] > │ while method4(v203, v205) do │
00:01:03 #2804 [Verbose] > │ let v207 : uint64 = v205.l0 │
00:01:03 #2805 [Verbose] > │ let v208 : (string []) = v202.[int v207] │
00:01:03 #2806 [Verbose] > │ let v209 : uint64 = System.Convert.ToUInt64 v208.Length │
00:01:03 #2807 [Verbose] > │ let v210 : (int64 []) = Array.zeroCreate<int64> │
00:01:03 #2808 [Verbose] > │ (System.Convert.ToInt32(v209)) │
00:01:03 #2809 [Verbose] > │ let v211 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2810 [Verbose] > │ while method4(v209, v211) do │
00:01:03 #2811 [Verbose] > │ let v213 : uint64 = v211.l0 │
00:01:03 #2812 [Verbose] > │ let v214 : string = v208.[int v213] │
00:01:03 #2813 [Verbose] > │ let v215 : int64 = System.Convert.ToInt64 v214.Length │
00:01:03 #2814 [Verbose] > │ v210.[int v213] <- v215 │
00:01:03 #2815 [Verbose] > │ let v216 : uint64 = v213 + 1UL │
00:01:03 #2816 [Verbose] > │ v211.l0 <- v216 │
00:01:03 #2817 [Verbose] > │ () │
00:01:03 #2818 [Verbose] > │ let v217 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:01:03 #2819 [Verbose] > │ let v218 : (int64 []) = v217 v210 │
00:01:03 #2820 [Verbose] > │ let v219 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:01:03 #2821 [Verbose] > │ let v220 : ((int64 []) -> int64 option) = v219 0 │
00:01:03 #2822 [Verbose] > │ let v221 : int64 option = v220 v218 │
00:01:03 #2823 [Verbose] > │ let v222 : (int64 -> US1) = method28() │
00:01:03 #2824 [Verbose] > │ let v223 : US1 = US1_1 │
00:01:03 #2825 [Verbose] > │ let v224 : US1 = v221 |> Option.map v222 |> Option.defaultValue v223 │
00:01:03 #2826 [Verbose] > │ let v227 : int64 = │
00:01:03 #2827 [Verbose] > │ match v224 with │
00:01:03 #2828 [Verbose] > │ | US1_1 -> (* None *) │
00:01:03 #2829 [Verbose] > │ 0L │
00:01:03 #2830 [Verbose] > │ | US1_0(v225) -> (* Some *) │
00:01:03 #2831 [Verbose] > │ v225 │
00:01:03 #2832 [Verbose] > │ v204.[int v207] <- v227 │
00:01:03 #2833 [Verbose] > │ let v228 : uint64 = v207 + 1UL │
00:01:03 #2834 [Verbose] > │ v205.l0 <- v228 │
00:01:03 #2835 [Verbose] > │ () │
00:01:03 #2836 [Verbose] > │ let v229 : uint64 = System.Convert.ToUInt64 v204.Length │
00:01:03 #2837 [Verbose] > │ let v230 : UH6 = UH6_0 │
00:01:03 #2838 [Verbose] > │ let v231 : Mut3 = {l0 = 0UL; l1 = v230; l2 = 0} : Mut3 │
00:01:03 #2839 [Verbose] > │ while method29(v229, v231) do │
00:01:03 #2840 [Verbose] > │ let v233 : uint64 = v231.l0 │
00:01:03 #2841 [Verbose] > │ let struct (v234 : UH6, v235 : int32) = v231.l1, v231.l2 │
00:01:03 #2842 [Verbose] > │ let v236 : int64 = v204.[int v233] │
00:01:03 #2843 [Verbose] > │ let v237 : int32 = v235 + 1 │
00:01:03 #2844 [Verbose] > │ let v238 : uint64 = v233 + 1UL │
00:01:03 #2845 [Verbose] > │ let v239 : UH6 = UH6_1(v235, v236, v234) │
00:01:03 #2846 [Verbose] > │ v231.l0 <- v238 │
00:01:03 #2847 [Verbose] > │ v231.l1 <- v239 │
00:01:03 #2848 [Verbose] > │ v231.l2 <- v237 │
00:01:03 #2849 [Verbose] > │ () │
00:01:03 #2850 [Verbose] > │ let struct (v240 : UH6, v241 : int32) = v231.l1, v231.l2 │
00:01:03 #2851 [Verbose] > │ let v242 : UH6 = UH6_0 │
00:01:03 #2852 [Verbose] > │ let v243 : UH6 = method30(v240, v242) │
00:01:03 #2853 [Verbose] > │ let v244 : (struct (int32 * int64) []) = method31(v243) │
00:01:03 #2854 [Verbose] > │ let v245 : Map<int32, int64> = v244 |> Array.map (fun (struct (a, b)) -> │
00:01:03 #2855 [Verbose] > │ a, b) |> Map.ofArray │
00:01:03 #2856 [Verbose] > │ let v246 : (struct ((string []) * US0) []) = Array.zeroCreate<struct │
00:01:03 #2857 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v192)) │
00:01:03 #2858 [Verbose] > │ let v247 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2859 [Verbose] > │ while method4(v192, v247) do │
00:01:03 #2860 [Verbose] > │ let v249 : uint64 = v247.l0 │
00:01:03 #2861 [Verbose] > │ let struct (v250 : UH2, v251 : US0) = v179.[int v249] │
00:01:03 #2862 [Verbose] > │ let v252 : UH7 = UH7_0 │
00:01:03 #2863 [Verbose] > │ let v253 : int32 = 0 │
00:01:03 #2864 [Verbose] > │ let struct (v254 : UH7, v255 : int32) = method34(v250, v252, v253) │
00:01:03 #2865 [Verbose] > │ let v256 : UH7 = UH7_0 │
00:01:03 #2866 [Verbose] > │ let v257 : UH7 = method35(v254, v256) │
00:01:03 #2867 [Verbose] > │ let v258 : UH2 = UH2_0 │
00:01:03 #2868 [Verbose] > │ let v259 : UH2 = method36(v245, v257, v258) │
00:01:03 #2869 [Verbose] > │ let v260 : (string []) = method9(v259) │
00:01:03 #2870 [Verbose] > │ v246.[int v249] <- struct (v260, v251) │
00:01:03 #2871 [Verbose] > │ let v261 : uint64 = v249 + 1UL │
00:01:03 #2872 [Verbose] > │ v247.l0 <- v261 │
00:01:03 #2873 [Verbose] > │ () │
00:01:03 #2874 [Verbose] > │ System.Console.WriteLine v2 │
00:01:03 #2875 [Verbose] > │ let v262 : uint64 = System.Convert.ToUInt64 v246.Length │
00:01:03 #2876 [Verbose] > │ let v263 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2877 [Verbose] > │ while method4(v262, v263) do │
00:01:03 #2878 [Verbose] > │ let v265 : uint64 = v263.l0 │
00:01:03 #2879 [Verbose] > │ let struct (v266 : (string []), v267 : US0) = v246.[int v265] │
00:01:03 #2880 [Verbose] > │ match v267 with │
00:01:03 #2881 [Verbose] > │ | US0_1 -> (* None *) │
00:01:03 #2882 [Verbose] > │ let v270 : unit option = None │
00:01:03 #2883 [Verbose] > │ let mutable _v270 = v270 │
00:01:03 #2884 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:03 #2885 [Verbose] > │ () │
00:01:03 #2886 [Verbose] > │ #endif │
00:01:03 #2887 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:03 #2888 [Verbose] > │ () │
00:01:03 #2889 [Verbose] > │ #endif │
00:01:03 #2890 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:03 #2891 [Verbose] > │ () │
00:01:03 #2892 [Verbose] > │ #endif │
00:01:03 #2893 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2894 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2895 [Verbose] > │ () │
00:01:03 #2896 [Verbose] > │ #endif │
00:01:03 #2897 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2898 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2899 [Verbose] > │ () │
00:01:03 #2900 [Verbose] > │ #endif │
00:01:03 #2901 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:03 #2902 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2903 [Verbose] > │ () │
00:01:03 #2904 [Verbose] > │ #endif │
00:01:03 #2905 [Verbose] > │ |> fun x -> _v270 <- Some x │
00:01:03 #2906 [Verbose] > │ _v270 |> Option.get │
00:01:03 #2907 [Verbose] > │ () │
00:01:03 #2908 [Verbose] > │ | US0_0(v268) -> (* Some *) │
00:01:03 #2909 [Verbose] > │ let v269 : unit option = None │
00:01:03 #2910 [Verbose] > │ let mutable _v269 = v269 │
00:01:03 #2911 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:03 #2912 [Verbose] > │ () │
00:01:03 #2913 [Verbose] > │ #endif │
00:01:03 #2914 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:03 #2915 [Verbose] > │ () │
00:01:03 #2916 [Verbose] > │ #endif │
00:01:03 #2917 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:03 #2918 [Verbose] > │ () │
00:01:03 #2919 [Verbose] > │ #endif │
00:01:03 #2920 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2921 [Verbose] > │ System.Console.ForegroundColor <- v268 │
00:01:03 #2922 [Verbose] > │ () │
00:01:03 #2923 [Verbose] > │ #endif │
00:01:03 #2924 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2925 [Verbose] > │ System.Console.ForegroundColor <- v268 │
00:01:03 #2926 [Verbose] > │ () │
00:01:03 #2927 [Verbose] > │ #endif │
00:01:03 #2928 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:03 #2929 [Verbose] > │ System.Console.ForegroundColor <- v268 │
00:01:03 #2930 [Verbose] > │ () │
00:01:03 #2931 [Verbose] > │ #endif │
00:01:03 #2932 [Verbose] > │ |> fun x -> _v269 <- Some x │
00:01:03 #2933 [Verbose] > │ _v269 |> Option.get │
00:01:03 #2934 [Verbose] > │ () │
00:01:03 #2935 [Verbose] > │ let v271 : string = "\t| " │
00:01:03 #2936 [Verbose] > │ let v272 : string = System.String.Join (v271, v266) │
00:01:03 #2937 [Verbose] > │ System.Console.WriteLine v272 │
00:01:03 #2938 [Verbose] > │ let v273 : unit option = None │
00:01:03 #2939 [Verbose] > │ let mutable _v273 = v273 │
00:01:03 #2940 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:03 #2941 [Verbose] > │ () │
00:01:03 #2942 [Verbose] > │ #endif │
00:01:03 #2943 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:03 #2944 [Verbose] > │ () │
00:01:03 #2945 [Verbose] > │ #endif │
00:01:03 #2946 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:03 #2947 [Verbose] > │ () │
00:01:03 #2948 [Verbose] > │ #endif │
00:01:03 #2949 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2950 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2951 [Verbose] > │ () │
00:01:03 #2952 [Verbose] > │ #endif │
00:01:03 #2953 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:03 #2954 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2955 [Verbose] > │ () │
00:01:03 #2956 [Verbose] > │ #endif │
00:01:03 #2957 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:03 #2958 [Verbose] > │ System.Console.ResetColor () │
00:01:03 #2959 [Verbose] > │ () │
00:01:03 #2960 [Verbose] > │ #endif │
00:01:03 #2961 [Verbose] > │ |> fun x -> _v273 <- Some x │
00:01:03 #2962 [Verbose] > │ _v273 |> Option.get │
00:01:03 #2963 [Verbose] > │ let v274 : uint64 = v265 + 1UL │
00:01:03 #2964 [Verbose] > │ v263.l0 <- v274 │
00:01:03 #2965 [Verbose] > │ () │
00:01:03 #2966 [Verbose] > │ let v275 : ((float []) []) = Array.zeroCreate<(float [])> │
00:01:03 #2967 [Verbose] > │ (System.Convert.ToInt32(v102)) │
00:01:03 #2968 [Verbose] > │ let v276 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2969 [Verbose] > │ while method4(v102, v276) do │
00:01:03 #2970 [Verbose] > │ let v278 : uint64 = v276.l0 │
00:01:03 #2971 [Verbose] > │ let struct (v279 : string, v280 : string, v281 : string, v282 : │
00:01:03 #2972 [Verbose] > │ (int64 [])) = v24.[int v278] │
00:01:03 #2973 [Verbose] > │ let v283 : (int64 -> float) = float │
00:01:03 #2974 [Verbose] > │ let v284 : uint64 = System.Convert.ToUInt64 v282.Length │
00:01:03 #2975 [Verbose] > │ let v285 : (float []) = Array.zeroCreate<float> │
00:01:03 #2976 [Verbose] > │ (System.Convert.ToInt32(v284)) │
00:01:03 #2977 [Verbose] > │ let v286 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2978 [Verbose] > │ while method4(v284, v286) do │
00:01:03 #2979 [Verbose] > │ let v288 : uint64 = v286.l0 │
00:01:03 #2980 [Verbose] > │ let v289 : int64 = v282.[int v288] │
00:01:03 #2981 [Verbose] > │ let v290 : float = v283 v289 │
00:01:03 #2982 [Verbose] > │ v285.[int v288] <- v290 │
00:01:03 #2983 [Verbose] > │ let v291 : uint64 = v288 + 1UL │
00:01:03 #2984 [Verbose] > │ v286.l0 <- v291 │
00:01:03 #2985 [Verbose] > │ () │
00:01:03 #2986 [Verbose] > │ v275.[int v278] <- v285 │
00:01:03 #2987 [Verbose] > │ let v292 : uint64 = v278 + 1UL │
00:01:03 #2988 [Verbose] > │ v276.l0 <- v292 │
00:01:03 #2989 [Verbose] > │ () │
00:01:03 #2990 [Verbose] > │ let v293 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:01:03 #2991 [Verbose] > │ let v294 : ((float []) []) = v293 v275 │
00:01:03 #2992 [Verbose] > │ let v295 : uint64 = System.Convert.ToUInt64 v294.Length │
00:01:03 #2993 [Verbose] > │ let v296 : (float []) = Array.zeroCreate<float> │
00:01:03 #2994 [Verbose] > │ (System.Convert.ToInt32(v295)) │
00:01:03 #2995 [Verbose] > │ let v297 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #2996 [Verbose] > │ while method4(v295, v297) do │
00:01:03 #2997 [Verbose] > │ let v299 : uint64 = v297.l0 │
00:01:03 #2998 [Verbose] > │ let v300 : (float []) = v294.[int v299] │
00:01:03 #2999 [Verbose] > │ let v301 : ((float []) -> float) = Array.average │
00:01:03 #3000 [Verbose] > │ let v302 : float = v301 v300 │
00:01:03 #3001 [Verbose] > │ v296.[int v299] <- v302 │
00:01:03 #3002 [Verbose] > │ let v303 : uint64 = v299 + 1UL │
00:01:03 #3003 [Verbose] > │ v297.l0 <- v303 │
00:01:03 #3004 [Verbose] > │ () │
00:01:03 #3005 [Verbose] > │ let v304 : (float -> int64) = int64 │
00:01:03 #3006 [Verbose] > │ let v305 : uint64 = System.Convert.ToUInt64 v296.Length │
00:01:03 #3007 [Verbose] > │ let v306 : (int64 []) = Array.zeroCreate<int64> │
00:01:03 #3008 [Verbose] > │ (System.Convert.ToInt32(v305)) │
00:01:03 #3009 [Verbose] > │ let v307 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #3010 [Verbose] > │ while method4(v305, v307) do │
00:01:03 #3011 [Verbose] > │ let v309 : uint64 = v307.l0 │
00:01:03 #3012 [Verbose] > │ let v310 : float = v296.[int v309] │
00:01:03 #3013 [Verbose] > │ let v311 : int64 = v304 v310 │
00:01:03 #3014 [Verbose] > │ v306.[int v309] <- v311 │
00:01:03 #3015 [Verbose] > │ let v312 : uint64 = v309 + 1UL │
00:01:03 #3016 [Verbose] > │ v307.l0 <- v312 │
00:01:03 #3017 [Verbose] > │ () │
00:01:03 #3018 [Verbose] > │ let v313 : uint64 = System.Convert.ToUInt64 v306.Length │
00:01:03 #3019 [Verbose] > │ let v314 : UH6 = UH6_0 │
00:01:03 #3020 [Verbose] > │ let v315 : Mut3 = {l0 = 0UL; l1 = v314; l2 = 0} : Mut3 │
00:01:03 #3021 [Verbose] > │ while method29(v313, v315) do │
00:01:03 #3022 [Verbose] > │ let v317 : uint64 = v315.l0 │
00:01:03 #3023 [Verbose] > │ let struct (v318 : UH6, v319 : int32) = v315.l1, v315.l2 │
00:01:03 #3024 [Verbose] > │ let v320 : int64 = v306.[int v317] │
00:01:03 #3025 [Verbose] > │ let v321 : int32 = v319 + 1 │
00:01:03 #3026 [Verbose] > │ let v322 : uint64 = v317 + 1UL │
00:01:03 #3027 [Verbose] > │ let v323 : UH6 = UH6_1(v319, v320, v318) │
00:01:03 #3028 [Verbose] > │ v315.l0 <- v322 │
00:01:03 #3029 [Verbose] > │ v315.l1 <- v323 │
00:01:03 #3030 [Verbose] > │ v315.l2 <- v321 │
00:01:03 #3031 [Verbose] > │ () │
00:01:03 #3032 [Verbose] > │ let struct (v324 : UH6, v325 : int32) = v315.l1, v315.l2 │
00:01:03 #3033 [Verbose] > │ let v326 : UH6 = UH6_0 │
00:01:03 #3034 [Verbose] > │ let v327 : UH6 = method30(v324, v326) │
00:01:03 #3035 [Verbose] > │ let v328 : (struct (int32 * int64) []) = method37(v327) │
00:01:03 #3036 [Verbose] > │ System.Console.WriteLine v2 │
00:01:03 #3037 [Verbose] > │ let v329 : string = "Average Ranking " │
00:01:03 #3038 [Verbose] > │ System.Console.WriteLine v329 │
00:01:03 #3039 [Verbose] > │ let v330 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:01:03 #3040 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:01:03 #3041 [Verbose] > │ let v331 : (struct (int32 * int64) -> int64) = closure6() │
00:01:03 #3042 [Verbose] > │ let v332 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:01:03 #3043 [Verbose] > │ = v330 v331 │
00:01:03 #3044 [Verbose] > │ let v333 : (struct (int32 * int64) []) = v332 v328 │
00:01:03 #3045 [Verbose] > │ let v334 : uint64 = System.Convert.ToUInt64 v333.Length │
00:01:03 #3046 [Verbose] > │ let v335 : Mut0 = {l0 = 0UL} : Mut0 │
00:01:03 #3047 [Verbose] > │ while method4(v334, v335) do │
00:01:03 #3048 [Verbose] > │ let v337 : uint64 = v335.l0 │
00:01:03 #3049 [Verbose] > │ let struct (v338 : int32, v339 : int64) = v333.[int v337] │
00:01:03 #3050 [Verbose] > │ let v340 : string = $"Test case %d{v338 + 1}. Average Time: %A{v339} │
00:01:03 #3051 [Verbose] > │ " │
00:01:03 #3052 [Verbose] > │ System.Console.WriteLine v340 │
00:01:03 #3053 [Verbose] > │ let v341 : uint64 = v337 + 1UL │
00:01:03 #3054 [Verbose] > │ v335.l0 <- v341 │
00:01:03 #3055 [Verbose] > │ () │
00:01:03 #3056 [Verbose] > │ () │
00:01:03 #3057 [Verbose] > │ method0() │
00:01:03 #3058 [Verbose] > │ │
00:01:03 #3059 [Verbose] > │ │
00:01:03 #3060 [Verbose] > │ │
00:01:03 #3061 [Verbose] > │ Test: v0 │
00:01:03 #3062 [Verbose] > │ │
00:01:03 #3063 [Verbose] > │ Solution: "abc" │
00:01:03 #3064 [Verbose] > │ Test case 1. F. Time: 1137 │
00:01:03 #3065 [Verbose] > │ Test case 2. FA. Time: 1554 │
00:01:03 #3066 [Verbose] > │ │
00:01:03 #3067 [Verbose] > │ Solution: "abcde" │
00:01:03 #3068 [Verbose] > │ Test case 1. F. Time: 1649 │
00:01:03 #3069 [Verbose] > │ Test case 2. FA. Time: 2291 │
00:01:03 #3070 [Verbose] > │ │
00:01:03 #3071 [Verbose] > │ Solution: "abcdefghi" │
00:01:03 #3072 [Verbose] > │ Test case 1. F. Time: 2054 │
00:01:03 #3073 [Verbose] > │ Test case 2. FA. Time: 2395 │
00:01:03 #3074 [Verbose] > │ │
00:01:03 #3075 [Verbose] > │ Solution: "abab" │
00:01:03 #3076 [Verbose] > │ Test case 1. F. Time: 1158 │
00:01:03 #3077 [Verbose] > │ Test case 2. FA. Time: 1219 │
00:01:03 #3078 [Verbose] > │ │
00:01:03 #3079 [Verbose] > │ Solution: "aa" │
00:01:03 #3080 [Verbose] > │ Test case 1. F. Time: 803 │
00:01:03 #3081 [Verbose] > │ Test case 2. FA. Time: 919 │
00:01:03 #3082 [Verbose] > │ │
00:01:03 #3083 [Verbose] > │ Solution: "z" │
00:01:03 #3084 [Verbose] > │ Test case 1. F. Time: 242 │
00:01:03 #3085 [Verbose] > │ Test case 2. FA. Time: 239 │
00:01:03 #3086 [Verbose] > │ │
00:01:03 #3087 [Verbose] > │ Input | Expected │
00:01:03 #3088 [Verbose] > │ │
00:01:03 #3089 [Verbose] > │ | Result │
00:01:03 #3090 [Verbose] > │ │
00:01:03 #3091 [Verbose] > │ | Best │
00:01:03 #3092 [Verbose] > │ --- | --- │
00:01:03 #3093 [Verbose] > │ │
00:01:03 #3094 [Verbose] > │ | --- │
00:01:03 #3095 [Verbose] > │ │
00:01:03 #3096 [Verbose] > │ | --- │
00:01:03 #3097 [Verbose] > │ "abc" | "bca cab abc" │
00:01:03 #3098 [Verbose] > │ │
00:01:03 #3099 [Verbose] > │ | "bca cab abc" │
00:01:03 #3100 [Verbose] > │ │
00:01:03 #3101 [Verbose] > │ | struct (1L, 1137L) │
00:01:03 #3102 [Verbose] > │ "abcde" | "bcdea cdeab deabc eabcd abcde" │
00:01:03 #3103 [Verbose] > │ | "bcdea cdeab deabc eabcd abcde" │
00:01:03 #3104 [Verbose] > │ | struct (1L, 1649L) │
00:01:03 #3105 [Verbose] > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef │
00:01:03 #3106 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd │
00:01:03 #3107 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | struct (1L, 2054L) │
00:01:03 #3108 [Verbose] > │ "abab" | "baba abab baba abab" │
00:01:03 #3109 [Verbose] > │ | "baba abab baba abab" │
00:01:03 #3110 [Verbose] > │ | struct (1L, 1158L) │
00:01:03 #3111 [Verbose] > │ "aa" | "aa aa" │
00:01:03 #3112 [Verbose] > │ │
00:01:03 #3113 [Verbose] > │ | "aa aa" │
00:01:03 #3114 [Verbose] > │ │
00:01:03 #3115 [Verbose] > │ | struct (1L, 803L) │
00:01:03 #3116 [Verbose] > │ "z" | "z" │
00:01:03 #3117 [Verbose] > │ │
00:01:03 #3118 [Verbose] > │ | "z" │
00:01:03 #3119 [Verbose] > │ │
00:01:03 #3120 [Verbose] > │ | struct (2L, 239L) │
00:01:03 #3121 [Verbose] > │ │
00:01:03 #3122 [Verbose] > │ Average Ranking │
00:01:03 #3123 [Verbose] > │ Test case 1. Average Time: 1173L │
00:01:03 #3124 [Verbose] > │ Test case 2. Average Time: 1436L │
00:01:03 #3125 [Verbose] > │ │
00:01:03 #3126 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3127 [Verbose] >
00:01:03 #3128 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:03 #3129 [Verbose] > // // test
00:01:03 #3130 [Verbose] > // // rust=
00:01:03 #3131 [Verbose] > // // print_code=false
00:01:03 #3132 [Verbose] >
00:01:03 #3133 [Verbose] > // rotate_strings_tests ()
00:01:03 #3134 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1321-0625-2576-2c3df52cef8f\main.spi
00:01:03 #3135 [Verbose] >
00:01:03 #3136 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:03 #3137 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:03 #3138 [Verbose] > │ ## binary_search_tests │
00:01:03 #3139 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:03 #3140 [Verbose] >
00:01:03 #3141 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:03 #3142 [Verbose] > // // test
00:01:03 #3143 [Verbose] > // // timeout=90000
00:01:03 #3144 [Verbose] > // // print_code=true
00:01:03 #3145 [Verbose] >
00:01:03 #3146 [Verbose] > inl binary_search_semi_open_1 arr target left right =
00:01:03 #3147 [Verbose] > inl rec body left right =
00:01:03 #3148 [Verbose] > if left >= right
00:01:03 #3149 [Verbose] > then None
00:01:03 #3150 [Verbose] > else
00:01:03 #3151 [Verbose] > inl mid = (left + right) / 2
00:01:03 #3152 [Verbose] > inl item = index arr mid
00:01:03 #3153 [Verbose] > if item = target
00:01:03 #3154 [Verbose] > then Some mid
00:01:03 #3155 [Verbose] > elif item < target
00:01:03 #3156 [Verbose] > then loop (mid + 1) right
00:01:03 #3157 [Verbose] > else loop left mid
00:01:03 #3158 [Verbose] > and inl loop left right =
00:01:03 #3159 [Verbose] > if var_is right |> not
00:01:03 #3160 [Verbose] > then body left right
00:01:03 #3161 [Verbose] > else
00:01:03 #3162 [Verbose] > inl left = dyn left
00:01:03 #3163 [Verbose] > join body left right
00:01:03 #3164 [Verbose] > loop left right
00:01:03 #3165 [Verbose] >
00:01:03 #3166 [Verbose] > inl binary_search_closed_1 arr target left right =
00:01:03 #3167 [Verbose] > inl rec body left right =
00:01:03 #3168 [Verbose] > if left > right
00:01:03 #3169 [Verbose] > then None
00:01:03 #3170 [Verbose] > else
00:01:03 #3171 [Verbose] > inl mid = (left + right) / 2
00:01:03 #3172 [Verbose] > inl item = index arr mid
00:01:03 #3173 [Verbose] > if item = target
00:01:03 #3174 [Verbose] > then Some mid
00:01:03 #3175 [Verbose] > elif item < target
00:01:03 #3176 [Verbose] > then loop (mid + 1) right
00:01:03 #3177 [Verbose] > else loop left (mid - 1)
00:01:03 #3178 [Verbose] > and inl loop left right =
00:01:03 #3179 [Verbose] > if var_is right |> not
00:01:03 #3180 [Verbose] > then body left right
00:01:03 #3181 [Verbose] > else
00:01:03 #3182 [Verbose] > inl left = dyn left
00:01:03 #3183 [Verbose] > join body left right
00:01:03 #3184 [Verbose] > loop left right
00:01:03 #3185 [Verbose] >
00:01:03 #3186 [Verbose] > inl binary_search_semi_open_2 arr target left right =
00:01:03 #3187 [Verbose] > let rec body left right =
00:01:03 #3188 [Verbose] > if left >= right
00:01:03 #3189 [Verbose] > then None
00:01:03 #3190 [Verbose] > else
00:01:03 #3191 [Verbose] > inl mid = (left + right) / 2
00:01:03 #3192 [Verbose] > inl item = index arr mid
00:01:03 #3193 [Verbose] > if item = target
00:01:03 #3194 [Verbose] > then Some mid
00:01:03 #3195 [Verbose] > elif item < target
00:01:03 #3196 [Verbose] > then loop (mid + 1) right
00:01:03 #3197 [Verbose] > else loop left mid
00:01:03 #3198 [Verbose] > and inl loop left right = body left right
00:01:03 #3199 [Verbose] > loop left right
00:01:03 #3200 [Verbose] >
00:01:03 #3201 [Verbose] > inl binary_search_closed_2 arr target left right =
00:01:03 #3202 [Verbose] > let rec body left right =
00:01:03 #3203 [Verbose] > if left > right
00:01:03 #3204 [Verbose] > then None
00:01:03 #3205 [Verbose] > else
00:01:03 #3206 [Verbose] > inl mid = (left + right) / 2
00:01:03 #3207 [Verbose] > inl item = index arr mid
00:01:03 #3208 [Verbose] > if item = target
00:01:03 #3209 [Verbose] > then Some mid
00:01:03 #3210 [Verbose] > elif item < target
00:01:03 #3211 [Verbose] > then loop (mid + 1) right
00:01:03 #3212 [Verbose] > else loop left (mid - 1)
00:01:03 #3213 [Verbose] > and inl loop left right = body left right
00:01:03 #3214 [Verbose] > loop left right
00:01:03 #3215 [Verbose] >
00:01:03 #3216 [Verbose] > inl get_solutions () =
00:01:03 #3217 [Verbose] > [[
00:01:03 #3218 [Verbose] > "semi_open_1",
00:01:03 #3219 [Verbose] > fun (arr, (target, len)) =>
00:01:03 #3220 [Verbose] > binary_search_semi_open_1 arr target 0 len
00:01:03 #3221 [Verbose] >
00:01:03 #3222 [Verbose] > "closed_1",
00:01:03 #3223 [Verbose] > fun (arr, (target, len)) =>
00:01:03 #3224 [Verbose] > binary_search_closed_1 arr target 0 (len - 1)
00:01:03 #3225 [Verbose] >
00:01:03 #3226 [Verbose] > "semi_open_2",
00:01:03 #3227 [Verbose] > fun (arr, (target, len)) =>
00:01:03 #3228 [Verbose] > binary_search_semi_open_2 arr target 0 len
00:01:03 #3229 [Verbose] >
00:01:03 #3230 [Verbose] > "closed_2",
00:01:03 #3231 [Verbose] > fun (arr, (target, len)) =>
00:01:03 #3232 [Verbose] > binary_search_closed_2 arr target 0 (len - 1)
00:01:03 #3233 [Verbose] > ]]
00:01:03 #3234 [Verbose] >
00:01:03 #3235 [Verbose] > inl rec binary_search_tests () =
00:01:03 #3236 [Verbose] > inl arr_with_len target len arr =
00:01:03 #3237 [Verbose] > arr, (target, (len |> optionm'.default_with fun () => length arr))
00:01:03 #3238 [Verbose] >
00:01:03 #3239 [Verbose] > inl test_cases = [[
00:01:03 #3240 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32)
00:01:03 #3241 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32)
00:01:03 #3242 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32)
00:01:03 #3243 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None
00:01:03 #3244 [Verbose] > ((am'.init_series 1i32 100 1) |> arr_with_len 60 None), (Some 59)
00:01:03 #3245 [Verbose] >
00:01:03 #3246 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some
00:01:03 #3247 [Verbose] > 3i32)
00:01:03 #3248 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some
00:01:03 #3249 [Verbose] > 0i32)
00:01:03 #3250 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some
00:01:03 #3251 [Verbose] > 6i32)
00:01:03 #3252 [Verbose] > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None
00:01:03 #3253 [Verbose] > ((am'.init_series 1i32 100 1) |> arr_with_len 60 (Some 100)), (Some 59)
00:01:03 #3254 [Verbose] > ]]
00:01:03 #3255 [Verbose] >
00:01:03 #3256 [Verbose] > inl solutions = get_solutions ()
00:01:03 #3257 [Verbose] >
00:01:03 #3258 [Verbose] > // inl is_fast () = true
00:01:03 #3259 [Verbose] >
00:01:03 #3260 [Verbose] > inl count =
00:01:03 #3261 [Verbose] > if is_fast ()
00:01:03 #3262 [Verbose] > then 1000i32
00:01:03 #3263 [Verbose] > else 8000000i32
00:01:03 #3264 [Verbose] >
00:01:03 #3265 [Verbose] > run_all (nameof binary_search_tests) count solutions test_cases
00:01:03 #3266 [Verbose] > |> sort_result_list
00:01:03 #3267 [Verbose] >
00:01:03 #3268 [Verbose] >
00:01:03 #3269 [Verbose] > let main () =
00:01:03 #3270 [Verbose] > binary_search_tests ()
00:01:03 #3271 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1321-0650-5098-5c668095b4f0\main.spi
00:01:36 #3272 [Verbose] >
00:01:36 #3273 [Verbose] > ╭─[ 32.99s - stdout ]──────────────────────────────────────────────────────────╮
00:01:36 #3274 [Verbose] > │ type Mut0 = {mutable l0 : int32} │
00:01:36 #3275 [Verbose] > │ and [<Struct>] US0 = │
00:01:36 #3276 [Verbose] > │ | US0_0 of f0_0 : int32 │
00:01:36 #3277 [Verbose] > │ | US0_1 │
00:01:36 #3278 [Verbose] > │ and UH0 = │
00:01:36 #3279 [Verbose] > │ | UH0_0 │
00:01:36 #3280 [Verbose] > │ | UH0_1 of (int32 []) * int32 * int32 * US0 * UH0 │
00:01:36 #3281 [Verbose] > │ and Mut1 = {mutable l0 : uint64} │
00:01:36 #3282 [Verbose] > │ and UH1 = │
00:01:36 #3283 [Verbose] > │ | UH1_0 │
00:01:36 #3284 [Verbose] > │ | UH1_1 of int32 * string * (struct ((int32 []) * int32 * int32) -> US0) │
00:01:36 #3285 [Verbose] > │ * UH1 │
00:01:36 #3286 [Verbose] > │ and UH2 = │
00:01:36 #3287 [Verbose] > │ | UH2_0 │
00:01:36 #3288 [Verbose] > │ | UH2_1 of string * UH2 │
00:01:36 #3289 [Verbose] > │ and [<Struct>] US1 = │
00:01:36 #3290 [Verbose] > │ | US1_0 of f0_0 : System.ConsoleColor │
00:01:36 #3291 [Verbose] > │ | US1_1 │
00:01:36 #3292 [Verbose] > │ and UH3 = │
00:01:36 #3293 [Verbose] > │ | UH3_0 │
00:01:36 #3294 [Verbose] > │ | UH3_1 of int64 * int64 * UH3 │
00:01:36 #3295 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64} │
00:01:36 #3296 [Verbose] > │ and UH4 = │
00:01:36 #3297 [Verbose] > │ | UH4_0 │
00:01:36 #3298 [Verbose] > │ | UH4_1 of UH2 * US1 * UH4 │
00:01:36 #3299 [Verbose] > │ and [<Struct>] US2 = │
00:01:36 #3300 [Verbose] > │ | US2_0 of f0_0 : int64 │
00:01:36 #3301 [Verbose] > │ | US2_1 │
00:01:36 #3302 [Verbose] > │ and UH5 = │
00:01:36 #3303 [Verbose] > │ | UH5_0 │
00:01:36 #3304 [Verbose] > │ | UH5_1 of int32 * int64 * UH5 │
00:01:36 #3305 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32} │
00:01:36 #3306 [Verbose] > │ and UH6 = │
00:01:36 #3307 [Verbose] > │ | UH6_0 │
00:01:36 #3308 [Verbose] > │ | UH6_1 of int32 * string * UH6 │
00:01:36 #3309 [Verbose] > │ let rec method1 (v0 : Mut0) : bool = │
00:01:36 #3310 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:36 #3311 [Verbose] > │ let v2 : bool = v1 < 100 │
00:01:36 #3312 [Verbose] > │ v2 │
00:01:36 #3313 [Verbose] > │ and method3 (v0 : UH0, v1 : uint64) : uint64 = │
00:01:36 #3314 [Verbose] > │ match v0 with │
00:01:36 #3315 [Verbose] > │ | UH0_1(v2, v3, v4, v5, v6) -> (* Cons *) │
00:01:36 #3316 [Verbose] > │ let v7 : uint64 = v1 + 1UL │
00:01:36 #3317 [Verbose] > │ method3(v6, v7) │
00:01:36 #3318 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:01:36 #3319 [Verbose] > │ v1 │
00:01:36 #3320 [Verbose] > │ and method4 (v0 : (struct ((int32 []) * int32 * int32 * US0) []), v1 : UH0, │
00:01:36 #3321 [Verbose] > │ v2 : uint64) : uint64 = │
00:01:36 #3322 [Verbose] > │ match v1 with │
00:01:36 #3323 [Verbose] > │ | UH0_1(v3, v4, v5, v6, v7) -> (* Cons *) │
00:01:36 #3324 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5, v6) │
00:01:36 #3325 [Verbose] > │ let v8 : uint64 = v2 + 1UL │
00:01:36 #3326 [Verbose] > │ method4(v0, v7, v8) │
00:01:36 #3327 [Verbose] > │ | UH0_0 -> (* Nil *) │
00:01:36 #3328 [Verbose] > │ v2 │
00:01:36 #3329 [Verbose] > │ and method2 (v0 : UH0) : (struct ((int32 []) * int32 * int32 * US0) []) = │
00:01:36 #3330 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:36 #3331 [Verbose] > │ let v2 : uint64 = method3(v0, v1) │
00:01:36 #3332 [Verbose] > │ let v3 : (struct ((int32 []) * int32 * int32 * US0) []) = │
00:01:36 #3333 [Verbose] > │ Array.zeroCreate<struct ((int32 []) * int32 * int32 * US0)> │
00:01:36 #3334 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:36 #3335 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:36 #3336 [Verbose] > │ let v5 : uint64 = method4(v3, v0, v4) │
00:01:36 #3337 [Verbose] > │ v3 │
00:01:36 #3338 [Verbose] > │ and method5 (v0 : uint64, v1 : Mut1) : bool = │
00:01:36 #3339 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:36 #3340 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:36 #3341 [Verbose] > │ v3 │
00:01:36 #3342 [Verbose] > │ and method6 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:36 #3343 [Verbose] > │ let v4 : bool = v3 >= v2 │
00:01:36 #3344 [Verbose] > │ if v4 then │
00:01:36 #3345 [Verbose] > │ US0_1 │
00:01:36 #3346 [Verbose] > │ else │
00:01:36 #3347 [Verbose] > │ let v6 : int32 = v3 + v2 │
00:01:36 #3348 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:36 #3349 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:36 #3350 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:36 #3351 [Verbose] > │ if v9 then │
00:01:36 #3352 [Verbose] > │ US0_0(v7) │
00:01:36 #3353 [Verbose] > │ else │
00:01:36 #3354 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:36 #3355 [Verbose] > │ if v11 then │
00:01:36 #3356 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:36 #3357 [Verbose] > │ method6(v0, v1, v2, v12) │
00:01:36 #3358 [Verbose] > │ else │
00:01:36 #3359 [Verbose] > │ method6(v0, v1, v7, v3) │
00:01:36 #3360 [Verbose] > │ and closure1 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:36 #3361 [Verbose] > │ let v3 : int32 = 0 │
00:01:36 #3362 [Verbose] > │ method6(v0, v1, v2, v3) │
00:01:36 #3363 [Verbose] > │ and method7 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:36 #3364 [Verbose] > │ let v4 : bool = v3 > v2 │
00:01:36 #3365 [Verbose] > │ if v4 then │
00:01:36 #3366 [Verbose] > │ US0_1 │
00:01:36 #3367 [Verbose] > │ else │
00:01:36 #3368 [Verbose] > │ let v6 : int32 = v3 + v2 │
00:01:36 #3369 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:36 #3370 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:36 #3371 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:36 #3372 [Verbose] > │ if v9 then │
00:01:36 #3373 [Verbose] > │ US0_0(v7) │
00:01:36 #3374 [Verbose] > │ else │
00:01:36 #3375 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:36 #3376 [Verbose] > │ if v11 then │
00:01:36 #3377 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:36 #3378 [Verbose] > │ method7(v0, v1, v2, v12) │
00:01:36 #3379 [Verbose] > │ else │
00:01:36 #3380 [Verbose] > │ let v14 : int32 = v7 - 1 │
00:01:36 #3381 [Verbose] > │ method7(v0, v1, v14, v3) │
00:01:36 #3382 [Verbose] > │ and closure2 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:36 #3383 [Verbose] > │ let v3 : int32 = v2 - 1 │
00:01:36 #3384 [Verbose] > │ let v4 : int32 = 0 │
00:01:36 #3385 [Verbose] > │ method7(v0, v1, v3, v4) │
00:01:36 #3386 [Verbose] > │ and method8 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:36 #3387 [Verbose] > │ let v4 : bool = v2 >= v3 │
00:01:36 #3388 [Verbose] > │ if v4 then │
00:01:36 #3389 [Verbose] > │ US0_1 │
00:01:36 #3390 [Verbose] > │ else │
00:01:36 #3391 [Verbose] > │ let v6 : int32 = v2 + v3 │
00:01:36 #3392 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:36 #3393 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:36 #3394 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:36 #3395 [Verbose] > │ if v9 then │
00:01:36 #3396 [Verbose] > │ US0_0(v7) │
00:01:36 #3397 [Verbose] > │ else │
00:01:36 #3398 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:36 #3399 [Verbose] > │ if v11 then │
00:01:36 #3400 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:36 #3401 [Verbose] > │ method8(v0, v1, v12, v3) │
00:01:36 #3402 [Verbose] > │ else │
00:01:36 #3403 [Verbose] > │ method8(v0, v1, v2, v7) │
00:01:36 #3404 [Verbose] > │ and closure3 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:36 #3405 [Verbose] > │ let v3 : int32 = 0 │
00:01:36 #3406 [Verbose] > │ method8(v0, v1, v3, v2) │
00:01:36 #3407 [Verbose] > │ and method9 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 = │
00:01:36 #3408 [Verbose] > │ let v4 : bool = v2 > v3 │
00:01:36 #3409 [Verbose] > │ if v4 then │
00:01:36 #3410 [Verbose] > │ US0_1 │
00:01:36 #3411 [Verbose] > │ else │
00:01:36 #3412 [Verbose] > │ let v6 : int32 = v2 + v3 │
00:01:36 #3413 [Verbose] > │ let v7 : int32 = v6 / 2 │
00:01:36 #3414 [Verbose] > │ let v8 : int32 = v0.[int v7] │
00:01:36 #3415 [Verbose] > │ let v9 : bool = v8 = v1 │
00:01:36 #3416 [Verbose] > │ if v9 then │
00:01:36 #3417 [Verbose] > │ US0_0(v7) │
00:01:36 #3418 [Verbose] > │ else │
00:01:36 #3419 [Verbose] > │ let v11 : bool = v8 < v1 │
00:01:36 #3420 [Verbose] > │ if v11 then │
00:01:36 #3421 [Verbose] > │ let v12 : int32 = v7 + 1 │
00:01:36 #3422 [Verbose] > │ method9(v0, v1, v12, v3) │
00:01:36 #3423 [Verbose] > │ else │
00:01:36 #3424 [Verbose] > │ let v14 : int32 = v7 - 1 │
00:01:36 #3425 [Verbose] > │ method9(v0, v1, v2, v14) │
00:01:36 #3426 [Verbose] > │ and closure4 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 = │
00:01:36 #3427 [Verbose] > │ let v3 : int32 = v2 - 1 │
00:01:36 #3428 [Verbose] > │ let v4 : int32 = 0 │
00:01:36 #3429 [Verbose] > │ method9(v0, v1, v4, v3) │
00:01:36 #3430 [Verbose] > │ and method11 (v0 : UH1, v1 : uint64) : uint64 = │
00:01:36 #3431 [Verbose] > │ match v0 with │
00:01:36 #3432 [Verbose] > │ | UH1_1(v2, v3, v4, v5) -> (* Cons *) │
00:01:36 #3433 [Verbose] > │ let v6 : uint64 = v1 + 1UL │
00:01:36 #3434 [Verbose] > │ method11(v5, v6) │
00:01:36 #3435 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:01:36 #3436 [Verbose] > │ v1 │
00:01:36 #3437 [Verbose] > │ and method12 (v0 : (struct (int32 * string * (struct ((int32 []) * int32 * │
00:01:36 #3438 [Verbose] > │ int32) -> US0)) []), v1 : UH1, v2 : uint64) : uint64 = │
00:01:36 #3439 [Verbose] > │ match v1 with │
00:01:36 #3440 [Verbose] > │ | UH1_1(v3, v4, v5, v6) -> (* Cons *) │
00:01:36 #3441 [Verbose] > │ v0.[int v2] <- struct (v3, v4, v5) │
00:01:36 #3442 [Verbose] > │ let v7 : uint64 = v2 + 1UL │
00:01:36 #3443 [Verbose] > │ method12(v0, v6, v7) │
00:01:36 #3444 [Verbose] > │ | UH1_0 -> (* Nil *) │
00:01:36 #3445 [Verbose] > │ v2 │
00:01:36 #3446 [Verbose] > │ and method10 (v0 : UH1) : (struct (int32 * string * (struct ((int32 []) * │
00:01:36 #3447 [Verbose] > │ int32 * int32) -> US0)) []) = │
00:01:36 #3448 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:36 #3449 [Verbose] > │ let v2 : uint64 = method11(v0, v1) │
00:01:36 #3450 [Verbose] > │ let v3 : (struct (int32 * string * (struct ((int32 []) * int32 * int32) │
00:01:36 #3451 [Verbose] > │ -> US0)) []) = Array.zeroCreate<struct (int32 * string * (struct ((int32 []) │
00:01:36 #3452 [Verbose] > │ * int32 * int32) -> US0))> (System.Convert.ToInt32(v2)) │
00:01:36 #3453 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:36 #3454 [Verbose] > │ let v5 : uint64 = method12(v3, v0, v4) │
00:01:36 #3455 [Verbose] > │ v3 │
00:01:36 #3456 [Verbose] > │ and method13 (v0 : Mut0) : bool = │
00:01:36 #3457 [Verbose] > │ let v1 : int32 = v0.l0 │
00:01:36 #3458 [Verbose] > │ let v2 : bool = v1 < 8000001 │
00:01:36 #3459 [Verbose] > │ v2 │
00:01:36 #3460 [Verbose] > │ and closure5 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : (struct ((int32 │
00:01:36 #3461 [Verbose] > │ []) * int32 * int32) -> US0)) (v4 : int32) : US0 = │
00:01:36 #3462 [Verbose] > │ v3 struct (v0, v1, v2) │
00:01:36 #3463 [Verbose] > │ and method14 (v0 : US0, v1 : (US0 []), v2 : uint64) : bool = │
00:01:36 #3464 [Verbose] > │ let v3 : uint64 = System.Convert.ToUInt64 v1.Length │
00:01:36 #3465 [Verbose] > │ let v4 : bool = v2 < v3 │
00:01:36 #3466 [Verbose] > │ if v4 then │
00:01:36 #3467 [Verbose] > │ let v5 : US0 = v1.[int v2] │
00:01:36 #3468 [Verbose] > │ let v9 : bool = │
00:01:36 #3469 [Verbose] > │ match v0, v5 with │
00:01:36 #3470 [Verbose] > │ | US0_1, US0_1 -> (* None *) │
00:01:36 #3471 [Verbose] > │ true │
00:01:36 #3472 [Verbose] > │ | US0_0(v6), US0_0(v7) -> (* Some *) │
00:01:36 #3473 [Verbose] > │ let v8 : bool = v6 = v7 │
00:01:36 #3474 [Verbose] > │ v8 │
00:01:36 #3475 [Verbose] > │ | _ -> │
00:01:36 #3476 [Verbose] > │ false │
00:01:36 #3477 [Verbose] > │ if v9 then │
00:01:36 #3478 [Verbose] > │ let v10 : uint64 = v2 + 1UL │
00:01:36 #3479 [Verbose] > │ method14(v0, v1, v10) │
00:01:36 #3480 [Verbose] > │ else │
00:01:36 #3481 [Verbose] > │ false │
00:01:36 #3482 [Verbose] > │ else │
00:01:36 #3483 [Verbose] > │ true │
00:01:36 #3484 [Verbose] > │ and method15 (v0 : uint64, v1 : Mut2) : bool = │
00:01:36 #3485 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:36 #3486 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:36 #3487 [Verbose] > │ v3 │
00:01:36 #3488 [Verbose] > │ and method16 (v0 : UH3, v1 : UH3) : UH3 = │
00:01:36 #3489 [Verbose] > │ match v0 with │
00:01:36 #3490 [Verbose] > │ | UH3_1(v2, v3, v4) -> (* Cons *) │
00:01:36 #3491 [Verbose] > │ let v5 : UH3 = UH3_1(v2, v3, v1) │
00:01:36 #3492 [Verbose] > │ method16(v4, v5) │
00:01:36 #3493 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:01:36 #3494 [Verbose] > │ v1 │
00:01:36 #3495 [Verbose] > │ and method18 (v0 : UH3, v1 : int32) : int32 = │
00:01:36 #3496 [Verbose] > │ match v0 with │
00:01:36 #3497 [Verbose] > │ | UH3_1(v2, v3, v4) -> (* Cons *) │
00:01:36 #3498 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:01:36 #3499 [Verbose] > │ method18(v4, v5) │
00:01:36 #3500 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:01:36 #3501 [Verbose] > │ v1 │
00:01:36 #3502 [Verbose] > │ and method19 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) : │
00:01:36 #3503 [Verbose] > │ int32 = │
00:01:36 #3504 [Verbose] > │ match v1 with │
00:01:36 #3505 [Verbose] > │ | UH3_1(v3, v4, v5) -> (* Cons *) │
00:01:36 #3506 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:36 #3507 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:01:36 #3508 [Verbose] > │ method19(v0, v5, v6) │
00:01:36 #3509 [Verbose] > │ | UH3_0 -> (* Nil *) │
00:01:36 #3510 [Verbose] > │ v2 │
00:01:36 #3511 [Verbose] > │ and method17 (v0 : UH3) : (struct (int64 * int64) []) = │
00:01:36 #3512 [Verbose] > │ let v1 : int32 = 0 │
00:01:36 #3513 [Verbose] > │ let v2 : int32 = method18(v0, v1) │
00:01:36 #3514 [Verbose] > │ let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 * │
00:01:36 #3515 [Verbose] > │ int64)> (v2) │
00:01:36 #3516 [Verbose] > │ let v4 : int32 = 0 │
00:01:36 #3517 [Verbose] > │ let v5 : int32 = method19(v3, v0, v4) │
00:01:36 #3518 [Verbose] > │ v3 │
00:01:36 #3519 [Verbose] > │ and method20 (v0 : int32, v1 : Mut0) : bool = │
00:01:36 #3520 [Verbose] > │ let v2 : int32 = v1.l0 │
00:01:36 #3521 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:36 #3522 [Verbose] > │ v3 │
00:01:36 #3523 [Verbose] > │ and closure6 () struct (v0 : int64, v1 : int64) : int64 = │
00:01:36 #3524 [Verbose] > │ v1 │
00:01:36 #3525 [Verbose] > │ and method22 (v0 : UH4, v1 : uint64) : uint64 = │
00:01:36 #3526 [Verbose] > │ match v0 with │
00:01:36 #3527 [Verbose] > │ | UH4_1(v2, v3, v4) -> (* Cons *) │
00:01:36 #3528 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:01:36 #3529 [Verbose] > │ method22(v4, v5) │
00:01:36 #3530 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:01:36 #3531 [Verbose] > │ v1 │
00:01:36 #3532 [Verbose] > │ and method23 (v0 : (struct (UH2 * US1) []), v1 : UH4, v2 : uint64) : uint64 │
00:01:36 #3533 [Verbose] > │ = │
00:01:36 #3534 [Verbose] > │ match v1 with │
00:01:36 #3535 [Verbose] > │ | UH4_1(v3, v4, v5) -> (* Cons *) │
00:01:36 #3536 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:36 #3537 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:01:36 #3538 [Verbose] > │ method23(v0, v5, v6) │
00:01:36 #3539 [Verbose] > │ | UH4_0 -> (* Nil *) │
00:01:36 #3540 [Verbose] > │ v2 │
00:01:36 #3541 [Verbose] > │ and method21 (v0 : UH4) : (struct (UH2 * US1) []) = │
00:01:36 #3542 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:36 #3543 [Verbose] > │ let v2 : uint64 = method22(v0, v1) │
00:01:36 #3544 [Verbose] > │ let v3 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * US1)> │
00:01:36 #3545 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:36 #3546 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:36 #3547 [Verbose] > │ let v5 : uint64 = method23(v3, v0, v4) │
00:01:36 #3548 [Verbose] > │ v3 │
00:01:36 #3549 [Verbose] > │ and method25 (v0 : UH2, v1 : uint64) : uint64 = │
00:01:36 #3550 [Verbose] > │ match v0 with │
00:01:36 #3551 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:01:36 #3552 [Verbose] > │ let v4 : uint64 = v1 + 1UL │
00:01:36 #3553 [Verbose] > │ method25(v3, v4) │
00:01:36 #3554 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:36 #3555 [Verbose] > │ v1 │
00:01:36 #3556 [Verbose] > │ and method26 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 = │
00:01:36 #3557 [Verbose] > │ match v1 with │
00:01:36 #3558 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:01:36 #3559 [Verbose] > │ v0.[int v2] <- v3 │
00:01:36 #3560 [Verbose] > │ let v5 : uint64 = v2 + 1UL │
00:01:36 #3561 [Verbose] > │ method26(v0, v4, v5) │
00:01:36 #3562 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:36 #3563 [Verbose] > │ v2 │
00:01:36 #3564 [Verbose] > │ and method24 (v0 : UH2) : (string []) = │
00:01:36 #3565 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:36 #3566 [Verbose] > │ let v2 : uint64 = method25(v0, v1) │
00:01:36 #3567 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> │
00:01:36 #3568 [Verbose] > │ (System.Convert.ToInt32(v2)) │
00:01:36 #3569 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:36 #3570 [Verbose] > │ let v5 : uint64 = method26(v3, v0, v4) │
00:01:36 #3571 [Verbose] > │ v3 │
00:01:36 #3572 [Verbose] > │ and closure7 () (v0 : int64) : US2 = │
00:01:36 #3573 [Verbose] > │ US2_0(v0) │
00:01:36 #3574 [Verbose] > │ and method27 () : (int64 -> US2) = │
00:01:36 #3575 [Verbose] > │ closure7() │
00:01:36 #3576 [Verbose] > │ and method28 (v0 : uint64, v1 : Mut3) : bool = │
00:01:36 #3577 [Verbose] > │ let v2 : uint64 = v1.l0 │
00:01:36 #3578 [Verbose] > │ let v3 : bool = v2 < v0 │
00:01:36 #3579 [Verbose] > │ v3 │
00:01:36 #3580 [Verbose] > │ and method29 (v0 : UH5, v1 : UH5) : UH5 = │
00:01:36 #3581 [Verbose] > │ match v0 with │
00:01:36 #3582 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:01:36 #3583 [Verbose] > │ let v5 : UH5 = UH5_1(v2, v3, v1) │
00:01:36 #3584 [Verbose] > │ method29(v4, v5) │
00:01:36 #3585 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:01:36 #3586 [Verbose] > │ v1 │
00:01:36 #3587 [Verbose] > │ and method31 (v0 : UH5, v1 : int32) : int32 = │
00:01:36 #3588 [Verbose] > │ match v0 with │
00:01:36 #3589 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:01:36 #3590 [Verbose] > │ let v5 : int32 = v1 + 1 │
00:01:36 #3591 [Verbose] > │ method31(v4, v5) │
00:01:36 #3592 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:01:36 #3593 [Verbose] > │ v1 │
00:01:36 #3594 [Verbose] > │ and method32 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) : │
00:01:36 #3595 [Verbose] > │ int32 = │
00:01:36 #3596 [Verbose] > │ match v1 with │
00:01:36 #3597 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:01:36 #3598 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:36 #3599 [Verbose] > │ let v6 : int32 = v2 + 1 │
00:01:36 #3600 [Verbose] > │ method32(v0, v5, v6) │
00:01:36 #3601 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:01:36 #3602 [Verbose] > │ v2 │
00:01:36 #3603 [Verbose] > │ and method30 (v0 : UH5) : (struct (int32 * int64) []) = │
00:01:36 #3604 [Verbose] > │ let v1 : int32 = 0 │
00:01:36 #3605 [Verbose] > │ let v2 : int32 = method31(v0, v1) │
00:01:36 #3606 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:01:36 #3607 [Verbose] > │ int64)> (v2) │
00:01:36 #3608 [Verbose] > │ let v4 : int32 = 0 │
00:01:36 #3609 [Verbose] > │ let v5 : int32 = method32(v3, v0, v4) │
00:01:36 #3610 [Verbose] > │ v3 │
00:01:36 #3611 [Verbose] > │ and method33 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) = │
00:01:36 #3612 [Verbose] > │ match v0 with │
00:01:36 #3613 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:01:36 #3614 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:01:36 #3615 [Verbose] > │ let v6 : UH6 = UH6_1(v2, v3, v1) │
00:01:36 #3616 [Verbose] > │ method33(v4, v6, v5) │
00:01:36 #3617 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:36 #3618 [Verbose] > │ struct (v1, v2) │
00:01:36 #3619 [Verbose] > │ and method34 (v0 : UH6, v1 : UH6) : UH6 = │
00:01:36 #3620 [Verbose] > │ match v0 with │
00:01:36 #3621 [Verbose] > │ | UH6_1(v2, v3, v4) -> (* Cons *) │
00:01:36 #3622 [Verbose] > │ let v5 : UH6 = UH6_1(v2, v3, v1) │
00:01:36 #3623 [Verbose] > │ method34(v4, v5) │
00:01:36 #3624 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:01:36 #3625 [Verbose] > │ v1 │
00:01:36 #3626 [Verbose] > │ and method35 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 = │
00:01:36 #3627 [Verbose] > │ match v1 with │
00:01:36 #3628 [Verbose] > │ | UH6_1(v3, v4, v5) -> (* Cons *) │
00:01:36 #3629 [Verbose] > │ let v6 : UH2 = method35(v0, v5, v2) │
00:01:36 #3630 [Verbose] > │ let v7 : int64 = v0.[v3] │
00:01:36 #3631 [Verbose] > │ let v8 : int32 = int32 v7 │
00:01:36 #3632 [Verbose] > │ let v9 : string = v4.PadRight v8 │
00:01:36 #3633 [Verbose] > │ UH2_1(v9, v6) │
00:01:36 #3634 [Verbose] > │ | UH6_0 -> (* Nil *) │
00:01:36 #3635 [Verbose] > │ v2 │
00:01:36 #3636 [Verbose] > │ and method37 (v0 : UH2, v1 : int32) : int32 = │
00:01:36 #3637 [Verbose] > │ match v0 with │
00:01:36 #3638 [Verbose] > │ | UH2_1(v2, v3) -> (* Cons *) │
00:01:36 #3639 [Verbose] > │ let v4 : int32 = v1 + 1 │
00:01:36 #3640 [Verbose] > │ method37(v3, v4) │
00:01:36 #3641 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:36 #3642 [Verbose] > │ v1 │
00:01:36 #3643 [Verbose] > │ and method38 (v0 : (string []), v1 : UH2, v2 : int32) : int32 = │
00:01:36 #3644 [Verbose] > │ match v1 with │
00:01:36 #3645 [Verbose] > │ | UH2_1(v3, v4) -> (* Cons *) │
00:01:36 #3646 [Verbose] > │ v0.[int v2] <- v3 │
00:01:36 #3647 [Verbose] > │ let v5 : int32 = v2 + 1 │
00:01:36 #3648 [Verbose] > │ method38(v0, v4, v5) │
00:01:36 #3649 [Verbose] > │ | UH2_0 -> (* Nil *) │
00:01:36 #3650 [Verbose] > │ v2 │
00:01:36 #3651 [Verbose] > │ and method36 (v0 : UH2) : (string []) = │
00:01:36 #3652 [Verbose] > │ let v1 : int32 = 0 │
00:01:36 #3653 [Verbose] > │ let v2 : int32 = method37(v0, v1) │
00:01:36 #3654 [Verbose] > │ let v3 : (string []) = Array.zeroCreate<string> (v2) │
00:01:36 #3655 [Verbose] > │ let v4 : int32 = 0 │
00:01:36 #3656 [Verbose] > │ let v5 : int32 = method38(v3, v0, v4) │
00:01:36 #3657 [Verbose] > │ v3 │
00:01:36 #3658 [Verbose] > │ and method40 (v0 : UH5, v1 : uint64) : uint64 = │
00:01:36 #3659 [Verbose] > │ match v0 with │
00:01:36 #3660 [Verbose] > │ | UH5_1(v2, v3, v4) -> (* Cons *) │
00:01:36 #3661 [Verbose] > │ let v5 : uint64 = v1 + 1UL │
00:01:36 #3662 [Verbose] > │ method40(v4, v5) │
00:01:36 #3663 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:01:36 #3664 [Verbose] > │ v1 │
00:01:36 #3665 [Verbose] > │ and method41 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) : │
00:01:36 #3666 [Verbose] > │ uint64 = │
00:01:36 #3667 [Verbose] > │ match v1 with │
00:01:36 #3668 [Verbose] > │ | UH5_1(v3, v4, v5) -> (* Cons *) │
00:01:36 #3669 [Verbose] > │ v0.[int v2] <- struct (v3, v4) │
00:01:36 #3670 [Verbose] > │ let v6 : uint64 = v2 + 1UL │
00:01:36 #3671 [Verbose] > │ method41(v0, v5, v6) │
00:01:36 #3672 [Verbose] > │ | UH5_0 -> (* Nil *) │
00:01:36 #3673 [Verbose] > │ v2 │
00:01:36 #3674 [Verbose] > │ and method39 (v0 : UH5) : (struct (int32 * int64) []) = │
00:01:36 #3675 [Verbose] > │ let v1 : uint64 = 0UL │
00:01:36 #3676 [Verbose] > │ let v2 : uint64 = method40(v0, v1) │
00:01:36 #3677 [Verbose] > │ let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 * │
00:01:36 #3678 [Verbose] > │ int64)> (System.Convert.ToInt32(v2)) │
00:01:36 #3679 [Verbose] > │ let v4 : uint64 = 0UL │
00:01:36 #3680 [Verbose] > │ let v5 : uint64 = method41(v3, v0, v4) │
00:01:36 #3681 [Verbose] > │ v3 │
00:01:36 #3682 [Verbose] > │ and closure8 () struct (v0 : int32, v1 : int64) : int64 = │
00:01:36 #3683 [Verbose] > │ v1 │
00:01:36 #3684 [Verbose] > │ and closure0 () () : unit = │
00:01:36 #3685 [Verbose] > │ let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3686 [Verbose] > │ let v1 : int32 = v0.Length │
00:01:36 #3687 [Verbose] > │ let v2 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3688 [Verbose] > │ let v3 : int32 = v2.Length │
00:01:36 #3689 [Verbose] > │ let v4 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3690 [Verbose] > │ let v5 : int32 = v4.Length │
00:01:36 #3691 [Verbose] > │ let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3692 [Verbose] > │ let v7 : int32 = v6.Length │
00:01:36 #3693 [Verbose] > │ let v8 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:36 #3694 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:01:36 #3695 [Verbose] > │ while method1(v9) do │
00:01:36 #3696 [Verbose] > │ let v11 : int32 = v9.l0 │
00:01:36 #3697 [Verbose] > │ let v12 : int32 = 1 + v11 │
00:01:36 #3698 [Verbose] > │ v8.[int v11] <- v12 │
00:01:36 #3699 [Verbose] > │ let v13 : int32 = v11 + 1 │
00:01:36 #3700 [Verbose] > │ v9.l0 <- v13 │
00:01:36 #3701 [Verbose] > │ () │
00:01:36 #3702 [Verbose] > │ let v14 : int32 = v8.Length │
00:01:36 #3703 [Verbose] > │ let v15 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3704 [Verbose] > │ let v16 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3705 [Verbose] > │ let v17 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3706 [Verbose] > │ let v18 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:36 #3707 [Verbose] > │ let v19 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:36 #3708 [Verbose] > │ let v20 : Mut0 = {l0 = 0} : Mut0 │
00:01:36 #3709 [Verbose] > │ while method1(v20) do │
00:01:36 #3710 [Verbose] > │ let v22 : int32 = v20.l0 │
00:01:36 #3711 [Verbose] > │ let v23 : int32 = 1 + v22 │
00:01:36 #3712 [Verbose] > │ v19.[int v22] <- v23 │
00:01:36 #3713 [Verbose] > │ let v24 : int32 = v22 + 1 │
00:01:36 #3714 [Verbose] > │ v20.l0 <- v24 │
00:01:36 #3715 [Verbose] > │ () │
00:01:36 #3716 [Verbose] > │ let v25 : (unit -> unit) = closure0() │
00:01:36 #3717 [Verbose] > │ let v26 : string = nameof v25 │
00:01:36 #3718 [Verbose] > │ let v27 : string = "" │
00:01:36 #3719 [Verbose] > │ System.Console.WriteLine v27 │
00:01:36 #3720 [Verbose] > │ System.Console.WriteLine v27 │
00:01:36 #3721 [Verbose] > │ let v28 : string = $"Test: {v26}" │
00:01:36 #3722 [Verbose] > │ System.Console.WriteLine v28 │
00:01:36 #3723 [Verbose] > │ let v29 : int32 = 6 │
00:01:36 #3724 [Verbose] > │ let v30 : int32 = 3 │
00:01:36 #3725 [Verbose] > │ let v31 : US0 = US0_0(v30) │
00:01:36 #3726 [Verbose] > │ let v32 : int32 = 1 │
00:01:36 #3727 [Verbose] > │ let v33 : int32 = 0 │
00:01:36 #3728 [Verbose] > │ let v34 : US0 = US0_0(v33) │
00:01:36 #3729 [Verbose] > │ let v35 : int32 = 11 │
00:01:36 #3730 [Verbose] > │ let v36 : int32 = 6 │
00:01:36 #3731 [Verbose] > │ let v37 : US0 = US0_0(v36) │
00:01:36 #3732 [Verbose] > │ let v38 : int32 = 12 │
00:01:36 #3733 [Verbose] > │ let v39 : US0 = US0_1 │
00:01:36 #3734 [Verbose] > │ let v40 : int32 = 60 │
00:01:36 #3735 [Verbose] > │ let v41 : int32 = 59 │
00:01:36 #3736 [Verbose] > │ let v42 : US0 = US0_0(v41) │
00:01:36 #3737 [Verbose] > │ let v43 : int32 = 6 │
00:01:36 #3738 [Verbose] > │ let v44 : int32 = 7 │
00:01:36 #3739 [Verbose] > │ let v45 : int32 = 3 │
00:01:36 #3740 [Verbose] > │ let v46 : US0 = US0_0(v45) │
00:01:36 #3741 [Verbose] > │ let v47 : int32 = 1 │
00:01:36 #3742 [Verbose] > │ let v48 : int32 = 7 │
00:01:36 #3743 [Verbose] > │ let v49 : int32 = 0 │
00:01:36 #3744 [Verbose] > │ let v50 : US0 = US0_0(v49) │
00:01:36 #3745 [Verbose] > │ let v51 : int32 = 11 │
00:01:36 #3746 [Verbose] > │ let v52 : int32 = 7 │
00:01:36 #3747 [Verbose] > │ let v53 : int32 = 6 │
00:01:36 #3748 [Verbose] > │ let v54 : US0 = US0_0(v53) │
00:01:36 #3749 [Verbose] > │ let v55 : int32 = 12 │
00:01:36 #3750 [Verbose] > │ let v56 : int32 = 7 │
00:01:36 #3751 [Verbose] > │ let v57 : US0 = US0_1 │
00:01:36 #3752 [Verbose] > │ let v58 : int32 = 60 │
00:01:36 #3753 [Verbose] > │ let v59 : int32 = 100 │
00:01:36 #3754 [Verbose] > │ let v60 : int32 = 59 │
00:01:36 #3755 [Verbose] > │ let v61 : US0 = US0_0(v60) │
00:01:36 #3756 [Verbose] > │ let v62 : UH0 = UH0_0 │
00:01:36 #3757 [Verbose] > │ let v63 : UH0 = UH0_1(v19, v58, v59, v61, v62) │
00:01:36 #3758 [Verbose] > │ let v64 : UH0 = UH0_1(v18, v55, v56, v57, v63) │
00:01:36 #3759 [Verbose] > │ let v65 : UH0 = UH0_1(v17, v51, v52, v54, v64) │
00:01:36 #3760 [Verbose] > │ let v66 : UH0 = UH0_1(v16, v47, v48, v50, v65) │
00:01:36 #3761 [Verbose] > │ let v67 : UH0 = UH0_1(v15, v43, v44, v46, v66) │
00:01:36 #3762 [Verbose] > │ let v68 : UH0 = UH0_1(v8, v40, v14, v42, v67) │
00:01:36 #3763 [Verbose] > │ let v69 : UH0 = UH0_1(v6, v38, v7, v39, v68) │
00:01:36 #3764 [Verbose] > │ let v70 : UH0 = UH0_1(v4, v35, v5, v37, v69) │
00:01:36 #3765 [Verbose] > │ let v71 : UH0 = UH0_1(v2, v32, v3, v34, v70) │
00:01:36 #3766 [Verbose] > │ let v72 : UH0 = UH0_1(v0, v29, v1, v31, v71) │
00:01:36 #3767 [Verbose] > │ let v73 : (struct ((int32 []) * int32 * int32 * US0) []) = method2(v72) │
00:01:36 #3768 [Verbose] > │ let v74 : uint64 = System.Convert.ToUInt64 v73.Length │
00:01:36 #3769 [Verbose] > │ let v75 : (struct (string * string * string * (int64 [])) []) = │
00:01:36 #3770 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:01:36 #3771 [Verbose] > │ (System.Convert.ToInt32(v74)) │
00:01:36 #3772 [Verbose] > │ let v76 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #3773 [Verbose] > │ while method5(v74, v76) do │
00:01:36 #3774 [Verbose] > │ let v78 : uint64 = v76.l0 │
00:01:36 #3775 [Verbose] > │ let struct (v79 : (int32 []), v80 : int32, v81 : int32, v82 : US0) = │
00:01:36 #3776 [Verbose] > │ v73.[int v78] │
00:01:36 #3777 [Verbose] > │ let v83 : string = $"%A{struct (v79, v80, v81)}" │
00:01:36 #3778 [Verbose] > │ System.Console.WriteLine v27 │
00:01:36 #3779 [Verbose] > │ let v84 : string = $"Solution: {v83} " │
00:01:36 #3780 [Verbose] > │ System.Console.WriteLine v84 │
00:01:36 #3781 [Verbose] > │ let v85 : int32 = 0 │
00:01:36 #3782 [Verbose] > │ let v86 : string = "semi_open_1" │
00:01:36 #3783 [Verbose] > │ let v87 : (struct ((int32 []) * int32 * int32) -> US0) = closure1() │
00:01:36 #3784 [Verbose] > │ let v88 : int32 = 1 │
00:01:36 #3785 [Verbose] > │ let v89 : string = "closed_1" │
00:01:36 #3786 [Verbose] > │ let v90 : (struct ((int32 []) * int32 * int32) -> US0) = closure2() │
00:01:36 #3787 [Verbose] > │ let v91 : int32 = 2 │
00:01:36 #3788 [Verbose] > │ let v92 : string = "semi_open_2" │
00:01:36 #3789 [Verbose] > │ let v93 : (struct ((int32 []) * int32 * int32) -> US0) = closure3() │
00:01:36 #3790 [Verbose] > │ let v94 : int32 = 3 │
00:01:36 #3791 [Verbose] > │ let v95 : string = "closed_2" │
00:01:36 #3792 [Verbose] > │ let v96 : (struct ((int32 []) * int32 * int32) -> US0) = closure4() │
00:01:36 #3793 [Verbose] > │ let v97 : UH1 = UH1_0 │
00:01:36 #3794 [Verbose] > │ let v98 : UH1 = UH1_1(v94, v95, v96, v97) │
00:01:36 #3795 [Verbose] > │ let v99 : UH1 = UH1_1(v91, v92, v93, v98) │
00:01:36 #3796 [Verbose] > │ let v100 : UH1 = UH1_1(v88, v89, v90, v99) │
00:01:36 #3797 [Verbose] > │ let v101 : UH1 = UH1_1(v85, v86, v87, v100) │
00:01:36 #3798 [Verbose] > │ let v102 : (struct (int32 * string * (struct ((int32 []) * int32 * │
00:01:36 #3799 [Verbose] > │ int32) -> US0)) []) = method10(v101) │
00:01:36 #3800 [Verbose] > │ let v103 : uint64 = System.Convert.ToUInt64 v102.Length │
00:01:36 #3801 [Verbose] > │ let v104 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0 │
00:01:36 #3802 [Verbose] > │ * int64)> (System.Convert.ToInt32(v103)) │
00:01:36 #3803 [Verbose] > │ let v105 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #3804 [Verbose] > │ while method5(v103, v105) do │
00:01:36 #3805 [Verbose] > │ let v107 : uint64 = v105.l0 │
00:01:36 #3806 [Verbose] > │ let struct (v108 : int32, v109 : string, v110 : (struct ((int32 │
00:01:36 #3807 [Verbose] > │ []) * int32 * int32) -> US0)) = v102.[int v107] │
00:01:36 #3808 [Verbose] > │ let v111 : unit option = None │
00:01:36 #3809 [Verbose] > │ let mutable _v111 = v111 │
00:01:36 #3810 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:36 #3811 [Verbose] > │ () │
00:01:36 #3812 [Verbose] > │ #endif │
00:01:36 #3813 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:36 #3814 [Verbose] > │ () │
00:01:36 #3815 [Verbose] > │ #endif │
00:01:36 #3816 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:36 #3817 [Verbose] > │ () │
00:01:36 #3818 [Verbose] > │ #endif │
00:01:36 #3819 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:36 #3820 [Verbose] > │ System.GC.Collect () │
00:01:36 #3821 [Verbose] > │ () │
00:01:36 #3822 [Verbose] > │ #endif │
00:01:36 #3823 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:36 #3824 [Verbose] > │ System.GC.Collect () │
00:01:36 #3825 [Verbose] > │ () │
00:01:36 #3826 [Verbose] > │ #endif │
00:01:36 #3827 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:36 #3828 [Verbose] > │ System.GC.Collect () │
00:01:36 #3829 [Verbose] > │ () │
00:01:36 #3830 [Verbose] > │ #endif │
00:01:36 #3831 [Verbose] > │ |> fun x -> _v111 <- Some x │
00:01:36 #3832 [Verbose] > │ _v111 |> Option.get │
00:01:36 #3833 [Verbose] > │ let v112 : (unit -> System.Diagnostics.Stopwatch) = │
00:01:36 #3834 [Verbose] > │ System.Diagnostics.Stopwatch │
00:01:36 #3835 [Verbose] > │ let v113 : System.Diagnostics.Stopwatch = v112 () │
00:01:36 #3836 [Verbose] > │ v113.Start () │
00:01:36 #3837 [Verbose] > │ let v114 : int64 = v113.ElapsedMilliseconds │
00:01:36 #3838 [Verbose] > │ let v115 : (int32 []) = Array.zeroCreate<int32> (8000001) │
00:01:36 #3839 [Verbose] > │ let v116 : Mut0 = {l0 = 0} : Mut0 │
00:01:36 #3840 [Verbose] > │ while method13(v116) do │
00:01:36 #3841 [Verbose] > │ let v118 : int32 = v116.l0 │
00:01:36 #3842 [Verbose] > │ v115.[int v118] <- v118 │
00:01:36 #3843 [Verbose] > │ let v119 : int32 = v118 + 1 │
00:01:36 #3844 [Verbose] > │ v116.l0 <- v119 │
00:01:36 #3845 [Verbose] > │ () │
00:01:36 #3846 [Verbose] > │ let v120 : ((int32 -> US0) -> ((int32 []) -> (US0 []))) = │
00:01:36 #3847 [Verbose] > │ Array.Parallel.map │
00:01:36 #3848 [Verbose] > │ let v121 : (int32 -> US0) = closure5(v79, v80, v81, v110) │
00:01:36 #3849 [Verbose] > │ let v122 : ((int32 []) -> (US0 [])) = v120 v121 │
00:01:36 #3850 [Verbose] > │ let v123 : (US0 []) = v122 v115 │
00:01:36 #3851 [Verbose] > │ let v124 : int32 = v123.Length │
00:01:36 #3852 [Verbose] > │ let v125 : int32 = v124 - 1 │
00:01:36 #3853 [Verbose] > │ let v126 : US0 = v123.[int v125] │
00:01:36 #3854 [Verbose] > │ let v127 : int64 = v113.ElapsedMilliseconds │
00:01:36 #3855 [Verbose] > │ let v128 : int64 = v127 - v114 │
00:01:36 #3856 [Verbose] > │ let v129 : string = $"Test case {v108 + 1}. {v109}. Time: {v128} │
00:01:36 #3857 [Verbose] > │ " │
00:01:36 #3858 [Verbose] > │ System.Console.WriteLine v129 │
00:01:36 #3859 [Verbose] > │ v104.[int v107] <- struct (v126, v128) │
00:01:36 #3860 [Verbose] > │ let v130 : uint64 = v107 + 1UL │
00:01:36 #3861 [Verbose] > │ v105.l0 <- v130 │
00:01:36 #3862 [Verbose] > │ () │
00:01:36 #3863 [Verbose] > │ let v131 : uint64 = System.Convert.ToUInt64 v104.Length │
00:01:36 #3864 [Verbose] > │ let v132 : (US0 []) = Array.zeroCreate<US0> │
00:01:36 #3865 [Verbose] > │ (System.Convert.ToInt32(v131)) │
00:01:36 #3866 [Verbose] > │ let v133 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #3867 [Verbose] > │ while method5(v131, v133) do │
00:01:36 #3868 [Verbose] > │ let v135 : uint64 = v133.l0 │
00:01:36 #3869 [Verbose] > │ let struct (v136 : US0, v137 : int64) = v104.[int v135] │
00:01:36 #3870 [Verbose] > │ v132.[int v135] <- v136 │
00:01:36 #3871 [Verbose] > │ let v138 : uint64 = v135 + 1UL │
00:01:36 #3872 [Verbose] > │ v133.l0 <- v138 │
00:01:36 #3873 [Verbose] > │ () │
00:01:36 #3874 [Verbose] > │ let v139 : uint64 = System.Convert.ToUInt64 v132.Length │
00:01:36 #3875 [Verbose] > │ let v140 : bool = v139 <= 1UL │
00:01:36 #3876 [Verbose] > │ if v140 then │
00:01:36 #3877 [Verbose] > │ () │
00:01:36 #3878 [Verbose] > │ else │
00:01:36 #3879 [Verbose] > │ let v141 : US0 = v132.[int 0UL] │
00:01:36 #3880 [Verbose] > │ let v142 : uint64 = 0UL │
00:01:36 #3881 [Verbose] > │ let v143 : bool = method14(v141, v132, v142) │
00:01:36 #3882 [Verbose] > │ if v143 then │
00:01:36 #3883 [Verbose] > │ () │
00:01:36 #3884 [Verbose] > │ else │
00:01:36 #3885 [Verbose] > │ let v144 : string = $"Challenge error: {v132}" │
00:01:36 #3886 [Verbose] > │ failwith<unit> v144 │
00:01:36 #3887 [Verbose] > │ let v145 : string = $"%A{v82}" │
00:01:36 #3888 [Verbose] > │ let v146 : (US0 []) = Array.zeroCreate<US0> │
00:01:36 #3889 [Verbose] > │ (System.Convert.ToInt32(v131)) │
00:01:36 #3890 [Verbose] > │ let v147 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #3891 [Verbose] > │ while method5(v131, v147) do │
00:01:36 #3892 [Verbose] > │ let v149 : uint64 = v147.l0 │
00:01:36 #3893 [Verbose] > │ let struct (v150 : US0, v151 : int64) = v104.[int v149] │
00:01:36 #3894 [Verbose] > │ v146.[int v149] <- v150 │
00:01:36 #3895 [Verbose] > │ let v152 : uint64 = v149 + 1UL │
00:01:36 #3896 [Verbose] > │ v147.l0 <- v152 │
00:01:36 #3897 [Verbose] > │ () │
00:01:36 #3898 [Verbose] > │ let v153 : US0 = v146.[int 0UL] │
00:01:36 #3899 [Verbose] > │ let v154 : string = $"%A{v153}" │
00:01:36 #3900 [Verbose] > │ let v155 : (int64 []) = Array.zeroCreate<int64> │
00:01:36 #3901 [Verbose] > │ (System.Convert.ToInt32(v131)) │
00:01:36 #3902 [Verbose] > │ let v156 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #3903 [Verbose] > │ while method5(v131, v156) do │
00:01:36 #3904 [Verbose] > │ let v158 : uint64 = v156.l0 │
00:01:36 #3905 [Verbose] > │ let struct (v159 : US0, v160 : int64) = v104.[int v158] │
00:01:36 #3906 [Verbose] > │ v155.[int v158] <- v160 │
00:01:36 #3907 [Verbose] > │ let v161 : uint64 = v158 + 1UL │
00:01:36 #3908 [Verbose] > │ v156.l0 <- v161 │
00:01:36 #3909 [Verbose] > │ () │
00:01:36 #3910 [Verbose] > │ v75.[int v78] <- struct (v145, v83, v154, v155) │
00:01:36 #3911 [Verbose] > │ let v162 : uint64 = v78 + 1UL │
00:01:36 #3912 [Verbose] > │ v76.l0 <- v162 │
00:01:36 #3913 [Verbose] > │ () │
00:01:36 #3914 [Verbose] > │ let v163 : uint64 = System.Convert.ToUInt64 v75.Length │
00:01:36 #3915 [Verbose] > │ let v164 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:36 #3916 [Verbose] > │ US1)> (System.Convert.ToInt32(v163)) │
00:01:36 #3917 [Verbose] > │ let v165 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #3918 [Verbose] > │ while method5(v163, v165) do │
00:01:36 #3919 [Verbose] > │ let v167 : uint64 = v165.l0 │
00:01:36 #3920 [Verbose] > │ let struct (v168 : string, v169 : string, v170 : string, v171 : │
00:01:36 #3921 [Verbose] > │ (int64 [])) = v75.[int v167] │
00:01:36 #3922 [Verbose] > │ let v172 : uint64 = System.Convert.ToUInt64 v171.Length │
00:01:36 #3923 [Verbose] > │ let v173 : UH3 = UH3_0 │
00:01:36 #3924 [Verbose] > │ let v174 : Mut2 = {l0 = 0UL; l1 = v173; l2 = 0L} : Mut2 │
00:01:36 #3925 [Verbose] > │ while method15(v172, v174) do │
00:01:36 #3926 [Verbose] > │ let v176 : uint64 = v174.l0 │
00:01:36 #3927 [Verbose] > │ let struct (v177 : UH3, v178 : int64) = v174.l1, v174.l2 │
00:01:36 #3928 [Verbose] > │ let v179 : int64 = v171.[int v176] │
00:01:36 #3929 [Verbose] > │ let v180 : int64 = v178 + 1L │
00:01:36 #3930 [Verbose] > │ let v181 : uint64 = v176 + 1UL │
00:01:36 #3931 [Verbose] > │ let v182 : UH3 = UH3_1(v178, v179, v177) │
00:01:36 #3932 [Verbose] > │ v174.l0 <- v181 │
00:01:36 #3933 [Verbose] > │ v174.l1 <- v182 │
00:01:36 #3934 [Verbose] > │ v174.l2 <- v180 │
00:01:36 #3935 [Verbose] > │ () │
00:01:36 #3936 [Verbose] > │ let struct (v183 : UH3, v184 : int64) = v174.l1, v174.l2 │
00:01:36 #3937 [Verbose] > │ let v185 : UH3 = UH3_0 │
00:01:36 #3938 [Verbose] > │ let v186 : UH3 = method16(v183, v185) │
00:01:36 #3939 [Verbose] > │ let v187 : (struct (int64 * int64) []) = method17(v186) │
00:01:36 #3940 [Verbose] > │ let v188 : int32 = v187.Length │
00:01:36 #3941 [Verbose] > │ let v189 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:01:36 #3942 [Verbose] > │ (int64 * int64)> (v188) │
00:01:36 #3943 [Verbose] > │ let v190 : Mut0 = {l0 = 0} : Mut0 │
00:01:36 #3944 [Verbose] > │ while method20(v188, v190) do │
00:01:36 #3945 [Verbose] > │ let v192 : int32 = v190.l0 │
00:01:36 #3946 [Verbose] > │ let struct (v193 : int64, v194 : int64) = v187.[int v192] │
00:01:36 #3947 [Verbose] > │ let v195 : int64 = v193 + 1L │
00:01:36 #3948 [Verbose] > │ v189.[int v192] <- struct (v195, v194) │
00:01:36 #3949 [Verbose] > │ let v196 : int32 = v192 + 1 │
00:01:36 #3950 [Verbose] > │ v190.l0 <- v196 │
00:01:36 #3951 [Verbose] > │ () │
00:01:36 #3952 [Verbose] > │ let v197 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:01:36 #3953 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:01:36 #3954 [Verbose] > │ let v198 : (struct (int64 * int64) -> int64) = closure6() │
00:01:36 #3955 [Verbose] > │ let v199 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:01:36 #3956 [Verbose] > │ ])) = v197 v198 │
00:01:36 #3957 [Verbose] > │ let v200 : (struct (int64 * int64) []) = v199 v189 │
00:01:36 #3958 [Verbose] > │ let struct (v201 : int64, v202 : int64) = v200.[int 0] │
00:01:36 #3959 [Verbose] > │ let v203 : string = $"%A{struct (v201, v202)}" │
00:01:36 #3960 [Verbose] > │ let v204 : bool = v168 = v170 │
00:01:36 #3961 [Verbose] > │ let v209 : US1 = │
00:01:36 #3962 [Verbose] > │ if v204 then │
00:01:36 #3963 [Verbose] > │ let v205 : System.ConsoleColor = │
00:01:36 #3964 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:01:36 #3965 [Verbose] > │ US1_0(v205) │
00:01:36 #3966 [Verbose] > │ else │
00:01:36 #3967 [Verbose] > │ let v207 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:36 #3968 [Verbose] > │ US1_0(v207) │
00:01:36 #3969 [Verbose] > │ let v210 : UH2 = UH2_0 │
00:01:36 #3970 [Verbose] > │ let v211 : UH2 = UH2_1(v203, v210) │
00:01:36 #3971 [Verbose] > │ let v212 : UH2 = UH2_1(v170, v211) │
00:01:36 #3972 [Verbose] > │ let v213 : UH2 = UH2_1(v168, v212) │
00:01:36 #3973 [Verbose] > │ let v214 : UH2 = UH2_1(v169, v213) │
00:01:36 #3974 [Verbose] > │ v164.[int v167] <- struct (v214, v209) │
00:01:36 #3975 [Verbose] > │ let v215 : uint64 = v167 + 1UL │
00:01:36 #3976 [Verbose] > │ v165.l0 <- v215 │
00:01:36 #3977 [Verbose] > │ () │
00:01:36 #3978 [Verbose] > │ let v216 : string = "Input" │
00:01:36 #3979 [Verbose] > │ let v217 : string = "Expected" │
00:01:36 #3980 [Verbose] > │ let v218 : string = "Result" │
00:01:36 #3981 [Verbose] > │ let v219 : string = "Best" │
00:01:36 #3982 [Verbose] > │ let v220 : UH2 = UH2_0 │
00:01:36 #3983 [Verbose] > │ let v221 : UH2 = UH2_1(v219, v220) │
00:01:36 #3984 [Verbose] > │ let v222 : UH2 = UH2_1(v218, v221) │
00:01:36 #3985 [Verbose] > │ let v223 : UH2 = UH2_1(v217, v222) │
00:01:36 #3986 [Verbose] > │ let v224 : UH2 = UH2_1(v216, v223) │
00:01:36 #3987 [Verbose] > │ let v225 : US1 = US1_1 │
00:01:36 #3988 [Verbose] > │ let v226 : string = "---" │
00:01:36 #3989 [Verbose] > │ let v227 : UH2 = UH2_0 │
00:01:36 #3990 [Verbose] > │ let v228 : UH2 = UH2_1(v226, v227) │
00:01:36 #3991 [Verbose] > │ let v229 : UH2 = UH2_1(v226, v228) │
00:01:36 #3992 [Verbose] > │ let v230 : UH2 = UH2_1(v226, v229) │
00:01:36 #3993 [Verbose] > │ let v231 : UH2 = UH2_1(v226, v230) │
00:01:36 #3994 [Verbose] > │ let v232 : US1 = US1_1 │
00:01:36 #3995 [Verbose] > │ let v233 : UH4 = UH4_0 │
00:01:36 #3996 [Verbose] > │ let v234 : UH4 = UH4_1(v231, v232, v233) │
00:01:36 #3997 [Verbose] > │ let v235 : UH4 = UH4_1(v224, v225, v234) │
00:01:36 #3998 [Verbose] > │ let v236 : (struct (UH2 * US1) []) = method21(v235) │
00:01:36 #3999 [Verbose] > │ let v237 : uint64 = System.Convert.ToUInt64 v236.Length │
00:01:36 #4000 [Verbose] > │ let v238 : uint64 = System.Convert.ToUInt64 v164.Length │
00:01:36 #4001 [Verbose] > │ let v239 : uint64 = v237 + v238 │
00:01:36 #4002 [Verbose] > │ let v240 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:36 #4003 [Verbose] > │ US1)> (System.Convert.ToInt32(v239)) │
00:01:36 #4004 [Verbose] > │ let v241 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #4005 [Verbose] > │ while method5(v239, v241) do │
00:01:36 #4006 [Verbose] > │ let v243 : uint64 = v241.l0 │
00:01:36 #4007 [Verbose] > │ let v244 : bool = v243 < v237 │
00:01:36 #4008 [Verbose] > │ let struct (v250 : UH2, v251 : US1) = │
00:01:36 #4009 [Verbose] > │ if v244 then │
00:01:36 #4010 [Verbose] > │ let struct (v245 : UH2, v246 : US1) = v236.[int v243] │
00:01:36 #4011 [Verbose] > │ struct (v245, v246) │
00:01:36 #4012 [Verbose] > │ else │
00:01:36 #4013 [Verbose] > │ let v247 : uint64 = v243 - v237 │
00:01:36 #4014 [Verbose] > │ let struct (v248 : UH2, v249 : US1) = v164.[int v247] │
00:01:36 #4015 [Verbose] > │ struct (v248, v249) │
00:01:36 #4016 [Verbose] > │ v240.[int v243] <- struct (v250, v251) │
00:01:36 #4017 [Verbose] > │ let v252 : uint64 = v243 + 1UL │
00:01:36 #4018 [Verbose] > │ v241.l0 <- v252 │
00:01:36 #4019 [Verbose] > │ () │
00:01:36 #4020 [Verbose] > │ let v253 : uint64 = System.Convert.ToUInt64 v240.Length │
00:01:36 #4021 [Verbose] > │ let v254 : ((string []) []) = Array.zeroCreate<(string [])> │
00:01:36 #4022 [Verbose] > │ (System.Convert.ToInt32(v253)) │
00:01:36 #4023 [Verbose] > │ let v255 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #4024 [Verbose] > │ while method5(v253, v255) do │
00:01:36 #4025 [Verbose] > │ let v257 : uint64 = v255.l0 │
00:01:36 #4026 [Verbose] > │ let struct (v258 : UH2, v259 : US1) = v240.[int v257] │
00:01:36 #4027 [Verbose] > │ let v260 : (string []) = method24(v258) │
00:01:36 #4028 [Verbose] > │ v254.[int v257] <- v260 │
00:01:36 #4029 [Verbose] > │ let v261 : uint64 = v257 + 1UL │
00:01:36 #4030 [Verbose] > │ v255.l0 <- v261 │
00:01:36 #4031 [Verbose] > │ () │
00:01:36 #4032 [Verbose] > │ let v262 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:01:36 #4033 [Verbose] > │ let v263 : ((string []) []) = v262 v254 │
00:01:36 #4034 [Verbose] > │ let v264 : uint64 = System.Convert.ToUInt64 v263.Length │
00:01:36 #4035 [Verbose] > │ let v265 : (int64 []) = Array.zeroCreate<int64> │
00:01:36 #4036 [Verbose] > │ (System.Convert.ToInt32(v264)) │
00:01:36 #4037 [Verbose] > │ let v266 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #4038 [Verbose] > │ while method5(v264, v266) do │
00:01:36 #4039 [Verbose] > │ let v268 : uint64 = v266.l0 │
00:01:36 #4040 [Verbose] > │ let v269 : (string []) = v263.[int v268] │
00:01:36 #4041 [Verbose] > │ let v270 : uint64 = System.Convert.ToUInt64 v269.Length │
00:01:36 #4042 [Verbose] > │ let v271 : (int64 []) = Array.zeroCreate<int64> │
00:01:36 #4043 [Verbose] > │ (System.Convert.ToInt32(v270)) │
00:01:36 #4044 [Verbose] > │ let v272 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #4045 [Verbose] > │ while method5(v270, v272) do │
00:01:36 #4046 [Verbose] > │ let v274 : uint64 = v272.l0 │
00:01:36 #4047 [Verbose] > │ let v275 : string = v269.[int v274] │
00:01:36 #4048 [Verbose] > │ let v276 : int64 = System.Convert.ToInt64 v275.Length │
00:01:36 #4049 [Verbose] > │ v271.[int v274] <- v276 │
00:01:36 #4050 [Verbose] > │ let v277 : uint64 = v274 + 1UL │
00:01:36 #4051 [Verbose] > │ v272.l0 <- v277 │
00:01:36 #4052 [Verbose] > │ () │
00:01:36 #4053 [Verbose] > │ let v278 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:01:36 #4054 [Verbose] > │ let v279 : (int64 []) = v278 v271 │
00:01:36 #4055 [Verbose] > │ let v280 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:01:36 #4056 [Verbose] > │ let v281 : ((int64 []) -> int64 option) = v280 0 │
00:01:36 #4057 [Verbose] > │ let v282 : int64 option = v281 v279 │
00:01:36 #4058 [Verbose] > │ let v283 : (int64 -> US2) = method27() │
00:01:36 #4059 [Verbose] > │ let v284 : US2 = US2_1 │
00:01:36 #4060 [Verbose] > │ let v285 : US2 = v282 |> Option.map v283 |> Option.defaultValue v284 │
00:01:36 #4061 [Verbose] > │ let v288 : int64 = │
00:01:36 #4062 [Verbose] > │ match v285 with │
00:01:36 #4063 [Verbose] > │ | US2_1 -> (* None *) │
00:01:36 #4064 [Verbose] > │ 0L │
00:01:36 #4065 [Verbose] > │ | US2_0(v286) -> (* Some *) │
00:01:36 #4066 [Verbose] > │ v286 │
00:01:36 #4067 [Verbose] > │ v265.[int v268] <- v288 │
00:01:36 #4068 [Verbose] > │ let v289 : uint64 = v268 + 1UL │
00:01:36 #4069 [Verbose] > │ v266.l0 <- v289 │
00:01:36 #4070 [Verbose] > │ () │
00:01:36 #4071 [Verbose] > │ let v290 : uint64 = System.Convert.ToUInt64 v265.Length │
00:01:36 #4072 [Verbose] > │ let v291 : UH5 = UH5_0 │
00:01:36 #4073 [Verbose] > │ let v292 : Mut3 = {l0 = 0UL; l1 = v291; l2 = 0} : Mut3 │
00:01:36 #4074 [Verbose] > │ while method28(v290, v292) do │
00:01:36 #4075 [Verbose] > │ let v294 : uint64 = v292.l0 │
00:01:36 #4076 [Verbose] > │ let struct (v295 : UH5, v296 : int32) = v292.l1, v292.l2 │
00:01:36 #4077 [Verbose] > │ let v297 : int64 = v265.[int v294] │
00:01:36 #4078 [Verbose] > │ let v298 : int32 = v296 + 1 │
00:01:36 #4079 [Verbose] > │ let v299 : uint64 = v294 + 1UL │
00:01:36 #4080 [Verbose] > │ let v300 : UH5 = UH5_1(v296, v297, v295) │
00:01:36 #4081 [Verbose] > │ v292.l0 <- v299 │
00:01:36 #4082 [Verbose] > │ v292.l1 <- v300 │
00:01:36 #4083 [Verbose] > │ v292.l2 <- v298 │
00:01:36 #4084 [Verbose] > │ () │
00:01:36 #4085 [Verbose] > │ let struct (v301 : UH5, v302 : int32) = v292.l1, v292.l2 │
00:01:36 #4086 [Verbose] > │ let v303 : UH5 = UH5_0 │
00:01:36 #4087 [Verbose] > │ let v304 : UH5 = method29(v301, v303) │
00:01:36 #4088 [Verbose] > │ let v305 : (struct (int32 * int64) []) = method30(v304) │
00:01:36 #4089 [Verbose] > │ let v306 : Map<int32, int64> = v305 |> Array.map (fun (struct (a, b)) -> │
00:01:36 #4090 [Verbose] > │ a, b) |> Map.ofArray │
00:01:36 #4091 [Verbose] > │ let v307 : (struct ((string []) * US1) []) = Array.zeroCreate<struct │
00:01:36 #4092 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v253)) │
00:01:36 #4093 [Verbose] > │ let v308 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #4094 [Verbose] > │ while method5(v253, v308) do │
00:01:36 #4095 [Verbose] > │ let v310 : uint64 = v308.l0 │
00:01:36 #4096 [Verbose] > │ let struct (v311 : UH2, v312 : US1) = v240.[int v310] │
00:01:36 #4097 [Verbose] > │ let v313 : UH6 = UH6_0 │
00:01:36 #4098 [Verbose] > │ let v314 : int32 = 0 │
00:01:36 #4099 [Verbose] > │ let struct (v315 : UH6, v316 : int32) = method33(v311, v313, v314) │
00:01:36 #4100 [Verbose] > │ let v317 : UH6 = UH6_0 │
00:01:36 #4101 [Verbose] > │ let v318 : UH6 = method34(v315, v317) │
00:01:36 #4102 [Verbose] > │ let v319 : UH2 = UH2_0 │
00:01:36 #4103 [Verbose] > │ let v320 : UH2 = method35(v306, v318, v319) │
00:01:36 #4104 [Verbose] > │ let v321 : (string []) = method36(v320) │
00:01:36 #4105 [Verbose] > │ v307.[int v310] <- struct (v321, v312) │
00:01:36 #4106 [Verbose] > │ let v322 : uint64 = v310 + 1UL │
00:01:36 #4107 [Verbose] > │ v308.l0 <- v322 │
00:01:36 #4108 [Verbose] > │ () │
00:01:36 #4109 [Verbose] > │ System.Console.WriteLine v27 │
00:01:36 #4110 [Verbose] > │ let v323 : uint64 = System.Convert.ToUInt64 v307.Length │
00:01:36 #4111 [Verbose] > │ let v324 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:36 #4112 [Verbose] > │ while method5(v323, v324) do │
00:01:36 #4113 [Verbose] > │ let v326 : uint64 = v324.l0 │
00:01:36 #4114 [Verbose] > │ let struct (v327 : (string []), v328 : US1) = v307.[int v326] │
00:01:36 #4115 [Verbose] > │ match v328 with │
00:01:36 #4116 [Verbose] > │ | US1_1 -> (* None *) │
00:01:36 #4117 [Verbose] > │ let v331 : unit option = None │
00:01:36 #4118 [Verbose] > │ let mutable _v331 = v331 │
00:01:36 #4119 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:36 #4120 [Verbose] > │ () │
00:01:36 #4121 [Verbose] > │ #endif │
00:01:36 #4122 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:36 #4123 [Verbose] > │ () │
00:01:36 #4124 [Verbose] > │ #endif │
00:01:36 #4125 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:36 #4126 [Verbose] > │ () │
00:01:36 #4127 [Verbose] > │ #endif │
00:01:36 #4128 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:36 #4129 [Verbose] > │ System.Console.ResetColor () │
00:01:36 #4130 [Verbose] > │ () │
00:01:36 #4131 [Verbose] > │ #endif │
00:01:36 #4132 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:36 #4133 [Verbose] > │ System.Console.ResetColor () │
00:01:36 #4134 [Verbose] > │ () │
00:01:36 #4135 [Verbose] > │ #endif │
00:01:36 #4136 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:36 #4137 [Verbose] > │ System.Console.ResetColor () │
00:01:36 #4138 [Verbose] > │ () │
00:01:36 #4139 [Verbose] > │ #endif │
00:01:36 #4140 [Verbose] > │ |> fun x -> _v331 <- Some x │
00:01:36 #4141 [Verbose] > │ _v331 |> Option.get │
00:01:36 #4142 [Verbose] > │ () │
00:01:36 #4143 [Verbose] > │ | US1_0(v329) -> (* Some *) │
00:01:36 #4144 [Verbose] > │ let v330 : unit option = None │
00:01:36 #4145 [Verbose] > │ let mutable _v330 = v330 │
00:01:37 #4146 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:37 #4147 [Verbose] > │ () │
00:01:37 #4148 [Verbose] > │ #endif │
00:01:37 #4149 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:37 #4150 [Verbose] > │ () │
00:01:37 #4151 [Verbose] > │ #endif │
00:01:37 #4152 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:37 #4153 [Verbose] > │ () │
00:01:37 #4154 [Verbose] > │ #endif │
00:01:37 #4155 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4156 [Verbose] > │ System.Console.ForegroundColor <- v329 │
00:01:37 #4157 [Verbose] > │ () │
00:01:37 #4158 [Verbose] > │ #endif │
00:01:37 #4159 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4160 [Verbose] > │ System.Console.ForegroundColor <- v329 │
00:01:37 #4161 [Verbose] > │ () │
00:01:37 #4162 [Verbose] > │ #endif │
00:01:37 #4163 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:37 #4164 [Verbose] > │ System.Console.ForegroundColor <- v329 │
00:01:37 #4165 [Verbose] > │ () │
00:01:37 #4166 [Verbose] > │ #endif │
00:01:37 #4167 [Verbose] > │ |> fun x -> _v330 <- Some x │
00:01:37 #4168 [Verbose] > │ _v330 |> Option.get │
00:01:37 #4169 [Verbose] > │ () │
00:01:37 #4170 [Verbose] > │ let v332 : string = "\t| " │
00:01:37 #4171 [Verbose] > │ let v333 : string = System.String.Join (v332, v327) │
00:01:37 #4172 [Verbose] > │ System.Console.WriteLine v333 │
00:01:37 #4173 [Verbose] > │ let v334 : unit option = None │
00:01:37 #4174 [Verbose] > │ let mutable _v334 = v334 │
00:01:37 #4175 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:37 #4176 [Verbose] > │ () │
00:01:37 #4177 [Verbose] > │ #endif │
00:01:37 #4178 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:37 #4179 [Verbose] > │ () │
00:01:37 #4180 [Verbose] > │ #endif │
00:01:37 #4181 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:37 #4182 [Verbose] > │ () │
00:01:37 #4183 [Verbose] > │ #endif │
00:01:37 #4184 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4185 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4186 [Verbose] > │ () │
00:01:37 #4187 [Verbose] > │ #endif │
00:01:37 #4188 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4189 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4190 [Verbose] > │ () │
00:01:37 #4191 [Verbose] > │ #endif │
00:01:37 #4192 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:37 #4193 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4194 [Verbose] > │ () │
00:01:37 #4195 [Verbose] > │ #endif │
00:01:37 #4196 [Verbose] > │ |> fun x -> _v334 <- Some x │
00:01:37 #4197 [Verbose] > │ _v334 |> Option.get │
00:01:37 #4198 [Verbose] > │ let v335 : uint64 = v326 + 1UL │
00:01:37 #4199 [Verbose] > │ v324.l0 <- v335 │
00:01:37 #4200 [Verbose] > │ () │
00:01:37 #4201 [Verbose] > │ let v336 : ((float []) []) = Array.zeroCreate<(float [])> │
00:01:37 #4202 [Verbose] > │ (System.Convert.ToInt32(v163)) │
00:01:37 #4203 [Verbose] > │ let v337 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4204 [Verbose] > │ while method5(v163, v337) do │
00:01:37 #4205 [Verbose] > │ let v339 : uint64 = v337.l0 │
00:01:37 #4206 [Verbose] > │ let struct (v340 : string, v341 : string, v342 : string, v343 : │
00:01:37 #4207 [Verbose] > │ (int64 [])) = v75.[int v339] │
00:01:37 #4208 [Verbose] > │ let v344 : (int64 -> float) = float │
00:01:37 #4209 [Verbose] > │ let v345 : uint64 = System.Convert.ToUInt64 v343.Length │
00:01:37 #4210 [Verbose] > │ let v346 : (float []) = Array.zeroCreate<float> │
00:01:37 #4211 [Verbose] > │ (System.Convert.ToInt32(v345)) │
00:01:37 #4212 [Verbose] > │ let v347 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4213 [Verbose] > │ while method5(v345, v347) do │
00:01:37 #4214 [Verbose] > │ let v349 : uint64 = v347.l0 │
00:01:37 #4215 [Verbose] > │ let v350 : int64 = v343.[int v349] │
00:01:37 #4216 [Verbose] > │ let v351 : float = v344 v350 │
00:01:37 #4217 [Verbose] > │ v346.[int v349] <- v351 │
00:01:37 #4218 [Verbose] > │ let v352 : uint64 = v349 + 1UL │
00:01:37 #4219 [Verbose] > │ v347.l0 <- v352 │
00:01:37 #4220 [Verbose] > │ () │
00:01:37 #4221 [Verbose] > │ v336.[int v339] <- v346 │
00:01:37 #4222 [Verbose] > │ let v353 : uint64 = v339 + 1UL │
00:01:37 #4223 [Verbose] > │ v337.l0 <- v353 │
00:01:37 #4224 [Verbose] > │ () │
00:01:37 #4225 [Verbose] > │ let v354 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:01:37 #4226 [Verbose] > │ let v355 : ((float []) []) = v354 v336 │
00:01:37 #4227 [Verbose] > │ let v356 : uint64 = System.Convert.ToUInt64 v355.Length │
00:01:37 #4228 [Verbose] > │ let v357 : (float []) = Array.zeroCreate<float> │
00:01:37 #4229 [Verbose] > │ (System.Convert.ToInt32(v356)) │
00:01:37 #4230 [Verbose] > │ let v358 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4231 [Verbose] > │ while method5(v356, v358) do │
00:01:37 #4232 [Verbose] > │ let v360 : uint64 = v358.l0 │
00:01:37 #4233 [Verbose] > │ let v361 : (float []) = v355.[int v360] │
00:01:37 #4234 [Verbose] > │ let v362 : ((float []) -> float) = Array.average │
00:01:37 #4235 [Verbose] > │ let v363 : float = v362 v361 │
00:01:37 #4236 [Verbose] > │ v357.[int v360] <- v363 │
00:01:37 #4237 [Verbose] > │ let v364 : uint64 = v360 + 1UL │
00:01:37 #4238 [Verbose] > │ v358.l0 <- v364 │
00:01:37 #4239 [Verbose] > │ () │
00:01:37 #4240 [Verbose] > │ let v365 : (float -> int64) = int64 │
00:01:37 #4241 [Verbose] > │ let v366 : uint64 = System.Convert.ToUInt64 v357.Length │
00:01:37 #4242 [Verbose] > │ let v367 : (int64 []) = Array.zeroCreate<int64> │
00:01:37 #4243 [Verbose] > │ (System.Convert.ToInt32(v366)) │
00:01:37 #4244 [Verbose] > │ let v368 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4245 [Verbose] > │ while method5(v366, v368) do │
00:01:37 #4246 [Verbose] > │ let v370 : uint64 = v368.l0 │
00:01:37 #4247 [Verbose] > │ let v371 : float = v357.[int v370] │
00:01:37 #4248 [Verbose] > │ let v372 : int64 = v365 v371 │
00:01:37 #4249 [Verbose] > │ v367.[int v370] <- v372 │
00:01:37 #4250 [Verbose] > │ let v373 : uint64 = v370 + 1UL │
00:01:37 #4251 [Verbose] > │ v368.l0 <- v373 │
00:01:37 #4252 [Verbose] > │ () │
00:01:37 #4253 [Verbose] > │ let v374 : uint64 = System.Convert.ToUInt64 v367.Length │
00:01:37 #4254 [Verbose] > │ let v375 : UH5 = UH5_0 │
00:01:37 #4255 [Verbose] > │ let v376 : Mut3 = {l0 = 0UL; l1 = v375; l2 = 0} : Mut3 │
00:01:37 #4256 [Verbose] > │ while method28(v374, v376) do │
00:01:37 #4257 [Verbose] > │ let v378 : uint64 = v376.l0 │
00:01:37 #4258 [Verbose] > │ let struct (v379 : UH5, v380 : int32) = v376.l1, v376.l2 │
00:01:37 #4259 [Verbose] > │ let v381 : int64 = v367.[int v378] │
00:01:37 #4260 [Verbose] > │ let v382 : int32 = v380 + 1 │
00:01:37 #4261 [Verbose] > │ let v383 : uint64 = v378 + 1UL │
00:01:37 #4262 [Verbose] > │ let v384 : UH5 = UH5_1(v380, v381, v379) │
00:01:37 #4263 [Verbose] > │ v376.l0 <- v383 │
00:01:37 #4264 [Verbose] > │ v376.l1 <- v384 │
00:01:37 #4265 [Verbose] > │ v376.l2 <- v382 │
00:01:37 #4266 [Verbose] > │ () │
00:01:37 #4267 [Verbose] > │ let struct (v385 : UH5, v386 : int32) = v376.l1, v376.l2 │
00:01:37 #4268 [Verbose] > │ let v387 : UH5 = UH5_0 │
00:01:37 #4269 [Verbose] > │ let v388 : UH5 = method29(v385, v387) │
00:01:37 #4270 [Verbose] > │ let v389 : (struct (int32 * int64) []) = method39(v388) │
00:01:37 #4271 [Verbose] > │ System.Console.WriteLine v27 │
00:01:37 #4272 [Verbose] > │ let v390 : string = "Average Ranking " │
00:01:37 #4273 [Verbose] > │ System.Console.WriteLine v390 │
00:01:37 #4274 [Verbose] > │ let v391 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:01:37 #4275 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:01:37 #4276 [Verbose] > │ let v392 : (struct (int32 * int64) -> int64) = closure8() │
00:01:37 #4277 [Verbose] > │ let v393 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:01:37 #4278 [Verbose] > │ = v391 v392 │
00:01:37 #4279 [Verbose] > │ let v394 : (struct (int32 * int64) []) = v393 v389 │
00:01:37 #4280 [Verbose] > │ let v395 : uint64 = System.Convert.ToUInt64 v394.Length │
00:01:37 #4281 [Verbose] > │ let v396 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4282 [Verbose] > │ while method5(v395, v396) do │
00:01:37 #4283 [Verbose] > │ let v398 : uint64 = v396.l0 │
00:01:37 #4284 [Verbose] > │ let struct (v399 : int32, v400 : int64) = v394.[int v398] │
00:01:37 #4285 [Verbose] > │ let v401 : string = $"Test case %d{v399 + 1}. Average Time: %A{v400} │
00:01:37 #4286 [Verbose] > │ " │
00:01:37 #4287 [Verbose] > │ System.Console.WriteLine v401 │
00:01:37 #4288 [Verbose] > │ let v402 : uint64 = v398 + 1UL │
00:01:37 #4289 [Verbose] > │ v396.l0 <- v402 │
00:01:37 #4290 [Verbose] > │ () │
00:01:37 #4291 [Verbose] > │ () │
00:01:37 #4292 [Verbose] > │ and method0 () : unit = │
00:01:37 #4293 [Verbose] > │ let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4294 [Verbose] > │ let v1 : int32 = v0.Length │
00:01:37 #4295 [Verbose] > │ let v2 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4296 [Verbose] > │ let v3 : int32 = v2.Length │
00:01:37 #4297 [Verbose] > │ let v4 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4298 [Verbose] > │ let v5 : int32 = v4.Length │
00:01:37 #4299 [Verbose] > │ let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4300 [Verbose] > │ let v7 : int32 = v6.Length │
00:01:37 #4301 [Verbose] > │ let v8 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:37 #4302 [Verbose] > │ let v9 : Mut0 = {l0 = 0} : Mut0 │
00:01:37 #4303 [Verbose] > │ while method1(v9) do │
00:01:37 #4304 [Verbose] > │ let v11 : int32 = v9.l0 │
00:01:37 #4305 [Verbose] > │ let v12 : int32 = 1 + v11 │
00:01:37 #4306 [Verbose] > │ v8.[int v11] <- v12 │
00:01:37 #4307 [Verbose] > │ let v13 : int32 = v11 + 1 │
00:01:37 #4308 [Verbose] > │ v9.l0 <- v13 │
00:01:37 #4309 [Verbose] > │ () │
00:01:37 #4310 [Verbose] > │ let v14 : int32 = v8.Length │
00:01:37 #4311 [Verbose] > │ let v15 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4312 [Verbose] > │ let v16 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4313 [Verbose] > │ let v17 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4314 [Verbose] > │ let v18 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|] │
00:01:37 #4315 [Verbose] > │ let v19 : (int32 []) = Array.zeroCreate<int32> (100) │
00:01:37 #4316 [Verbose] > │ let v20 : Mut0 = {l0 = 0} : Mut0 │
00:01:37 #4317 [Verbose] > │ while method1(v20) do │
00:01:37 #4318 [Verbose] > │ let v22 : int32 = v20.l0 │
00:01:37 #4319 [Verbose] > │ let v23 : int32 = 1 + v22 │
00:01:37 #4320 [Verbose] > │ v19.[int v22] <- v23 │
00:01:37 #4321 [Verbose] > │ let v24 : int32 = v22 + 1 │
00:01:37 #4322 [Verbose] > │ v20.l0 <- v24 │
00:01:37 #4323 [Verbose] > │ () │
00:01:37 #4324 [Verbose] > │ let v25 : (unit -> unit) = closure0() │
00:01:37 #4325 [Verbose] > │ let v26 : string = nameof v25 │
00:01:37 #4326 [Verbose] > │ let v27 : string = "" │
00:01:37 #4327 [Verbose] > │ System.Console.WriteLine v27 │
00:01:37 #4328 [Verbose] > │ System.Console.WriteLine v27 │
00:01:37 #4329 [Verbose] > │ let v28 : string = $"Test: {v26}" │
00:01:37 #4330 [Verbose] > │ System.Console.WriteLine v28 │
00:01:37 #4331 [Verbose] > │ let v29 : int32 = 6 │
00:01:37 #4332 [Verbose] > │ let v30 : int32 = 3 │
00:01:37 #4333 [Verbose] > │ let v31 : US0 = US0_0(v30) │
00:01:37 #4334 [Verbose] > │ let v32 : int32 = 1 │
00:01:37 #4335 [Verbose] > │ let v33 : int32 = 0 │
00:01:37 #4336 [Verbose] > │ let v34 : US0 = US0_0(v33) │
00:01:37 #4337 [Verbose] > │ let v35 : int32 = 11 │
00:01:37 #4338 [Verbose] > │ let v36 : int32 = 6 │
00:01:37 #4339 [Verbose] > │ let v37 : US0 = US0_0(v36) │
00:01:37 #4340 [Verbose] > │ let v38 : int32 = 12 │
00:01:37 #4341 [Verbose] > │ let v39 : US0 = US0_1 │
00:01:37 #4342 [Verbose] > │ let v40 : int32 = 60 │
00:01:37 #4343 [Verbose] > │ let v41 : int32 = 59 │
00:01:37 #4344 [Verbose] > │ let v42 : US0 = US0_0(v41) │
00:01:37 #4345 [Verbose] > │ let v43 : int32 = 6 │
00:01:37 #4346 [Verbose] > │ let v44 : int32 = 7 │
00:01:37 #4347 [Verbose] > │ let v45 : int32 = 3 │
00:01:37 #4348 [Verbose] > │ let v46 : US0 = US0_0(v45) │
00:01:37 #4349 [Verbose] > │ let v47 : int32 = 1 │
00:01:37 #4350 [Verbose] > │ let v48 : int32 = 7 │
00:01:37 #4351 [Verbose] > │ let v49 : int32 = 0 │
00:01:37 #4352 [Verbose] > │ let v50 : US0 = US0_0(v49) │
00:01:37 #4353 [Verbose] > │ let v51 : int32 = 11 │
00:01:37 #4354 [Verbose] > │ let v52 : int32 = 7 │
00:01:37 #4355 [Verbose] > │ let v53 : int32 = 6 │
00:01:37 #4356 [Verbose] > │ let v54 : US0 = US0_0(v53) │
00:01:37 #4357 [Verbose] > │ let v55 : int32 = 12 │
00:01:37 #4358 [Verbose] > │ let v56 : int32 = 7 │
00:01:37 #4359 [Verbose] > │ let v57 : US0 = US0_1 │
00:01:37 #4360 [Verbose] > │ let v58 : int32 = 60 │
00:01:37 #4361 [Verbose] > │ let v59 : int32 = 100 │
00:01:37 #4362 [Verbose] > │ let v60 : int32 = 59 │
00:01:37 #4363 [Verbose] > │ let v61 : US0 = US0_0(v60) │
00:01:37 #4364 [Verbose] > │ let v62 : UH0 = UH0_0 │
00:01:37 #4365 [Verbose] > │ let v63 : UH0 = UH0_1(v19, v58, v59, v61, v62) │
00:01:37 #4366 [Verbose] > │ let v64 : UH0 = UH0_1(v18, v55, v56, v57, v63) │
00:01:37 #4367 [Verbose] > │ let v65 : UH0 = UH0_1(v17, v51, v52, v54, v64) │
00:01:37 #4368 [Verbose] > │ let v66 : UH0 = UH0_1(v16, v47, v48, v50, v65) │
00:01:37 #4369 [Verbose] > │ let v67 : UH0 = UH0_1(v15, v43, v44, v46, v66) │
00:01:37 #4370 [Verbose] > │ let v68 : UH0 = UH0_1(v8, v40, v14, v42, v67) │
00:01:37 #4371 [Verbose] > │ let v69 : UH0 = UH0_1(v6, v38, v7, v39, v68) │
00:01:37 #4372 [Verbose] > │ let v70 : UH0 = UH0_1(v4, v35, v5, v37, v69) │
00:01:37 #4373 [Verbose] > │ let v71 : UH0 = UH0_1(v2, v32, v3, v34, v70) │
00:01:37 #4374 [Verbose] > │ let v72 : UH0 = UH0_1(v0, v29, v1, v31, v71) │
00:01:37 #4375 [Verbose] > │ let v73 : (struct ((int32 []) * int32 * int32 * US0) []) = method2(v72) │
00:01:37 #4376 [Verbose] > │ let v74 : uint64 = System.Convert.ToUInt64 v73.Length │
00:01:37 #4377 [Verbose] > │ let v75 : (struct (string * string * string * (int64 [])) []) = │
00:01:37 #4378 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))> │
00:01:37 #4379 [Verbose] > │ (System.Convert.ToInt32(v74)) │
00:01:37 #4380 [Verbose] > │ let v76 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4381 [Verbose] > │ while method5(v74, v76) do │
00:01:37 #4382 [Verbose] > │ let v78 : uint64 = v76.l0 │
00:01:37 #4383 [Verbose] > │ let struct (v79 : (int32 []), v80 : int32, v81 : int32, v82 : US0) = │
00:01:37 #4384 [Verbose] > │ v73.[int v78] │
00:01:37 #4385 [Verbose] > │ let v83 : string = $"%A{struct (v79, v80, v81)}" │
00:01:37 #4386 [Verbose] > │ System.Console.WriteLine v27 │
00:01:37 #4387 [Verbose] > │ let v84 : string = $"Solution: {v83} " │
00:01:37 #4388 [Verbose] > │ System.Console.WriteLine v84 │
00:01:37 #4389 [Verbose] > │ let v85 : int32 = 0 │
00:01:37 #4390 [Verbose] > │ let v86 : string = "semi_open_1" │
00:01:37 #4391 [Verbose] > │ let v87 : (struct ((int32 []) * int32 * int32) -> US0) = closure1() │
00:01:37 #4392 [Verbose] > │ let v88 : int32 = 1 │
00:01:37 #4393 [Verbose] > │ let v89 : string = "closed_1" │
00:01:37 #4394 [Verbose] > │ let v90 : (struct ((int32 []) * int32 * int32) -> US0) = closure2() │
00:01:37 #4395 [Verbose] > │ let v91 : int32 = 2 │
00:01:37 #4396 [Verbose] > │ let v92 : string = "semi_open_2" │
00:01:37 #4397 [Verbose] > │ let v93 : (struct ((int32 []) * int32 * int32) -> US0) = closure3() │
00:01:37 #4398 [Verbose] > │ let v94 : int32 = 3 │
00:01:37 #4399 [Verbose] > │ let v95 : string = "closed_2" │
00:01:37 #4400 [Verbose] > │ let v96 : (struct ((int32 []) * int32 * int32) -> US0) = closure4() │
00:01:37 #4401 [Verbose] > │ let v97 : UH1 = UH1_0 │
00:01:37 #4402 [Verbose] > │ let v98 : UH1 = UH1_1(v94, v95, v96, v97) │
00:01:37 #4403 [Verbose] > │ let v99 : UH1 = UH1_1(v91, v92, v93, v98) │
00:01:37 #4404 [Verbose] > │ let v100 : UH1 = UH1_1(v88, v89, v90, v99) │
00:01:37 #4405 [Verbose] > │ let v101 : UH1 = UH1_1(v85, v86, v87, v100) │
00:01:37 #4406 [Verbose] > │ let v102 : (struct (int32 * string * (struct ((int32 []) * int32 * │
00:01:37 #4407 [Verbose] > │ int32) -> US0)) []) = method10(v101) │
00:01:37 #4408 [Verbose] > │ let v103 : uint64 = System.Convert.ToUInt64 v102.Length │
00:01:37 #4409 [Verbose] > │ let v104 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0 │
00:01:37 #4410 [Verbose] > │ * int64)> (System.Convert.ToInt32(v103)) │
00:01:37 #4411 [Verbose] > │ let v105 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4412 [Verbose] > │ while method5(v103, v105) do │
00:01:37 #4413 [Verbose] > │ let v107 : uint64 = v105.l0 │
00:01:37 #4414 [Verbose] > │ let struct (v108 : int32, v109 : string, v110 : (struct ((int32 │
00:01:37 #4415 [Verbose] > │ []) * int32 * int32) -> US0)) = v102.[int v107] │
00:01:37 #4416 [Verbose] > │ let v111 : unit option = None │
00:01:37 #4417 [Verbose] > │ let mutable _v111 = v111 │
00:01:37 #4418 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:37 #4419 [Verbose] > │ () │
00:01:37 #4420 [Verbose] > │ #endif │
00:01:37 #4421 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:37 #4422 [Verbose] > │ () │
00:01:37 #4423 [Verbose] > │ #endif │
00:01:37 #4424 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:37 #4425 [Verbose] > │ () │
00:01:37 #4426 [Verbose] > │ #endif │
00:01:37 #4427 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4428 [Verbose] > │ System.GC.Collect () │
00:01:37 #4429 [Verbose] > │ () │
00:01:37 #4430 [Verbose] > │ #endif │
00:01:37 #4431 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4432 [Verbose] > │ System.GC.Collect () │
00:01:37 #4433 [Verbose] > │ () │
00:01:37 #4434 [Verbose] > │ #endif │
00:01:37 #4435 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:37 #4436 [Verbose] > │ System.GC.Collect () │
00:01:37 #4437 [Verbose] > │ () │
00:01:37 #4438 [Verbose] > │ #endif │
00:01:37 #4439 [Verbose] > │ |> fun x -> _v111 <- Some x │
00:01:37 #4440 [Verbose] > │ _v111 |> Option.get │
00:01:37 #4441 [Verbose] > │ let v112 : (unit -> System.Diagnostics.Stopwatch) = │
00:01:37 #4442 [Verbose] > │ System.Diagnostics.Stopwatch │
00:01:37 #4443 [Verbose] > │ let v113 : System.Diagnostics.Stopwatch = v112 () │
00:01:37 #4444 [Verbose] > │ v113.Start () │
00:01:37 #4445 [Verbose] > │ let v114 : int64 = v113.ElapsedMilliseconds │
00:01:37 #4446 [Verbose] > │ let v115 : (int32 []) = Array.zeroCreate<int32> (8000001) │
00:01:37 #4447 [Verbose] > │ let v116 : Mut0 = {l0 = 0} : Mut0 │
00:01:37 #4448 [Verbose] > │ while method13(v116) do │
00:01:37 #4449 [Verbose] > │ let v118 : int32 = v116.l0 │
00:01:37 #4450 [Verbose] > │ v115.[int v118] <- v118 │
00:01:37 #4451 [Verbose] > │ let v119 : int32 = v118 + 1 │
00:01:37 #4452 [Verbose] > │ v116.l0 <- v119 │
00:01:37 #4453 [Verbose] > │ () │
00:01:37 #4454 [Verbose] > │ let v120 : ((int32 -> US0) -> ((int32 []) -> (US0 []))) = │
00:01:37 #4455 [Verbose] > │ Array.Parallel.map │
00:01:37 #4456 [Verbose] > │ let v121 : (int32 -> US0) = closure5(v79, v80, v81, v110) │
00:01:37 #4457 [Verbose] > │ let v122 : ((int32 []) -> (US0 [])) = v120 v121 │
00:01:37 #4458 [Verbose] > │ let v123 : (US0 []) = v122 v115 │
00:01:37 #4459 [Verbose] > │ let v124 : int32 = v123.Length │
00:01:37 #4460 [Verbose] > │ let v125 : int32 = v124 - 1 │
00:01:37 #4461 [Verbose] > │ let v126 : US0 = v123.[int v125] │
00:01:37 #4462 [Verbose] > │ let v127 : int64 = v113.ElapsedMilliseconds │
00:01:37 #4463 [Verbose] > │ let v128 : int64 = v127 - v114 │
00:01:37 #4464 [Verbose] > │ let v129 : string = $"Test case {v108 + 1}. {v109}. Time: {v128} │
00:01:37 #4465 [Verbose] > │ " │
00:01:37 #4466 [Verbose] > │ System.Console.WriteLine v129 │
00:01:37 #4467 [Verbose] > │ v104.[int v107] <- struct (v126, v128) │
00:01:37 #4468 [Verbose] > │ let v130 : uint64 = v107 + 1UL │
00:01:37 #4469 [Verbose] > │ v105.l0 <- v130 │
00:01:37 #4470 [Verbose] > │ () │
00:01:37 #4471 [Verbose] > │ let v131 : uint64 = System.Convert.ToUInt64 v104.Length │
00:01:37 #4472 [Verbose] > │ let v132 : (US0 []) = Array.zeroCreate<US0> │
00:01:37 #4473 [Verbose] > │ (System.Convert.ToInt32(v131)) │
00:01:37 #4474 [Verbose] > │ let v133 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4475 [Verbose] > │ while method5(v131, v133) do │
00:01:37 #4476 [Verbose] > │ let v135 : uint64 = v133.l0 │
00:01:37 #4477 [Verbose] > │ let struct (v136 : US0, v137 : int64) = v104.[int v135] │
00:01:37 #4478 [Verbose] > │ v132.[int v135] <- v136 │
00:01:37 #4479 [Verbose] > │ let v138 : uint64 = v135 + 1UL │
00:01:37 #4480 [Verbose] > │ v133.l0 <- v138 │
00:01:37 #4481 [Verbose] > │ () │
00:01:37 #4482 [Verbose] > │ let v139 : uint64 = System.Convert.ToUInt64 v132.Length │
00:01:37 #4483 [Verbose] > │ let v140 : bool = v139 <= 1UL │
00:01:37 #4484 [Verbose] > │ if v140 then │
00:01:37 #4485 [Verbose] > │ () │
00:01:37 #4486 [Verbose] > │ else │
00:01:37 #4487 [Verbose] > │ let v141 : US0 = v132.[int 0UL] │
00:01:37 #4488 [Verbose] > │ let v142 : uint64 = 0UL │
00:01:37 #4489 [Verbose] > │ let v143 : bool = method14(v141, v132, v142) │
00:01:37 #4490 [Verbose] > │ if v143 then │
00:01:37 #4491 [Verbose] > │ () │
00:01:37 #4492 [Verbose] > │ else │
00:01:37 #4493 [Verbose] > │ let v144 : string = $"Challenge error: {v132}" │
00:01:37 #4494 [Verbose] > │ failwith<unit> v144 │
00:01:37 #4495 [Verbose] > │ let v145 : string = $"%A{v82}" │
00:01:37 #4496 [Verbose] > │ let v146 : (US0 []) = Array.zeroCreate<US0> │
00:01:37 #4497 [Verbose] > │ (System.Convert.ToInt32(v131)) │
00:01:37 #4498 [Verbose] > │ let v147 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4499 [Verbose] > │ while method5(v131, v147) do │
00:01:37 #4500 [Verbose] > │ let v149 : uint64 = v147.l0 │
00:01:37 #4501 [Verbose] > │ let struct (v150 : US0, v151 : int64) = v104.[int v149] │
00:01:37 #4502 [Verbose] > │ v146.[int v149] <- v150 │
00:01:37 #4503 [Verbose] > │ let v152 : uint64 = v149 + 1UL │
00:01:37 #4504 [Verbose] > │ v147.l0 <- v152 │
00:01:37 #4505 [Verbose] > │ () │
00:01:37 #4506 [Verbose] > │ let v153 : US0 = v146.[int 0UL] │
00:01:37 #4507 [Verbose] > │ let v154 : string = $"%A{v153}" │
00:01:37 #4508 [Verbose] > │ let v155 : (int64 []) = Array.zeroCreate<int64> │
00:01:37 #4509 [Verbose] > │ (System.Convert.ToInt32(v131)) │
00:01:37 #4510 [Verbose] > │ let v156 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4511 [Verbose] > │ while method5(v131, v156) do │
00:01:37 #4512 [Verbose] > │ let v158 : uint64 = v156.l0 │
00:01:37 #4513 [Verbose] > │ let struct (v159 : US0, v160 : int64) = v104.[int v158] │
00:01:37 #4514 [Verbose] > │ v155.[int v158] <- v160 │
00:01:37 #4515 [Verbose] > │ let v161 : uint64 = v158 + 1UL │
00:01:37 #4516 [Verbose] > │ v156.l0 <- v161 │
00:01:37 #4517 [Verbose] > │ () │
00:01:37 #4518 [Verbose] > │ v75.[int v78] <- struct (v145, v83, v154, v155) │
00:01:37 #4519 [Verbose] > │ let v162 : uint64 = v78 + 1UL │
00:01:37 #4520 [Verbose] > │ v76.l0 <- v162 │
00:01:37 #4521 [Verbose] > │ () │
00:01:37 #4522 [Verbose] > │ let v163 : uint64 = System.Convert.ToUInt64 v75.Length │
00:01:37 #4523 [Verbose] > │ let v164 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:37 #4524 [Verbose] > │ US1)> (System.Convert.ToInt32(v163)) │
00:01:37 #4525 [Verbose] > │ let v165 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4526 [Verbose] > │ while method5(v163, v165) do │
00:01:37 #4527 [Verbose] > │ let v167 : uint64 = v165.l0 │
00:01:37 #4528 [Verbose] > │ let struct (v168 : string, v169 : string, v170 : string, v171 : │
00:01:37 #4529 [Verbose] > │ (int64 [])) = v75.[int v167] │
00:01:37 #4530 [Verbose] > │ let v172 : uint64 = System.Convert.ToUInt64 v171.Length │
00:01:37 #4531 [Verbose] > │ let v173 : UH3 = UH3_0 │
00:01:37 #4532 [Verbose] > │ let v174 : Mut2 = {l0 = 0UL; l1 = v173; l2 = 0L} : Mut2 │
00:01:37 #4533 [Verbose] > │ while method15(v172, v174) do │
00:01:37 #4534 [Verbose] > │ let v176 : uint64 = v174.l0 │
00:01:37 #4535 [Verbose] > │ let struct (v177 : UH3, v178 : int64) = v174.l1, v174.l2 │
00:01:37 #4536 [Verbose] > │ let v179 : int64 = v171.[int v176] │
00:01:37 #4537 [Verbose] > │ let v180 : int64 = v178 + 1L │
00:01:37 #4538 [Verbose] > │ let v181 : uint64 = v176 + 1UL │
00:01:37 #4539 [Verbose] > │ let v182 : UH3 = UH3_1(v178, v179, v177) │
00:01:37 #4540 [Verbose] > │ v174.l0 <- v181 │
00:01:37 #4541 [Verbose] > │ v174.l1 <- v182 │
00:01:37 #4542 [Verbose] > │ v174.l2 <- v180 │
00:01:37 #4543 [Verbose] > │ () │
00:01:37 #4544 [Verbose] > │ let struct (v183 : UH3, v184 : int64) = v174.l1, v174.l2 │
00:01:37 #4545 [Verbose] > │ let v185 : UH3 = UH3_0 │
00:01:37 #4546 [Verbose] > │ let v186 : UH3 = method16(v183, v185) │
00:01:37 #4547 [Verbose] > │ let v187 : (struct (int64 * int64) []) = method17(v186) │
00:01:37 #4548 [Verbose] > │ let v188 : int32 = v187.Length │
00:01:37 #4549 [Verbose] > │ let v189 : (struct (int64 * int64) []) = Array.zeroCreate<struct │
00:01:37 #4550 [Verbose] > │ (int64 * int64)> (v188) │
00:01:37 #4551 [Verbose] > │ let v190 : Mut0 = {l0 = 0} : Mut0 │
00:01:37 #4552 [Verbose] > │ while method20(v188, v190) do │
00:01:37 #4553 [Verbose] > │ let v192 : int32 = v190.l0 │
00:01:37 #4554 [Verbose] > │ let struct (v193 : int64, v194 : int64) = v187.[int v192] │
00:01:37 #4555 [Verbose] > │ let v195 : int64 = v193 + 1L │
00:01:37 #4556 [Verbose] > │ v189.[int v192] <- struct (v195, v194) │
00:01:37 #4557 [Verbose] > │ let v196 : int32 = v192 + 1 │
00:01:37 #4558 [Verbose] > │ v190.l0 <- v196 │
00:01:37 #4559 [Verbose] > │ () │
00:01:37 #4560 [Verbose] > │ let v197 : ((struct (int64 * int64) -> int64) -> ((struct (int64 * │
00:01:37 #4561 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy │
00:01:37 #4562 [Verbose] > │ let v198 : (struct (int64 * int64) -> int64) = closure6() │
00:01:37 #4563 [Verbose] > │ let v199 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │
00:01:37 #4564 [Verbose] > │ ])) = v197 v198 │
00:01:37 #4565 [Verbose] > │ let v200 : (struct (int64 * int64) []) = v199 v189 │
00:01:37 #4566 [Verbose] > │ let struct (v201 : int64, v202 : int64) = v200.[int 0] │
00:01:37 #4567 [Verbose] > │ let v203 : string = $"%A{struct (v201, v202)}" │
00:01:37 #4568 [Verbose] > │ let v204 : bool = v168 = v170 │
00:01:37 #4569 [Verbose] > │ let v209 : US1 = │
00:01:37 #4570 [Verbose] > │ if v204 then │
00:01:37 #4571 [Verbose] > │ let v205 : System.ConsoleColor = │
00:01:37 #4572 [Verbose] > │ System.ConsoleColor.DarkGreen │
00:01:37 #4573 [Verbose] > │ US1_0(v205) │
00:01:37 #4574 [Verbose] > │ else │
00:01:37 #4575 [Verbose] > │ let v207 : System.ConsoleColor = System.ConsoleColor.DarkRed │
00:01:37 #4576 [Verbose] > │ US1_0(v207) │
00:01:37 #4577 [Verbose] > │ let v210 : UH2 = UH2_0 │
00:01:37 #4578 [Verbose] > │ let v211 : UH2 = UH2_1(v203, v210) │
00:01:37 #4579 [Verbose] > │ let v212 : UH2 = UH2_1(v170, v211) │
00:01:37 #4580 [Verbose] > │ let v213 : UH2 = UH2_1(v168, v212) │
00:01:37 #4581 [Verbose] > │ let v214 : UH2 = UH2_1(v169, v213) │
00:01:37 #4582 [Verbose] > │ v164.[int v167] <- struct (v214, v209) │
00:01:37 #4583 [Verbose] > │ let v215 : uint64 = v167 + 1UL │
00:01:37 #4584 [Verbose] > │ v165.l0 <- v215 │
00:01:37 #4585 [Verbose] > │ () │
00:01:37 #4586 [Verbose] > │ let v216 : string = "Input" │
00:01:37 #4587 [Verbose] > │ let v217 : string = "Expected" │
00:01:37 #4588 [Verbose] > │ let v218 : string = "Result" │
00:01:37 #4589 [Verbose] > │ let v219 : string = "Best" │
00:01:37 #4590 [Verbose] > │ let v220 : UH2 = UH2_0 │
00:01:37 #4591 [Verbose] > │ let v221 : UH2 = UH2_1(v219, v220) │
00:01:37 #4592 [Verbose] > │ let v222 : UH2 = UH2_1(v218, v221) │
00:01:37 #4593 [Verbose] > │ let v223 : UH2 = UH2_1(v217, v222) │
00:01:37 #4594 [Verbose] > │ let v224 : UH2 = UH2_1(v216, v223) │
00:01:37 #4595 [Verbose] > │ let v225 : US1 = US1_1 │
00:01:37 #4596 [Verbose] > │ let v226 : string = "---" │
00:01:37 #4597 [Verbose] > │ let v227 : UH2 = UH2_0 │
00:01:37 #4598 [Verbose] > │ let v228 : UH2 = UH2_1(v226, v227) │
00:01:37 #4599 [Verbose] > │ let v229 : UH2 = UH2_1(v226, v228) │
00:01:37 #4600 [Verbose] > │ let v230 : UH2 = UH2_1(v226, v229) │
00:01:37 #4601 [Verbose] > │ let v231 : UH2 = UH2_1(v226, v230) │
00:01:37 #4602 [Verbose] > │ let v232 : US1 = US1_1 │
00:01:37 #4603 [Verbose] > │ let v233 : UH4 = UH4_0 │
00:01:37 #4604 [Verbose] > │ let v234 : UH4 = UH4_1(v231, v232, v233) │
00:01:37 #4605 [Verbose] > │ let v235 : UH4 = UH4_1(v224, v225, v234) │
00:01:37 #4606 [Verbose] > │ let v236 : (struct (UH2 * US1) []) = method21(v235) │
00:01:37 #4607 [Verbose] > │ let v237 : uint64 = System.Convert.ToUInt64 v236.Length │
00:01:37 #4608 [Verbose] > │ let v238 : uint64 = System.Convert.ToUInt64 v164.Length │
00:01:37 #4609 [Verbose] > │ let v239 : uint64 = v237 + v238 │
00:01:37 #4610 [Verbose] > │ let v240 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * │
00:01:37 #4611 [Verbose] > │ US1)> (System.Convert.ToInt32(v239)) │
00:01:37 #4612 [Verbose] > │ let v241 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4613 [Verbose] > │ while method5(v239, v241) do │
00:01:37 #4614 [Verbose] > │ let v243 : uint64 = v241.l0 │
00:01:37 #4615 [Verbose] > │ let v244 : bool = v243 < v237 │
00:01:37 #4616 [Verbose] > │ let struct (v250 : UH2, v251 : US1) = │
00:01:37 #4617 [Verbose] > │ if v244 then │
00:01:37 #4618 [Verbose] > │ let struct (v245 : UH2, v246 : US1) = v236.[int v243] │
00:01:37 #4619 [Verbose] > │ struct (v245, v246) │
00:01:37 #4620 [Verbose] > │ else │
00:01:37 #4621 [Verbose] > │ let v247 : uint64 = v243 - v237 │
00:01:37 #4622 [Verbose] > │ let struct (v248 : UH2, v249 : US1) = v164.[int v247] │
00:01:37 #4623 [Verbose] > │ struct (v248, v249) │
00:01:37 #4624 [Verbose] > │ v240.[int v243] <- struct (v250, v251) │
00:01:37 #4625 [Verbose] > │ let v252 : uint64 = v243 + 1UL │
00:01:37 #4626 [Verbose] > │ v241.l0 <- v252 │
00:01:37 #4627 [Verbose] > │ () │
00:01:37 #4628 [Verbose] > │ let v253 : uint64 = System.Convert.ToUInt64 v240.Length │
00:01:37 #4629 [Verbose] > │ let v254 : ((string []) []) = Array.zeroCreate<(string [])> │
00:01:37 #4630 [Verbose] > │ (System.Convert.ToInt32(v253)) │
00:01:37 #4631 [Verbose] > │ let v255 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4632 [Verbose] > │ while method5(v253, v255) do │
00:01:37 #4633 [Verbose] > │ let v257 : uint64 = v255.l0 │
00:01:37 #4634 [Verbose] > │ let struct (v258 : UH2, v259 : US1) = v240.[int v257] │
00:01:37 #4635 [Verbose] > │ let v260 : (string []) = method24(v258) │
00:01:37 #4636 [Verbose] > │ v254.[int v257] <- v260 │
00:01:37 #4637 [Verbose] > │ let v261 : uint64 = v257 + 1UL │
00:01:37 #4638 [Verbose] > │ v255.l0 <- v261 │
00:01:37 #4639 [Verbose] > │ () │
00:01:37 #4640 [Verbose] > │ let v262 : (((string []) []) -> ((string []) [])) = Array.transpose │
00:01:37 #4641 [Verbose] > │ let v263 : ((string []) []) = v262 v254 │
00:01:37 #4642 [Verbose] > │ let v264 : uint64 = System.Convert.ToUInt64 v263.Length │
00:01:37 #4643 [Verbose] > │ let v265 : (int64 []) = Array.zeroCreate<int64> │
00:01:37 #4644 [Verbose] > │ (System.Convert.ToInt32(v264)) │
00:01:37 #4645 [Verbose] > │ let v266 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4646 [Verbose] > │ while method5(v264, v266) do │
00:01:37 #4647 [Verbose] > │ let v268 : uint64 = v266.l0 │
00:01:37 #4648 [Verbose] > │ let v269 : (string []) = v263.[int v268] │
00:01:37 #4649 [Verbose] > │ let v270 : uint64 = System.Convert.ToUInt64 v269.Length │
00:01:37 #4650 [Verbose] > │ let v271 : (int64 []) = Array.zeroCreate<int64> │
00:01:37 #4651 [Verbose] > │ (System.Convert.ToInt32(v270)) │
00:01:37 #4652 [Verbose] > │ let v272 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4653 [Verbose] > │ while method5(v270, v272) do │
00:01:37 #4654 [Verbose] > │ let v274 : uint64 = v272.l0 │
00:01:37 #4655 [Verbose] > │ let v275 : string = v269.[int v274] │
00:01:37 #4656 [Verbose] > │ let v276 : int64 = System.Convert.ToInt64 v275.Length │
00:01:37 #4657 [Verbose] > │ v271.[int v274] <- v276 │
00:01:37 #4658 [Verbose] > │ let v277 : uint64 = v274 + 1UL │
00:01:37 #4659 [Verbose] > │ v272.l0 <- v277 │
00:01:37 #4660 [Verbose] > │ () │
00:01:37 #4661 [Verbose] > │ let v278 : ((int64 []) -> (int64 [])) = Array.sortDescending │
00:01:37 #4662 [Verbose] > │ let v279 : (int64 []) = v278 v271 │
00:01:37 #4663 [Verbose] > │ let v280 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem │
00:01:37 #4664 [Verbose] > │ let v281 : ((int64 []) -> int64 option) = v280 0 │
00:01:37 #4665 [Verbose] > │ let v282 : int64 option = v281 v279 │
00:01:37 #4666 [Verbose] > │ let v283 : (int64 -> US2) = method27() │
00:01:37 #4667 [Verbose] > │ let v284 : US2 = US2_1 │
00:01:37 #4668 [Verbose] > │ let v285 : US2 = v282 |> Option.map v283 |> Option.defaultValue v284 │
00:01:37 #4669 [Verbose] > │ let v288 : int64 = │
00:01:37 #4670 [Verbose] > │ match v285 with │
00:01:37 #4671 [Verbose] > │ | US2_1 -> (* None *) │
00:01:37 #4672 [Verbose] > │ 0L │
00:01:37 #4673 [Verbose] > │ | US2_0(v286) -> (* Some *) │
00:01:37 #4674 [Verbose] > │ v286 │
00:01:37 #4675 [Verbose] > │ v265.[int v268] <- v288 │
00:01:37 #4676 [Verbose] > │ let v289 : uint64 = v268 + 1UL │
00:01:37 #4677 [Verbose] > │ v266.l0 <- v289 │
00:01:37 #4678 [Verbose] > │ () │
00:01:37 #4679 [Verbose] > │ let v290 : uint64 = System.Convert.ToUInt64 v265.Length │
00:01:37 #4680 [Verbose] > │ let v291 : UH5 = UH5_0 │
00:01:37 #4681 [Verbose] > │ let v292 : Mut3 = {l0 = 0UL; l1 = v291; l2 = 0} : Mut3 │
00:01:37 #4682 [Verbose] > │ while method28(v290, v292) do │
00:01:37 #4683 [Verbose] > │ let v294 : uint64 = v292.l0 │
00:01:37 #4684 [Verbose] > │ let struct (v295 : UH5, v296 : int32) = v292.l1, v292.l2 │
00:01:37 #4685 [Verbose] > │ let v297 : int64 = v265.[int v294] │
00:01:37 #4686 [Verbose] > │ let v298 : int32 = v296 + 1 │
00:01:37 #4687 [Verbose] > │ let v299 : uint64 = v294 + 1UL │
00:01:37 #4688 [Verbose] > │ let v300 : UH5 = UH5_1(v296, v297, v295) │
00:01:37 #4689 [Verbose] > │ v292.l0 <- v299 │
00:01:37 #4690 [Verbose] > │ v292.l1 <- v300 │
00:01:37 #4691 [Verbose] > │ v292.l2 <- v298 │
00:01:37 #4692 [Verbose] > │ () │
00:01:37 #4693 [Verbose] > │ let struct (v301 : UH5, v302 : int32) = v292.l1, v292.l2 │
00:01:37 #4694 [Verbose] > │ let v303 : UH5 = UH5_0 │
00:01:37 #4695 [Verbose] > │ let v304 : UH5 = method29(v301, v303) │
00:01:37 #4696 [Verbose] > │ let v305 : (struct (int32 * int64) []) = method30(v304) │
00:01:37 #4697 [Verbose] > │ let v306 : Map<int32, int64> = v305 |> Array.map (fun (struct (a, b)) -> │
00:01:37 #4698 [Verbose] > │ a, b) |> Map.ofArray │
00:01:37 #4699 [Verbose] > │ let v307 : (struct ((string []) * US1) []) = Array.zeroCreate<struct │
00:01:37 #4700 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v253)) │
00:01:37 #4701 [Verbose] > │ let v308 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4702 [Verbose] > │ while method5(v253, v308) do │
00:01:37 #4703 [Verbose] > │ let v310 : uint64 = v308.l0 │
00:01:37 #4704 [Verbose] > │ let struct (v311 : UH2, v312 : US1) = v240.[int v310] │
00:01:37 #4705 [Verbose] > │ let v313 : UH6 = UH6_0 │
00:01:37 #4706 [Verbose] > │ let v314 : int32 = 0 │
00:01:37 #4707 [Verbose] > │ let struct (v315 : UH6, v316 : int32) = method33(v311, v313, v314) │
00:01:37 #4708 [Verbose] > │ let v317 : UH6 = UH6_0 │
00:01:37 #4709 [Verbose] > │ let v318 : UH6 = method34(v315, v317) │
00:01:37 #4710 [Verbose] > │ let v319 : UH2 = UH2_0 │
00:01:37 #4711 [Verbose] > │ let v320 : UH2 = method35(v306, v318, v319) │
00:01:37 #4712 [Verbose] > │ let v321 : (string []) = method36(v320) │
00:01:37 #4713 [Verbose] > │ v307.[int v310] <- struct (v321, v312) │
00:01:37 #4714 [Verbose] > │ let v322 : uint64 = v310 + 1UL │
00:01:37 #4715 [Verbose] > │ v308.l0 <- v322 │
00:01:37 #4716 [Verbose] > │ () │
00:01:37 #4717 [Verbose] > │ System.Console.WriteLine v27 │
00:01:37 #4718 [Verbose] > │ let v323 : uint64 = System.Convert.ToUInt64 v307.Length │
00:01:37 #4719 [Verbose] > │ let v324 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4720 [Verbose] > │ while method5(v323, v324) do │
00:01:37 #4721 [Verbose] > │ let v326 : uint64 = v324.l0 │
00:01:37 #4722 [Verbose] > │ let struct (v327 : (string []), v328 : US1) = v307.[int v326] │
00:01:37 #4723 [Verbose] > │ match v328 with │
00:01:37 #4724 [Verbose] > │ | US1_1 -> (* None *) │
00:01:37 #4725 [Verbose] > │ let v331 : unit option = None │
00:01:37 #4726 [Verbose] > │ let mutable _v331 = v331 │
00:01:37 #4727 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:37 #4728 [Verbose] > │ () │
00:01:37 #4729 [Verbose] > │ #endif │
00:01:37 #4730 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:37 #4731 [Verbose] > │ () │
00:01:37 #4732 [Verbose] > │ #endif │
00:01:37 #4733 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:37 #4734 [Verbose] > │ () │
00:01:37 #4735 [Verbose] > │ #endif │
00:01:37 #4736 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4737 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4738 [Verbose] > │ () │
00:01:37 #4739 [Verbose] > │ #endif │
00:01:37 #4740 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4741 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4742 [Verbose] > │ () │
00:01:37 #4743 [Verbose] > │ #endif │
00:01:37 #4744 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:37 #4745 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4746 [Verbose] > │ () │
00:01:37 #4747 [Verbose] > │ #endif │
00:01:37 #4748 [Verbose] > │ |> fun x -> _v331 <- Some x │
00:01:37 #4749 [Verbose] > │ _v331 |> Option.get │
00:01:37 #4750 [Verbose] > │ () │
00:01:37 #4751 [Verbose] > │ | US1_0(v329) -> (* Some *) │
00:01:37 #4752 [Verbose] > │ let v330 : unit option = None │
00:01:37 #4753 [Verbose] > │ let mutable _v330 = v330 │
00:01:37 #4754 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:37 #4755 [Verbose] > │ () │
00:01:37 #4756 [Verbose] > │ #endif │
00:01:37 #4757 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:37 #4758 [Verbose] > │ () │
00:01:37 #4759 [Verbose] > │ #endif │
00:01:37 #4760 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:37 #4761 [Verbose] > │ () │
00:01:37 #4762 [Verbose] > │ #endif │
00:01:37 #4763 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4764 [Verbose] > │ System.Console.ForegroundColor <- v329 │
00:01:37 #4765 [Verbose] > │ () │
00:01:37 #4766 [Verbose] > │ #endif │
00:01:37 #4767 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4768 [Verbose] > │ System.Console.ForegroundColor <- v329 │
00:01:37 #4769 [Verbose] > │ () │
00:01:37 #4770 [Verbose] > │ #endif │
00:01:37 #4771 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:37 #4772 [Verbose] > │ System.Console.ForegroundColor <- v329 │
00:01:37 #4773 [Verbose] > │ () │
00:01:37 #4774 [Verbose] > │ #endif │
00:01:37 #4775 [Verbose] > │ |> fun x -> _v330 <- Some x │
00:01:37 #4776 [Verbose] > │ _v330 |> Option.get │
00:01:37 #4777 [Verbose] > │ () │
00:01:37 #4778 [Verbose] > │ let v332 : string = "\t| " │
00:01:37 #4779 [Verbose] > │ let v333 : string = System.String.Join (v332, v327) │
00:01:37 #4780 [Verbose] > │ System.Console.WriteLine v333 │
00:01:37 #4781 [Verbose] > │ let v334 : unit option = None │
00:01:37 #4782 [Verbose] > │ let mutable _v334 = v334 │
00:01:37 #4783 [Verbose] > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT │
00:01:37 #4784 [Verbose] > │ () │
00:01:37 #4785 [Verbose] > │ #endif │
00:01:37 #4786 [Verbose] > │ #if FABLE_COMPILER_RUST && WASM │
00:01:37 #4787 [Verbose] > │ () │
00:01:37 #4788 [Verbose] > │ #endif │
00:01:37 #4789 [Verbose] > │ #if FABLE_COMPILER_RUST && CONTRACT │
00:01:37 #4790 [Verbose] > │ () │
00:01:37 #4791 [Verbose] > │ #endif │
00:01:37 #4792 [Verbose] > │ #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4793 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4794 [Verbose] > │ () │
00:01:37 #4795 [Verbose] > │ #endif │
00:01:37 #4796 [Verbose] > │ #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM │
00:01:37 #4797 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4798 [Verbose] > │ () │
00:01:37 #4799 [Verbose] > │ #endif │
00:01:37 #4800 [Verbose] > │ #if !FABLE_COMPILER_RUST && WASM │
00:01:37 #4801 [Verbose] > │ System.Console.ResetColor () │
00:01:37 #4802 [Verbose] > │ () │
00:01:37 #4803 [Verbose] > │ #endif │
00:01:37 #4804 [Verbose] > │ |> fun x -> _v334 <- Some x │
00:01:37 #4805 [Verbose] > │ _v334 |> Option.get │
00:01:37 #4806 [Verbose] > │ let v335 : uint64 = v326 + 1UL │
00:01:37 #4807 [Verbose] > │ v324.l0 <- v335 │
00:01:37 #4808 [Verbose] > │ () │
00:01:37 #4809 [Verbose] > │ let v336 : ((float []) []) = Array.zeroCreate<(float [])> │
00:01:37 #4810 [Verbose] > │ (System.Convert.ToInt32(v163)) │
00:01:37 #4811 [Verbose] > │ let v337 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4812 [Verbose] > │ while method5(v163, v337) do │
00:01:37 #4813 [Verbose] > │ let v339 : uint64 = v337.l0 │
00:01:37 #4814 [Verbose] > │ let struct (v340 : string, v341 : string, v342 : string, v343 : │
00:01:37 #4815 [Verbose] > │ (int64 [])) = v75.[int v339] │
00:01:37 #4816 [Verbose] > │ let v344 : (int64 -> float) = float │
00:01:37 #4817 [Verbose] > │ let v345 : uint64 = System.Convert.ToUInt64 v343.Length │
00:01:37 #4818 [Verbose] > │ let v346 : (float []) = Array.zeroCreate<float> │
00:01:37 #4819 [Verbose] > │ (System.Convert.ToInt32(v345)) │
00:01:37 #4820 [Verbose] > │ let v347 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4821 [Verbose] > │ while method5(v345, v347) do │
00:01:37 #4822 [Verbose] > │ let v349 : uint64 = v347.l0 │
00:01:37 #4823 [Verbose] > │ let v350 : int64 = v343.[int v349] │
00:01:37 #4824 [Verbose] > │ let v351 : float = v344 v350 │
00:01:37 #4825 [Verbose] > │ v346.[int v349] <- v351 │
00:01:37 #4826 [Verbose] > │ let v352 : uint64 = v349 + 1UL │
00:01:37 #4827 [Verbose] > │ v347.l0 <- v352 │
00:01:37 #4828 [Verbose] > │ () │
00:01:37 #4829 [Verbose] > │ v336.[int v339] <- v346 │
00:01:37 #4830 [Verbose] > │ let v353 : uint64 = v339 + 1UL │
00:01:37 #4831 [Verbose] > │ v337.l0 <- v353 │
00:01:37 #4832 [Verbose] > │ () │
00:01:37 #4833 [Verbose] > │ let v354 : (((float []) []) -> ((float []) [])) = Array.transpose │
00:01:37 #4834 [Verbose] > │ let v355 : ((float []) []) = v354 v336 │
00:01:37 #4835 [Verbose] > │ let v356 : uint64 = System.Convert.ToUInt64 v355.Length │
00:01:37 #4836 [Verbose] > │ let v357 : (float []) = Array.zeroCreate<float> │
00:01:37 #4837 [Verbose] > │ (System.Convert.ToInt32(v356)) │
00:01:37 #4838 [Verbose] > │ let v358 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4839 [Verbose] > │ while method5(v356, v358) do │
00:01:37 #4840 [Verbose] > │ let v360 : uint64 = v358.l0 │
00:01:37 #4841 [Verbose] > │ let v361 : (float []) = v355.[int v360] │
00:01:37 #4842 [Verbose] > │ let v362 : ((float []) -> float) = Array.average │
00:01:37 #4843 [Verbose] > │ let v363 : float = v362 v361 │
00:01:37 #4844 [Verbose] > │ v357.[int v360] <- v363 │
00:01:37 #4845 [Verbose] > │ let v364 : uint64 = v360 + 1UL │
00:01:37 #4846 [Verbose] > │ v358.l0 <- v364 │
00:01:37 #4847 [Verbose] > │ () │
00:01:37 #4848 [Verbose] > │ let v365 : (float -> int64) = int64 │
00:01:37 #4849 [Verbose] > │ let v366 : uint64 = System.Convert.ToUInt64 v357.Length │
00:01:37 #4850 [Verbose] > │ let v367 : (int64 []) = Array.zeroCreate<int64> │
00:01:37 #4851 [Verbose] > │ (System.Convert.ToInt32(v366)) │
00:01:37 #4852 [Verbose] > │ let v368 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4853 [Verbose] > │ while method5(v366, v368) do │
00:01:37 #4854 [Verbose] > │ let v370 : uint64 = v368.l0 │
00:01:37 #4855 [Verbose] > │ let v371 : float = v357.[int v370] │
00:01:37 #4856 [Verbose] > │ let v372 : int64 = v365 v371 │
00:01:37 #4857 [Verbose] > │ v367.[int v370] <- v372 │
00:01:37 #4858 [Verbose] > │ let v373 : uint64 = v370 + 1UL │
00:01:37 #4859 [Verbose] > │ v368.l0 <- v373 │
00:01:37 #4860 [Verbose] > │ () │
00:01:37 #4861 [Verbose] > │ let v374 : uint64 = System.Convert.ToUInt64 v367.Length │
00:01:37 #4862 [Verbose] > │ let v375 : UH5 = UH5_0 │
00:01:37 #4863 [Verbose] > │ let v376 : Mut3 = {l0 = 0UL; l1 = v375; l2 = 0} : Mut3 │
00:01:37 #4864 [Verbose] > │ while method28(v374, v376) do │
00:01:37 #4865 [Verbose] > │ let v378 : uint64 = v376.l0 │
00:01:37 #4866 [Verbose] > │ let struct (v379 : UH5, v380 : int32) = v376.l1, v376.l2 │
00:01:37 #4867 [Verbose] > │ let v381 : int64 = v367.[int v378] │
00:01:37 #4868 [Verbose] > │ let v382 : int32 = v380 + 1 │
00:01:37 #4869 [Verbose] > │ let v383 : uint64 = v378 + 1UL │
00:01:37 #4870 [Verbose] > │ let v384 : UH5 = UH5_1(v380, v381, v379) │
00:01:37 #4871 [Verbose] > │ v376.l0 <- v383 │
00:01:37 #4872 [Verbose] > │ v376.l1 <- v384 │
00:01:37 #4873 [Verbose] > │ v376.l2 <- v382 │
00:01:37 #4874 [Verbose] > │ () │
00:01:37 #4875 [Verbose] > │ let struct (v385 : UH5, v386 : int32) = v376.l1, v376.l2 │
00:01:37 #4876 [Verbose] > │ let v387 : UH5 = UH5_0 │
00:01:37 #4877 [Verbose] > │ let v388 : UH5 = method29(v385, v387) │
00:01:37 #4878 [Verbose] > │ let v389 : (struct (int32 * int64) []) = method39(v388) │
00:01:37 #4879 [Verbose] > │ System.Console.WriteLine v27 │
00:01:37 #4880 [Verbose] > │ let v390 : string = "Average Ranking " │
00:01:37 #4881 [Verbose] > │ System.Console.WriteLine v390 │
00:01:37 #4882 [Verbose] > │ let v391 : ((struct (int32 * int64) -> int64) -> ((struct (int32 * │
00:01:37 #4883 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy │
00:01:37 #4884 [Verbose] > │ let v392 : (struct (int32 * int64) -> int64) = closure8() │
00:01:37 #4885 [Verbose] > │ let v393 : ((struct (int32 * int64) []) -> (struct (int32 * int64) [])) │
00:01:37 #4886 [Verbose] > │ = v391 v392 │
00:01:37 #4887 [Verbose] > │ let v394 : (struct (int32 * int64) []) = v393 v389 │
00:01:37 #4888 [Verbose] > │ let v395 : uint64 = System.Convert.ToUInt64 v394.Length │
00:01:37 #4889 [Verbose] > │ let v396 : Mut1 = {l0 = 0UL} : Mut1 │
00:01:37 #4890 [Verbose] > │ while method5(v395, v396) do │
00:01:37 #4891 [Verbose] > │ let v398 : uint64 = v396.l0 │
00:01:37 #4892 [Verbose] > │ let struct (v399 : int32, v400 : int64) = v394.[int v398] │
00:01:37 #4893 [Verbose] > │ let v401 : string = $"Test case %d{v399 + 1}. Average Time: %A{v400} │
00:01:37 #4894 [Verbose] > │ " │
00:01:37 #4895 [Verbose] > │ System.Console.WriteLine v401 │
00:01:37 #4896 [Verbose] > │ let v402 : uint64 = v398 + 1UL │
00:01:37 #4897 [Verbose] > │ v396.l0 <- v402 │
00:01:37 #4898 [Verbose] > │ () │
00:01:37 #4899 [Verbose] > │ () │
00:01:37 #4900 [Verbose] > │ method0() │
00:01:37 #4901 [Verbose] > │ │
00:01:37 #4902 [Verbose] > │ │
00:01:37 #4903 [Verbose] > │ │
00:01:37 #4904 [Verbose] > │ Test: v25 │
00:01:37 #4905 [Verbose] > │ │
00:01:37 #4906 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:37 #4907 [Verbose] > │ Test case 1. semi_open_1. Time: 597 │
00:01:37 #4908 [Verbose] > │ Test case 2. closed_1. Time: 597 │
00:01:37 #4909 [Verbose] > │ Test case 3. semi_open_2. Time: 497 │
00:01:37 #4910 [Verbose] > │ Test case 4. closed_2. Time: 612 │
00:01:37 #4911 [Verbose] > │ │
00:01:37 #4912 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:37 #4913 [Verbose] > │ Test case 1. semi_open_1. Time: 527 │
00:01:37 #4914 [Verbose] > │ Test case 2. closed_1. Time: 494 │
00:01:37 #4915 [Verbose] > │ Test case 3. semi_open_2. Time: 532 │
00:01:37 #4916 [Verbose] > │ Test case 4. closed_2. Time: 508 │
00:01:37 #4917 [Verbose] > │ │
00:01:37 #4918 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:37 #4919 [Verbose] > │ Test case 1. semi_open_1. Time: 496 │
00:01:37 #4920 [Verbose] > │ Test case 2. closed_1. Time: 496 │
00:01:37 #4921 [Verbose] > │ Test case 3. semi_open_2. Time: 509 │
00:01:37 #4922 [Verbose] > │ Test case 4. closed_2. Time: 502 │
00:01:37 #4923 [Verbose] > │ │
00:01:37 #4924 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:37 #4925 [Verbose] > │ Test case 1. semi_open_1. Time: 487 │
00:01:37 #4926 [Verbose] > │ Test case 2. closed_1. Time: 496 │
00:01:37 #4927 [Verbose] > │ Test case 3. semi_open_2. Time: 483 │
00:01:37 #4928 [Verbose] > │ Test case 4. closed_2. Time: 501 │
00:01:37 #4929 [Verbose] > │ │
00:01:37 #4930 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; │
00:01:37 #4931 [Verbose] > │ 17; 18; 19; 20; │
00:01:37 #4932 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:37 #4933 [Verbose] > │ 37; 38; │
00:01:37 #4934 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:37 #4935 [Verbose] > │ 55; 56; │
00:01:37 #4936 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:37 #4937 [Verbose] > │ 73; 74; │
00:01:37 #4938 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:37 #4939 [Verbose] > │ 91; 92; │
00:01:37 #4940 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) │
00:01:37 #4941 [Verbose] > │ Test case 1. semi_open_1. Time: 505 │
00:01:37 #4942 [Verbose] > │ Test case 2. closed_1. Time: 542 │
00:01:37 #4943 [Verbose] > │ Test case 3. semi_open_2. Time: 562 │
00:01:37 #4944 [Verbose] > │ Test case 4. closed_2. Time: 531 │
00:01:37 #4945 [Verbose] > │ │
00:01:37 #4946 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:37 #4947 [Verbose] > │ Test case 1. semi_open_1. Time: 496 │
00:01:37 #4948 [Verbose] > │ Test case 2. closed_1. Time: 485 │
00:01:37 #4949 [Verbose] > │ Test case 3. semi_open_2. Time: 489 │
00:01:37 #4950 [Verbose] > │ Test case 4. closed_2. Time: 488 │
00:01:37 #4951 [Verbose] > │ │
00:01:37 #4952 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:37 #4953 [Verbose] > │ Test case 1. semi_open_1. Time: 499 │
00:01:37 #4954 [Verbose] > │ Test case 2. closed_1. Time: 498 │
00:01:37 #4955 [Verbose] > │ Test case 3. semi_open_2. Time: 519 │
00:01:37 #4956 [Verbose] > │ Test case 4. closed_2. Time: 496 │
00:01:37 #4957 [Verbose] > │ │
00:01:37 #4958 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:37 #4959 [Verbose] > │ Test case 1. semi_open_1. Time: 502 │
00:01:37 #4960 [Verbose] > │ Test case 2. closed_1. Time: 516 │
00:01:37 #4961 [Verbose] > │ Test case 3. semi_open_2. Time: 473 │
00:01:37 #4962 [Verbose] > │ Test case 4. closed_2. Time: 484 │
00:01:37 #4963 [Verbose] > │ │
00:01:37 #4964 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:37 #4965 [Verbose] > │ Test case 1. semi_open_1. Time: 482 │
00:01:37 #4966 [Verbose] > │ Test case 2. closed_1. Time: 556 │
00:01:37 #4967 [Verbose] > │ Test case 3. semi_open_2. Time: 579 │
00:01:37 #4968 [Verbose] > │ Test case 4. closed_2. Time: 484 │
00:01:37 #4969 [Verbose] > │ │
00:01:37 #4970 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; │
00:01:37 #4971 [Verbose] > │ 17; 18; 19; 20; │
00:01:37 #4972 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:37 #4973 [Verbose] > │ 37; 38; │
00:01:37 #4974 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:37 #4975 [Verbose] > │ 55; 56; │
00:01:37 #4976 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:37 #4977 [Verbose] > │ 73; 74; │
00:01:37 #4978 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:37 #4979 [Verbose] > │ 91; 92; │
00:01:37 #4980 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) │
00:01:37 #4981 [Verbose] > │ Test case 1. semi_open_1. Time: 503 │
00:01:37 #4982 [Verbose] > │ Test case 2. closed_1. Time: 526 │
00:01:37 #4983 [Verbose] > │ Test case 3. semi_open_2. Time: 524 │
00:01:37 #4984 [Verbose] > │ Test case 4. closed_2. Time: 506 │
00:01:37 #4985 [Verbose] > │ │
00:01:37 #4986 [Verbose] > │ Input │
00:01:37 #4987 [Verbose] > │ │
00:01:37 #4988 [Verbose] > │ │
00:01:37 #4989 [Verbose] > │ │
00:01:37 #4990 [Verbose] > │ | Expected | Result | Best │
00:01:37 #4991 [Verbose] > │ --- │
00:01:37 #4992 [Verbose] > │ │
00:01:37 #4993 [Verbose] > │ │
00:01:37 #4994 [Verbose] > │ │
00:01:37 #4995 [Verbose] > │ | --- | --- | --- │
00:01:37 #4996 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:37 #4997 [Verbose] > │ │
00:01:37 #4998 [Verbose] > │ │
00:01:37 #4999 [Verbose] > │ │
00:01:37 #5000 [Verbose] > │ | US0_0 3 | US0_0 3 | struct (3L, 497L) │
00:01:37 #5001 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:37 #5002 [Verbose] > │ │
00:01:37 #5003 [Verbose] > │ │
00:01:37 #5004 [Verbose] > │ │
00:01:37 #5005 [Verbose] > │ | US0_0 0 | US0_0 0 | struct (2L, 494L) │
00:01:37 #5006 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:37 #5007 [Verbose] > │ │
00:01:37 #5008 [Verbose] > │ │
00:01:37 #5009 [Verbose] > │ │
00:01:37 #5010 [Verbose] > │ | US0_0 6 | US0_0 6 | struct (1L, 496L) │
00:01:37 #5011 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:37 #5012 [Verbose] > │ │
00:01:37 #5013 [Verbose] > │ │
00:01:37 #5014 [Verbose] > │ │
00:01:37 #5015 [Verbose] > │ | US0_1 | US0_1 | struct (3L, 483L) │
00:01:37 #5016 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │
00:01:37 #5017 [Verbose] > │ 20; │
00:01:37 #5018 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:37 #5019 [Verbose] > │ 37; 38; │
00:01:37 #5020 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:37 #5021 [Verbose] > │ 55; 56; │
00:01:37 #5022 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:37 #5023 [Verbose] > │ 73; 74; │
00:01:37 #5024 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:37 #5025 [Verbose] > │ 91; 92; │
00:01:37 #5026 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) | US0_0 59 | US0_0 59 | │
00:01:37 #5027 [Verbose] > │ struct (1L, 505L) │
00:01:37 #5028 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) │
00:01:37 #5029 [Verbose] > │ │
00:01:37 #5030 [Verbose] > │ │
00:01:37 #5031 [Verbose] > │ │
00:01:37 #5032 [Verbose] > │ | US0_0 3 | US0_0 3 | struct (2L, 485L) │
00:01:37 #5033 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) │
00:01:37 #5034 [Verbose] > │ │
00:01:37 #5035 [Verbose] > │ │
00:01:37 #5036 [Verbose] > │ │
00:01:37 #5037 [Verbose] > │ | US0_0 0 | US0_0 0 | struct (4L, 496L) │
00:01:37 #5038 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) │
00:01:37 #5039 [Verbose] > │ │
00:01:37 #5040 [Verbose] > │ │
00:01:37 #5041 [Verbose] > │ │
00:01:37 #5042 [Verbose] > │ | US0_0 6 | US0_0 6 | struct (3L, 473L) │
00:01:37 #5043 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) │
00:01:37 #5044 [Verbose] > │ │
00:01:37 #5045 [Verbose] > │ │
00:01:37 #5046 [Verbose] > │ │
00:01:37 #5047 [Verbose] > │ | US0_1 | US0_1 | struct (1L, 482L) │
00:01:37 #5048 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │
00:01:37 #5049 [Verbose] > │ 20; │
00:01:37 #5050 [Verbose] > │ 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; │
00:01:37 #5051 [Verbose] > │ 37; 38; │
00:01:37 #5052 [Verbose] > │ 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; │
00:01:37 #5053 [Verbose] > │ 55; 56; │
00:01:37 #5054 [Verbose] > │ 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; │
00:01:37 #5055 [Verbose] > │ 73; 74; │
00:01:37 #5056 [Verbose] > │ 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; │
00:01:37 #5057 [Verbose] > │ 91; 92; │
00:01:37 #5058 [Verbose] > │ 93; 94; 95; 96; 97; 98; 99; 100|], 60, 100) | US0_0 59 | US0_0 59 | │
00:01:37 #5059 [Verbose] > │ struct (1L, 503L) │
00:01:37 #5060 [Verbose] > │ │
00:01:37 #5061 [Verbose] > │ Average Ranking │
00:01:37 #5062 [Verbose] > │ Test case 1. Average Time: 509L │
00:01:37 #5063 [Verbose] > │ Test case 4. Average Time: 511L │
00:01:37 #5064 [Verbose] > │ Test case 3. Average Time: 516L │
00:01:37 #5065 [Verbose] > │ Test case 2. Average Time: 520L │
00:01:37 #5066 [Verbose] > │ │
00:01:37 #5067 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #5068 [Verbose] >
00:01:37 #5069 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:37 #5070 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:37 #5071 [Verbose] > │ ## returnLettersWithOddCountTests │
00:01:37 #5072 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #5073 [Verbose] >
00:01:37 #5074 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:37 #5075 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:37 #5076 [Verbose] > │ Test: ReturnLettersWithOddCount │
00:01:37 #5077 [Verbose] > │ │
00:01:37 #5078 [Verbose] > │ Solution: 1 │
00:01:37 #5079 [Verbose] > │ Test case 1. A. Time: 645L │
00:01:37 #5080 [Verbose] > │ │
00:01:37 #5081 [Verbose] > │ Solution: 2 │
00:01:37 #5082 [Verbose] > │ Test case 1. A. Time: 663L │
00:01:37 #5083 [Verbose] > │ │
00:01:37 #5084 [Verbose] > │ Solution: 3 │
00:01:37 #5085 [Verbose] > │ Test case 1. A. Time: 680L │
00:01:37 #5086 [Verbose] > │ │
00:01:37 #5087 [Verbose] > │ Solution: 9 │
00:01:37 #5088 [Verbose] > │ Test case 1. A. Time: 730L │
00:01:37 #5089 [Verbose] > │ │
00:01:37 #5090 [Verbose] > │ Solution: 10 │
00:01:37 #5091 [Verbose] > │ Test case 1. A. Time: 815L │
00:01:37 #5092 [Verbose] > │ │
00:01:37 #5093 [Verbose] > │ Input | Expected | Result | Best │
00:01:37 #5094 [Verbose] > │ --- | --- | --- | --- │
00:01:37 #5095 [Verbose] > │ 1 | a | a | (1, 645) │
00:01:37 #5096 [Verbose] > │ 2 | ba | ba | (1, 663) │
00:01:37 #5097 [Verbose] > │ 3 | aaa | aaa | (1, 680) │
00:01:37 #5098 [Verbose] > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 730) │
00:01:37 #5099 [Verbose] > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 815) │
00:01:37 #5100 [Verbose] > │ │
00:01:37 #5101 [Verbose] > │ Averages │
00:01:37 #5102 [Verbose] > │ Test case 1. Average Time: 706L │
00:01:37 #5103 [Verbose] > │ │
00:01:37 #5104 [Verbose] > │ Ranking │
00:01:37 #5105 [Verbose] > │ Test case 1. Average Time: 706L │
00:01:37 #5106 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:37 #5107 [Verbose] >
00:01:37 #5108 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:37 #5109 [Verbose] > //// test
00:01:37 #5110 [Verbose] >
00:01:37 #5111 [Verbose] > let solutions = [[
00:01:37 #5112 [Verbose] > "A",
00:01:37 #5113 [Verbose] > fun n ->
00:01:37 #5114 [Verbose] > let mutable _builder = StringBuilder (new string('a', n))
00:01:37 #5115 [Verbose] > if n % 2 = 0 then
00:01:37 #5116 [Verbose] > _builder.[[0]] <- 'b'
00:01:37 #5117 [Verbose] >
00:01:37 #5118 [Verbose] > _builder.ToString ()
00:01:37 #5119 [Verbose] > ]]
00:01:37 #5120 [Verbose] > let testCases = seq {
00:01:37 #5121 [Verbose] > 1, "a"
00:01:37 #5122 [Verbose] > 2, "ba"
00:01:37 #5123 [Verbose] > 3, "aaa"
00:01:37 #5124 [Verbose] > 9, "aaaaaaaaa"
00:01:37 #5125 [Verbose] > 10, "baaaaaaaaa"
00:01:37 #5126 [Verbose] > }
00:01:37 #5127 [Verbose] > let rec returnLettersWithOddCountTests =
00:01:37 #5128 [Verbose] > runAll (nameof returnLettersWithOddCountTests) _count solutions testCases
00:01:37 #5129 [Verbose] > returnLettersWithOddCountTests
00:01:37 #5130 [Verbose] > |> sortResultList
00:01:38 #5131 [Verbose] >
00:01:38 #5132 [Verbose] > ╭─[ 761.11ms - stdout ]────────────────────────────────────────────────────────╮
00:01:38 #5133 [Verbose] > │ │
00:01:38 #5134 [Verbose] > │ │
00:01:38 #5135 [Verbose] > │ Test: returnLettersWithOddCountTests │
00:01:38 #5136 [Verbose] > │ │
00:01:38 #5137 [Verbose] > │ Solution: 1 │
00:01:38 #5138 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5139 [Verbose] > │ │
00:01:38 #5140 [Verbose] > │ Solution: 2 │
00:01:38 #5141 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5142 [Verbose] > │ │
00:01:38 #5143 [Verbose] > │ Solution: 3 │
00:01:38 #5144 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5145 [Verbose] > │ │
00:01:38 #5146 [Verbose] > │ Solution: 9 │
00:01:38 #5147 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5148 [Verbose] > │ │
00:01:38 #5149 [Verbose] > │ Solution: 10 │
00:01:38 #5150 [Verbose] > │ Test case 1. A. Time: 2L │
00:01:38 #5151 [Verbose] > │ │
00:01:38 #5152 [Verbose] > │ Input | Expected | Result | Best │
00:01:38 #5153 [Verbose] > │ --- | --- | --- | --- │
00:01:38 #5154 [Verbose] > │ 1 | a | a | (1, 0) │
00:01:38 #5155 [Verbose] > │ 2 | ba | ba | (1, 0) │
00:01:38 #5156 [Verbose] > │ 3 | aaa | aaa | (1, 0) │
00:01:38 #5157 [Verbose] > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 0) │
00:01:38 #5158 [Verbose] > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 2) │
00:01:38 #5159 [Verbose] > │ │
00:01:38 #5160 [Verbose] > │ Average Ranking │
00:01:38 #5161 [Verbose] > │ Test case 1. Average Time: 0L │
00:01:38 #5162 [Verbose] > │ │
00:01:38 #5163 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #5164 [Verbose] >
00:01:38 #5165 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #5166 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #5167 [Verbose] > │ ## hasAnyPairCloseToEachotherTests │
00:01:38 #5168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #5169 [Verbose] >
00:01:38 #5170 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────
00:01:38 #5171 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮
00:01:38 #5172 [Verbose] > │ Test: HasAnyPairCloseToEachother │
00:01:38 #5173 [Verbose] > │ │
00:01:38 #5174 [Verbose] > │ Solution: 0 │
00:01:38 #5175 [Verbose] > │ Test case 1. A. Time: 137L │
00:01:38 #5176 [Verbose] > │ │
00:01:38 #5177 [Verbose] > │ Solution: 1,2 │
00:01:38 #5178 [Verbose] > │ Test case 1. A. Time: 186L │
00:01:38 #5179 [Verbose] > │ │
00:01:38 #5180 [Verbose] > │ Solution: 3,5 │
00:01:38 #5181 [Verbose] > │ Test case 1. A. Time: 206L │
00:01:38 #5182 [Verbose] > │ │
00:01:38 #5183 [Verbose] > │ Solution: 3,4,6 │
00:01:38 #5184 [Verbose] > │ Test case 1. A. Time: 149L │
00:01:38 #5185 [Verbose] > │ │
00:01:38 #5186 [Verbose] > │ Solution: 2,4,6 │
00:01:38 #5187 [Verbose] > │ Test case 1. A. Time: 150L │
00:01:38 #5188 [Verbose] > │ │
00:01:38 #5189 [Verbose] > │ Input | Expected | Result | Best │
00:01:38 #5190 [Verbose] > │ --- | --- | --- | --- │
00:01:38 #5191 [Verbose] > │ 0 | False | False | (1, 137) │
00:01:38 #5192 [Verbose] > │ 1,2 | True | True | (1, 186) │
00:01:38 #5193 [Verbose] > │ 3,5 | False | False | (1, 206) │
00:01:38 #5194 [Verbose] > │ 3,4,6 | True | True | (1, 149) │
00:01:38 #5195 [Verbose] > │ 2,4,6 | False | False | (1, 150) │
00:01:38 #5196 [Verbose] > │ │
00:01:38 #5197 [Verbose] > │ Averages │
00:01:38 #5198 [Verbose] > │ Test case 1. Average Time: 165L │
00:01:38 #5199 [Verbose] > │ │
00:01:38 #5200 [Verbose] > │ Ranking │
00:01:38 #5201 [Verbose] > │ Test case 1. Average Time: 165L │
00:01:38 #5202 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #5203 [Verbose] >
00:01:38 #5204 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────
00:01:38 #5205 [Verbose] > //// test
00:01:38 #5206 [Verbose] >
00:01:38 #5207 [Verbose] > let solutions = [[
00:01:38 #5208 [Verbose] > "A",
00:01:38 #5209 [Verbose] > fun (a: int[[]]) ->
00:01:38 #5210 [Verbose] > let indices = System.Linq.Enumerable.Range(0, a.Length) |>
00:01:38 #5211 [Verbose] > System.Linq.Enumerable.ToArray
00:01:38 #5212 [Verbose] > System.Array.Sort (a, indices)
00:01:38 #5213 [Verbose] >
00:01:38 #5214 [Verbose] > indices
00:01:38 #5215 [Verbose] > |> Array.take (a.Length - 1)
00:01:38 #5216 [Verbose] > |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1)
00:01:38 #5217 [Verbose] > ]]
00:01:38 #5218 [Verbose] > let testCases = seq {
00:01:38 #5219 [Verbose] > [[| 0 |]], false
00:01:38 #5220 [Verbose] > [[| 1; 2 |]], true
00:01:38 #5221 [Verbose] > [[| 3; 5 |]], false
00:01:38 #5222 [Verbose] > [[| 3; 4; 6 |]], true
00:01:38 #5223 [Verbose] > [[| 2; 4; 6 |]], false
00:01:38 #5224 [Verbose] > }
00:01:38 #5225 [Verbose] > let rec hasAnyPairCloseToEachotherTests =
00:01:38 #5226 [Verbose] > runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases
00:01:38 #5227 [Verbose] > hasAnyPairCloseToEachotherTests
00:01:38 #5228 [Verbose] > |> sortResultList
00:01:38 #5229 [Verbose] >
00:01:38 #5230 [Verbose] > ╭─[ 762.76ms - stdout ]────────────────────────────────────────────────────────╮
00:01:38 #5231 [Verbose] > │ │
00:01:38 #5232 [Verbose] > │ │
00:01:38 #5233 [Verbose] > │ Test: hasAnyPairCloseToEachotherTests │
00:01:38 #5234 [Verbose] > │ │
00:01:38 #5235 [Verbose] > │ Solution: 0 │
00:01:38 #5236 [Verbose] > │ Test case 1. A. Time: 2L │
00:01:38 #5237 [Verbose] > │ │
00:01:38 #5238 [Verbose] > │ Solution: 1,2 │
00:01:38 #5239 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5240 [Verbose] > │ │
00:01:38 #5241 [Verbose] > │ Solution: 3,5 │
00:01:38 #5242 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5243 [Verbose] > │ │
00:01:38 #5244 [Verbose] > │ Solution: 3,4,6 │
00:01:38 #5245 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5246 [Verbose] > │ │
00:01:38 #5247 [Verbose] > │ Solution: 2,4,6 │
00:01:38 #5248 [Verbose] > │ Test case 1. A. Time: 0L │
00:01:38 #5249 [Verbose] > │ │
00:01:38 #5250 [Verbose] > │ Input | Expected | Result | Best │
00:01:38 #5251 [Verbose] > │ --- | --- | --- | --- │
00:01:38 #5252 [Verbose] > │ 0 | False | False | (1, 2) │
00:01:38 #5253 [Verbose] > │ 1,2 | True | True | (1, 0) │
00:01:38 #5254 [Verbose] > │ 3,5 | False | False | (1, 0) │
00:01:38 #5255 [Verbose] > │ 3,4,6 | True | True | (1, 0) │
00:01:38 #5256 [Verbose] > │ 2,4,6 | False | False | (1, 0) │
00:01:38 #5257 [Verbose] > │ │
00:01:38 #5258 [Verbose] > │ Average Ranking │
00:01:38 #5259 [Verbose] > │ Test case 1. Average Time: 0L │
00:01:38 #5260 [Verbose] > │ │
00:01:38 #5261 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:38 #5262 [Verbose] >
00:01:38 #5263 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────
00:01:38 #5264 [Verbose] > // // test
00:01:38 #5265 [Verbose] >
00:01:38 #5266 [Verbose] > ()
00:01:39 #5267 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1321-4184-8424-88a54790f715\main.spi
00:01:39 #5268 [Verbose] >
00:01:39 #5269 [Verbose] > ╭─[ 251.53ms - stdout ]────────────────────────────────────────────────────────╮
00:01:39 #5270 [Verbose] > │ let rec method0 () : unit = │
00:01:39 #5271 [Verbose] > │ () │
00:01:39 #5272 [Verbose] > │ method0() │
00:01:39 #5273 [Verbose] > │ │
00:01:39 #5274 [Verbose] > │ │
00:01:39 #5275 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯
00:01:41 #5276 [Verbose] > [NbConvertApp] Converting notebook Perf.dib.ipynb to html
00:01:41 #5277 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
00:01:41 #5278 [Verbose] > validate(nb)
00:01:41 #5279 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
00:01:41 #5280 [Verbose] > return _pygments_highlight(
00:01:42 #5281 [Verbose] > [NbConvertApp] Writing 567322 bytes to Perf.dib.html
00:01:43 #5282 [Debug] executeAsync / exitCode: 0 / output.Length: 369270
00:01:43 #5283 [Debug] main / executeCommand / exitCode: 0
00:01:45 #5284 [Debug] runWithTimeoutChildAsync / timeout: 2000
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Perf.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Perf.dib
In [ ]:
{ . "$ScriptDir/../apps/dir-tree-html/build.ps1" } | Invoke-Block
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ # DirTreeHtml (Polyglot) │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/fsharp/Notebooks.dib
#!import ../../lib/fsharp/Testing.dib
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A
spNetCore.Html.Abstractions.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.Formatting.dll"
open System
open System.IO
open System.Text
open Microsoft.DotNet.Interactive.Formatting
── fsharp - import ─────────────────────────────────────────────────────────────
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.FSharp.dll"
open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers
#r
"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D
otNet.Interactive.dll"
open type Microsoft.DotNet.Interactive.Kernel
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
Formatter.ListExpansionLimit <- 100
── fsharp - import ─────────────────────────────────────────────────────────────
#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
type AssertExceptionFormatter (ex) =
member _.Text =
ex.ToString()
.Replace("32m", "<span style=\"color: green;\">")
.Replace("36m", "</span>")
.Replace("31m", "<span style=\"color: red;\">")
.Replace("\n", "<br/>\n")
Formatter.Register<AssertExceptionFormatter> ((fun (x :
AssertExceptionFormatter) -> x.Text), "text/html")
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __expect fn log expected actual =
if log then printfn $"{actual.ToDisplayString ()}"
try
"Testing.__expect" |> fn actual expected
with :? Expecto.AssertException as ex ->
AssertExceptionFormatter(ex).Display () |> ignore
failwith (ex.GetType().FullName)
let inline __contains log expected actual = __expect Expecto.Expect.contains log
expected actual
let inline _contains expected actual = __contains true expected actual
let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log
expected actual
let inline _assertEqual expected actual = __assertEqual true expected actual
let inline __isGreaterThan log expected actual = __expect
Expecto.Expect.isGreaterThan log ex...
── fsharp - import ─────────────────────────────────────────────────────────────
//// test
let inline __isBetween log a b actual =
let inline isBetween actual (a, b) _ =
__isGreaterThanOrEqual log a actual
__isLessThanOrEqual log b actual
__expect isBetween log (a, b) actual
let inline _isBetween a b actual = __isBetween true a b actual
── fsharp ──────────────────────────────────────────────────────────────────────
#r
@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan
dard2.1/FSharp.Control.AsyncSeq.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.
0/System.Reactive.dll"
#r
@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/
netstandard2.0/System.Reactive.Linq.dll"
#r
@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"
#r
@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li
b/net6.0/System.CommandLine.dll"
#r
@"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal
co.Markup.dll"
── fsharp ──────────────────────────────────────────────────────────────────────
#!import ../../lib/spiral/common.fsx
#!import ../../lib/spiral/sm.fsx
#!import ../../lib/spiral/date_time.fsx
#!import ../../lib/spiral/file_system.fsx
#!import ../../lib/spiral/lib.fsx
#!import ../../lib/fsharp/Common.fs
#!import ../../lib/fsharp/CommonFSharp.fs
#!import ../../lib/fsharp/Async.fs
#!import ../../lib/fsharp/AsyncSeq.fs
#!import ../../lib/fsharp/Networking.fs
#!import ../../lib/fsharp/Runtime.fs
#!import ../../lib/fsharp/FileSystem.fs
── fsharp - import ─────────────────────────────────────────────────────────────
type [[<Struct>]] US0 =
| US0_0
| US0_1
| US0_2
| US0_3
and [[<Struct>]] US1 =
| US1_0 of f0_0 : US0
| US1_1 of f1_0 : US0
and [[<Struct>]] US2 =
| US2_0
| US2_1
and [[<Struct>]] US3 =
| US3_0 of f0_0 : US2
| US3_1
let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =
let v1 : System.IDisposable option = None
let mutable _v1 = v1
#if FABLE_COMPILER_RUST && !WASM && !CONTRACT
let v2 : US0 = US0_0
let v3 : US1 = US1_0(v2)
let v4 : string = $"new_disposable / target: {v3}"
let v5 : System.IDisposable = failwith<System.IDisposable> v4
v5
#endif
#if FABLE_COMPILER_RUST && WASM
let v6 : US0 = US0_2
let v7 : US1 = US1_0(v6)
let v8 : string = $"new_dispos...
── fsharp - import ─────────────────────────────────────────────────────────────
type Mut0 = {mutable l0 : int32; mutable l1 : string}
and Mut1 = {mutable l0 : int32}
let rec closure1 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.Contains v0
v2
and closure0 () (v0 : string) : (string -> bool) =
closure1(v0)
and closure3 (v0 : string) (v1 : string) : bool =
let v2 : bool = v1.EndsWith v0
v2
and closure2 () (v0 : string) : (string -> bool) =
closure3(v0)
and closure6 (v0 : int32, v1 : char) (v2 : string) : string =
let v3 : string = v2.PadLeft (v0, v1)
v3
and closure5 (v0 : int32) (v1 : char) : (string -> string) =
closure6(v0, v1)
and closure4 () (v0 : int32) : (char -> (string -> string)) =
closure5(v0)
and closure8 (v0 : int32) (v1 : string) : string =
let v2 : stri...
── fsharp - import ─────────────────────────────────────────────────────────────
let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =
let v2 : (System.Guid -> string) = _.ToString()
let v3 : string = v2 v0
let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"
let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"
v5
and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =
closure1(v0)
and closure5 (v0 : string, v1 : string) (v2 : string) : string =
let v3 : string = v2.Replace (v0, v1)
v3
and closure4 (v0 : string) (v1 : string) : (string -> string) =
closure5(v0, v1)
and closure3 () (v0 : string) : (string -> (string -> string)) =
closure4(v0)
and method0 () : (string -> (string -> (string -> string))) =
closure3()
and closure2 (...
── fsharp - import ─────────────────────────────────────────────────────────────
#if FABLE_COMPILER // file_system.types
[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end
[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type
base64_DecodeError = class end
[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString
= class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type
serde_json_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type
serde_json_Value = class end
[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type
serde_wasm_bindgen_Error = class end
[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !WASM && !CONTRACT && !FABLE_COMPILER
module SpiralDateTime =
let format x =
#if !INTERACTIVE
Date_time.format x
#else
format x
#endif
let format_iso8601 x =
#if !INTERACTIVE
Date_time.format_iso8601 x
#else
format_iso8601 x
#endif
let new_guid_from_date_time x =
#if !INTERACTIVE
Date_time.new_guid_from_date_time x
#else
new_guid_from_date_time x
#endif
#endif
module SpiralSm =
let concat x =
#if !INTERACTIVE
Sm.concat x
#else
concat x
#endif
let contains x =
#if !INTERACTIVE
Sm.contains x
#else
contains x
#endif
let ellipsis x =
#if !INTERACTIVE
Sm.ellipsis x
#else
ellipsis x
#endif
let ellipsis_end x =
#if...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Common =
#if !INTERACTIVE
open Lib
#endif
let nl = System.Environment.NewLine
let q = @""""
let inline cons head tail = head :: tail
/// ## memoize
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
/// ## TraceLevel
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline getLocals () = ""
let mutable traceEnabled = true
let mutable traceCount = 0
let mutable traceLevel = Verbose
let mutable traceDump = false
let testTraceLevel level =
traceEnabled && level >= traceLevel
/// ## traceRaw
let rec traceRaw level fn =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module CommonFSharp =
open Common
/// ## getUnionCaseName
let inline getUnionCaseName<'T> (x: 'T) =
match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
| case, _ -> case.Name
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Async =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## choice
let inline choice asyncs = async {
let e = Event<_> ()
use cts = new System.Threading.CancellationTokenSource ()
let fn =
asyncs
|> Seq.map (fun a -> async {
let! x = a
e.Trigger x
})
|> Async.Parallel
|> Async.Ignore
Async.Start (fn, cts.Token)
let! result = Async.AwaitEvent e.Publish
cts.Cancel ()
return result
}
/// ## map
let inline map fn a = async {
let! x = a
return fn x
}
/// ## catch
let inline catch a =
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module AsyncSeq =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## subscribeEvent
let inline subscribeEvent (event: IEvent<'H, 'A>) map =
let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,
'A>(event.AddHandler, event.RemoveHandler)
System.Reactive.Linq.Observable.Select (observable, fun event -> map
event.EventArgs)
|> FSharp.Control.AsyncSeq.ofObservableBuffered
let subscribeToken (token : System.Threading.CancellationToken) =
let tcs = new System.Threading.Tasks.TaskCompletionSource ()
System.Action tcs.SetResult |> token.Register |> ignore
let start = System.DateTime.Now.Ticks
FSharp.Control.A...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Networking =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## testPortOpen
let inline testPortOpen port = async {
let! ct = Async.CancellationToken
use client = new System.Net.Sockets.TcpClient ()
try
do! client.ConnectAsync ("127.0.0.1", port, ct) |>
Async.awaitValueTaskUnit
return true
with ex ->
trace Verbose (fun () -> $"testPortOpen / ex: {ex |>
SpiralSm.format_exception}") getLocals
return false
}
let inline testPortOpenTimeout timeout port = async {
let! result =
testPortOpen port
|> Async.runWithTimeoutAsync timeout
return
...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module Runtime =
#if !INTERACTIVE
open Lib
#endif
open Common
/// ## isWindows
let isWindows =
fun () ->
System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform
System.Runtime.InteropServices.OSPlatform.Windows
|> memoize
/// ## getExecutableSuffix
let inline getExecutableSuffix () =
if isWindows ()
then ".exe"
else ""
/// ## splitCommand
type private CommandParseStep =
| Start
| Path of quoted: bool
| Arguments
let splitCommand (command: string) =
let rec loop (path, args) chars step =
match chars, step with
| ('"' | '\'') ...
── fsharp - import ─────────────────────────────────────────────────────────────
#if !INTERACTIVE
namespace Polyglot
#endif
module FileSystem =
#if !INTERACTIVE
open Lib
#endif
open Common
open SpiralFileSystem.Operators
/// ## readAllTextAsync
let inline readAllTextAsync path =
path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask
/// ## fileExistsContent
let inline fileExistsContent path content = async {
if path |> System.IO.File.Exists |> not
then return false
else
let! existingContent = path |> readAllTextAsync
return content = existingContent
}
/// ## writeAllTextAsync
let inline writeAllTextAsync path contents =
System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask
/// ## write...
── fsharp ──────────────────────────────────────────────────────────────────────
#if !INTERACTIVE
open Lib
#endif
── fsharp ──────────────────────────────────────────────────────────────────────
open SpiralFileSystem.Operators
open Falco.Markup
── fsharp ──────────────────────────────────────────────────────────────────────
type FileSystemNode =
| File of string * string * int64
| Folder of string * string * FileSystemNode list
| Root of FileSystemNode list
let rec scanDirectory isRoot (basePath : string) (path : string) =
let relativePath =
path
|> SpiralSm.replace basePath ""
|> SpiralSm.replace "\\" "/"
|> SpiralSm.replace "//" "/"
|> SpiralSm.trim_start [[| '/' |]]
let directories =
path
|> System.IO.Directory.GetDirectories
|> Array.toList
|> List.sort
|> List.map (scanDirectory false basePath)
let files =
path
|> System.IO.Directory.GetFiles
|> Array.toList
|> List.sort
|> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath,
System.IO.FileInfo(f).Length))
let children = directories @ files
if isRoot
then Root children
else Folder (path |> System.IO.Path.GetFileName, relativePath, children)
let rec generateHtml fsNode =
let sizeLabel size =
match float size with
| size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB"
| size when size > 1024.0 -> $"%.2f{size / 1024.0} KB"
| size -> $"%.2f{size} B"
match fsNode with
| File (fileName, relativePath, size) ->
Elem.div [[]] [[
Text.raw "📄 "
Elem.a [[
Attr.href $"""{relativePath}{if relativePath = "" then "" else
"/"}{fileName}"""
]] [[
Text.raw fileName
]]
Elem.span [[]] [[
Text.raw $" ({size |> sizeLabel})"
]]
]]
| Folder (folderName, relativePath, children) ->
let size =
let rec loop children =
children
|> List.sumBy (function
| File (_, _, size) -> size
| Folder (_, _, children)
| Root children -> loop children
)
loop children
Elem.details [[
Attr.open' "true"
]] [[
Elem.summary [[]] [[
Text.raw "📂 "
Elem.a [[
Attr.href relativePath
]] [[
Text.raw folderName
]]
Elem.span [[]] [[
Text.raw $" ({size |> sizeLabel})"
]]
]]
Elem.div [[]] [[
yield! children |> List.map generateHtml
]]
]]
| Root children ->
Elem.div [[]] [[
yield! children |> List.map generateHtml
]]
let generateHtmlForFileSystem root =
$"""<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body {{
background-color: #222;
color: #ccc;
}}
a {{
color: #777;
font-size: 15px;
}}
span {{
font-size: 11px;
}}
div > div {{
padding-left: 10px;
}}
details > div {{
padding-left: 19px;
}}
</style>
</head>
<body>
{root |> generateHtml |> renderNode}
</body>
</html>
"""
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let tempFolder = SpiralFileSystem.create_temp_directory ()
let rec loop d n = async {
if n >= 0 then
tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore
do!
n
|> string
|> String.replicate (n + 1)
|> FileSystem.writeAllTextAsync (tempFolder </> d </> $"file.txt")
do! loop $"{d}/{n}" (n - 1)
}
loop "_.root" 3
|> Async.RunSynchronously
let html =
scanDirectory true tempFolder tempFolder
|> generateHtmlForFileSystem
html
|> _assertEqual """<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body {
background-color: #222;
color: #ccc;
}
a {
color: #777;
font-size: 15px;
}
span {
font-size: 11px;
}
div > div {
padding-left: 10px;
}
details > div {
padding-left: 19px;
}
</style>
</head>
<body>
<div><details open="true"><summary>📂 <a href="_.root">_.root</a><span>
(10.00 B)</span></summary><div><details open="true"><summary>📂 <a
href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details
open="true"><summary>📂 <a href="_.root/3/2">2</a><span> (3.00
B)</span></summary><div><details open="true"><summary>📂 <a
href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>📄 <a
href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00
B)</span></div></div></details><div>📄 <a
href="_.root/3/2/file.txt">file.txt</a><span> (2.00
B)</span></div></div></details><div>📄 <a
href="_.root/3/file.txt">file.txt</a><span> (3.00
B)</span></div></div></details><div>📄 <a
href="_.root/file.txt">file.txt</a><span> (4.00
B)</span></div></div></details></div>
</body>
</html>
"""
html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent
╭─[ 178.43ms - return value ]──────────────────────────────────────────────────╮
│ <!DOCTYPE html> │
│ <html lang="en"> │
│ <head> │
│ <meta charset="UTF-8"> │
│ <style> │
│ body { │
│ background-color: #222; │
│ color: #ccc; │
│ } │
│ a { │
│ color: #777; │
│ font-size: 15px; │
│ } │
│ span { │
│ font-size: 11px; │
│ } │
│ div > div { │
│ padding-left: 10px; │
│ } │
│ details > div { │
│ padding-left: 19px; │
│ } │
│ </style> │
│ </head> │
│ <body> │
│ <div><details open="true"><summary>📂 <a │
│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 │
│ B)</span></summary><div><details open="true"><summary>📂 <a │
│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 │
│ B)</span></summary><div><div>📄 <a href="_.root... │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─[ 195.89ms - stdout ]────────────────────────────────────────────────────────╮
│ <!DOCTYPE html> │
│ <html lang="en"> │
│ <head> │
│ <meta charset="UTF-8"> │
│ <style> │
│ body { │
│ background-color: #222; │
│ color: #ccc; │
│ } │
│ a { │
│ color: #777; │
│ font-size: 15px; │
│ } │
│ span { │
│ font-size: 11px; │
│ } │
│ div > div { │
│ padding-left: 10px; │
│ } │
│ details > div { │
│ padding-left: 19px; │
│ } │
│ </style> │
│ </head> │
│ <body> │
│ <div><details open="true"><summary>📂 <a │
│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 │
│ B)</span></summary><div><details open="true"><summary>📂 <a │
│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details │
│ open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 │
│ B)</span></summary><div><div>📄 <a │
│ href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 │
│ B)</span></div></div></details><div>📄 <a │
│ href="_.root/3/2/file.txt">file.txt</a><span> (2.00 │
│ B)</span></div></div></details><div>📄 <a │
│ href="_.root/3/file.txt">file.txt</a><span> (3.00 │
│ B)</span></div></div></details><div>📄 <a │
│ href="_.root/file.txt">file.txt</a><span> (4.00 │
│ B)</span></div></div></details></div> │
│ </body> │
│ </html> │
│ │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## Arguments │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
[[<RequireQualifiedAccess>]]
type Arguments =
| [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string
| [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string
interface Argu.IArgParserTemplate with
member s.Usage =
match s with
| Dir _ -> nameof Dir
| Html _ -> nameof Html
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
Argu.ArgumentParser.Create<Arguments>().PrintUsage ()
╭─[ 122.87ms - return value ]──────────────────────────────────────────────────╮
│ USAGE: dotnet-repl [--help] --dir <string> --html <string> │
│ │
│ OPTIONS: │
│ │
│ --dir <string> Dir │
│ --html <string> Html │
│ --help display this list of options. │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
── markdown ────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────╮
│ ## main │
╰──────────────────────────────────────────────────────────────────────────────╯
── fsharp ──────────────────────────────────────────────────────────────────────
let main args =
let argsMap = args |> Runtime.parseArgsMap<Arguments>
let dir =
match argsMap.[[nameof Arguments.Dir]] with
| [[ Arguments.Dir dir ]] -> Some dir
| _ -> None
|> Option.get
let htmlPath =
match argsMap.[[nameof Arguments.Html]] with
| [[ Arguments.Html html ]] -> Some html
| _ -> None
|> Option.get
let fileSystem = scanDirectory true dir dir
let html = generateHtmlForFileSystem fileSystem
html |> FileSystem.writeAllTextAsync htmlPath
|> Async.runWithTimeout 30000
|> function
| Some () -> 0
| None -> 1
── fsharp ──────────────────────────────────────────────────────────────────────
//// test
let args =
System.Environment.GetEnvironmentVariable "ARGS"
|> Runtime.splitArgs
|> Seq.toArray
match args with
| [[||]] -> 0
| args -> if main args = 0 then 0 else failwith "main failed"
╭─[ 78.93ms - return value ]───────────────────────────────────────────────────╮
│ <div class="dni-plaintext"><pre>0</pre></div><style> │
│ .dni-code-hint { │
│ font-style: italic; │
│ overflow: hidden; │
│ white-space: nowrap; │
│ } │
│ .dni-treeview { │
│ white-space: nowrap; │
│ } │
│ .dni-treeview td { │
│ vertical-align: top; │
│ text-align: start; │
│ } │
│ details.dni-treeview { │
│ padding-left: 1em; │
│ } │
│ table td { │
│ text-align: start; │
│ } │
│ table tr { │
│ vertical-align: top; │
│ margin: 0em 0px; │
│ } │
│ table tr td pre │
│ { │
│ vertical-align: top !important; │
│ margin: 0em 0px !important; │
│ } │
│ table th { │
│ text-align: start; │
│ } │
│ </style> │
╰──────────────────────────────────────────────────────────────────────────────╯
[NbConvertApp] Converting notebook DirTreeHtml.dib.ipynb to html
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.
validate(nb)
C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3
return _pygments_highlight(
[NbConvertApp] Writing 309845 bytes to DirTreeHtml.dib.html
00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DirTreeHtml.dib
00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DirTreeHtml.dib
00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: DirTreeHtml / code.Length: 4631
00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj
00:00:00 #3 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime linux-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml"
CancellationToken = None
OnLine = None }
00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:01 #5 [Verbose] > Determining projects to restore...
00:00:03 #6 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj (in 1.61 sec).
00:00:03 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj]
00:00:10 #8 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\bin\Release\net9.0\linux-x64\DirTreeHtml.dll
00:00:12 #9 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\
00:00:12 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 732
00:00:12 #11 [Debug] executeAsync / options: { Command =
"dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime win-x64"
WorkingDirectory =
Some "C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml"
CancellationToken = None
OnLine = None }
00:00:12 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET
00:00:13 #13 [Verbose] > Determining projects to restore...
00:00:13 #14 [Verbose] > Restored C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj (in 425 ms).
00:00:13 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj]
00:00:20 #16 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\bin\Release\net9.0\win-x64\DirTreeHtml.dll
00:00:28 #17 [Verbose] > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\
00:00:28 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 728
In [ ]:
{ . "$ScriptDir/../apps/ipfs/build.ps1" } | Invoke-Block
bun install v1.1.0 (5903a614)
Done! Checked 220 packages (no changes) [1.64s]
In [ ]:
{ . "$ScriptDir/outdated.ps1" } | Invoke-Block
Paket version 8.1.0-alpha001+27cb9f111f156e8b68d08dc293857425c0ade23d
Resolving dependency graph...
Outdated packages found:
Group: Main
* Argu 6.2.2 -> 6.2.3
* Expecto.FsCheck 10.2.1-fscheck3 -> 10.2.1
* FsCheck 3.0.0-rc3 -> 2.16.6
* FSharp.Core 8.0.300-beta.24080.5 -> 8.0.300-beta.24154.4
* Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Client 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Common 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.Extensions.DependencyInjection 8.0 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.DependencyInjection.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Features 7.0 -> 9.0.0-preview.2.24128.4
* Microsoft.Extensions.Logging 8.0 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Logging.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Options 8.0.2 -> 9.0.0-preview.2.24128.5
* Microsoft.Extensions.Primitives 8.0 -> 9.0.0-preview.2.24128.5
* System.IO.Pipelines 8.0 -> 9.0.0-preview.2.24128.5
* System.Threading.Channels 8.0 -> 9.0.0-preview.2.24128.5
Total time taken: 55 seconds
CheckToml / toml: C:\home\git\polyglot\Cargo.toml
chat_contract_tests
================
Name Project Compat Latest Kind Platform
---- ------- ------ ------ ---- --------
autocfg 1.2.0 Removed Removed Build ---
hashbrown 0.12.3 0.14.3 0.14.3 Normal ---
indexmap 1.9.3 2.2.6 2.2.6 Normal ---
CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\Cargo.toml
All dependencies are up to date, yay!
CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml
Name Project Compat Latest Kind Platform
---- ------- ------ ------ ---- --------
ahash->cfg-if 1.0.0 --- Removed Normal ---
ahash->once_cell 1.19.0 --- Removed Normal cfg(not(all(target_arch = "arm", target_os = "none")))
ahash->version_check 0.9.4 --- Removed Build ---
ahash->zerocopy 0.7.32 --- Removed Normal ---
hashbrown->ahash 0.8.11 --- Removed Normal ---
hashbrown->allocator-api2 0.2.16 --- Removed Normal ---
indexmap->autocfg 1.2.0 Removed --- Build ---
indexmap->equivalent 1.0.1 --- Removed Normal ---
indexmap->hashbrown 0.12.3 0.14.3 --- Normal ---
indexmap->hashbrown 0.14.3 --- 0.12.3 Normal ---
proc-macro2->unicode-ident 1.0.12 --- Removed Normal ---
quote->proc-macro2 1.0.79 --- Removed Normal ---
serde_with->indexmap 1.9.3 2.2.6 --- Normal ---
serde_with->indexmap 2.2.6 --- 1.9.3 Normal ---
syn->proc-macro2 1.0.79 --- Removed Normal ---
syn->quote 1.0.35 --- Removed Normal ---
syn->unicode-ident 1.0.12 --- Removed Normal ---
zerocopy->zerocopy-derive 0.7.32 --- Removed Normal ---
zerocopy-derive->proc-macro2 1.0.79 --- Removed Normal ---
zerocopy-derive->quote 1.0.35 --- Removed Normal ---
zerocopy-derive->syn 2.0.58 --- Removed Normal ---
CheckToml / toml: C:\home\git\polyglot\apps\plot\Cargo.toml
All dependencies are up to date, yay!
CheckJson / json: C:/home/git/polyglot
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\polyglot\package.json
All dependencies match the greatest package versions :)
CheckJson / json: C:/home/git/polyglot/apps/ipfs
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\polyglot\apps\ipfs\package.json
All dependencies match the greatest package versions :)
CheckJson / json: C:/home/git/polyglot/apps/spiral/temp/extension
$ npm-check-updates --target greatest
Using bun
Checking C:\home\git\polyglot\apps\spiral\temp\extension\package.json
@playwright/test 1.42.1 → 1.44.0-alpha-2024-04-04
Run ncu --target greatest -u to upgrade package.json